// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 // protoc v4.25.1 // source: core/Tron.proto package core import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" anypb "google.golang.org/protobuf/types/known/anypb" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type AccountType int32 const ( AccountType_Normal AccountType = 0 AccountType_AssetIssue AccountType = 1 AccountType_Contract AccountType = 2 ) // Enum value maps for AccountType. var ( AccountType_name = map[int32]string{ 0: "Normal", 1: "AssetIssue", 2: "Contract", } AccountType_value = map[string]int32{ "Normal": 0, "AssetIssue": 1, "Contract": 2, } ) func (x AccountType) Enum() *AccountType { p := new(AccountType) *p = x return p } func (x AccountType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (AccountType) Descriptor() protoreflect.EnumDescriptor { return file_core_Tron_proto_enumTypes[0].Descriptor() } func (AccountType) Type() protoreflect.EnumType { return &file_core_Tron_proto_enumTypes[0] } func (x AccountType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use AccountType.Descriptor instead. func (AccountType) EnumDescriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{0} } type ReasonCode int32 const ( ReasonCode_REQUESTED ReasonCode = 0 ReasonCode_BAD_PROTOCOL ReasonCode = 2 ReasonCode_TOO_MANY_PEERS ReasonCode = 4 ReasonCode_DUPLICATE_PEER ReasonCode = 5 ReasonCode_INCOMPATIBLE_PROTOCOL ReasonCode = 6 ReasonCode_RANDOM_ELIMINATION ReasonCode = 7 ReasonCode_PEER_QUITING ReasonCode = 8 ReasonCode_UNEXPECTED_IDENTITY ReasonCode = 9 ReasonCode_LOCAL_IDENTITY ReasonCode = 10 ReasonCode_PING_TIMEOUT ReasonCode = 11 ReasonCode_USER_REASON ReasonCode = 16 ReasonCode_RESET ReasonCode = 17 ReasonCode_SYNC_FAIL ReasonCode = 18 ReasonCode_FETCH_FAIL ReasonCode = 19 ReasonCode_BAD_TX ReasonCode = 20 ReasonCode_BAD_BLOCK ReasonCode = 21 ReasonCode_FORKED ReasonCode = 22 ReasonCode_UNLINKABLE ReasonCode = 23 ReasonCode_INCOMPATIBLE_VERSION ReasonCode = 24 ReasonCode_INCOMPATIBLE_CHAIN ReasonCode = 25 ReasonCode_TIME_OUT ReasonCode = 32 ReasonCode_CONNECT_FAIL ReasonCode = 33 ReasonCode_TOO_MANY_PEERS_WITH_SAME_IP ReasonCode = 34 ReasonCode_LIGHT_NODE_SYNC_FAIL ReasonCode = 35 ReasonCode_BELOW_THAN_ME ReasonCode = 36 ReasonCode_NOT_WITNESS ReasonCode = 37 ReasonCode_NO_SUCH_MESSAGE ReasonCode = 38 ReasonCode_UNKNOWN ReasonCode = 255 ) // Enum value maps for ReasonCode. var ( ReasonCode_name = map[int32]string{ 0: "REQUESTED", 2: "BAD_PROTOCOL", 4: "TOO_MANY_PEERS", 5: "DUPLICATE_PEER", 6: "INCOMPATIBLE_PROTOCOL", 7: "RANDOM_ELIMINATION", 8: "PEER_QUITING", 9: "UNEXPECTED_IDENTITY", 10: "LOCAL_IDENTITY", 11: "PING_TIMEOUT", 16: "USER_REASON", 17: "RESET", 18: "SYNC_FAIL", 19: "FETCH_FAIL", 20: "BAD_TX", 21: "BAD_BLOCK", 22: "FORKED", 23: "UNLINKABLE", 24: "INCOMPATIBLE_VERSION", 25: "INCOMPATIBLE_CHAIN", 32: "TIME_OUT", 33: "CONNECT_FAIL", 34: "TOO_MANY_PEERS_WITH_SAME_IP", 35: "LIGHT_NODE_SYNC_FAIL", 36: "BELOW_THAN_ME", 37: "NOT_WITNESS", 38: "NO_SUCH_MESSAGE", 255: "UNKNOWN", } ReasonCode_value = map[string]int32{ "REQUESTED": 0, "BAD_PROTOCOL": 2, "TOO_MANY_PEERS": 4, "DUPLICATE_PEER": 5, "INCOMPATIBLE_PROTOCOL": 6, "RANDOM_ELIMINATION": 7, "PEER_QUITING": 8, "UNEXPECTED_IDENTITY": 9, "LOCAL_IDENTITY": 10, "PING_TIMEOUT": 11, "USER_REASON": 16, "RESET": 17, "SYNC_FAIL": 18, "FETCH_FAIL": 19, "BAD_TX": 20, "BAD_BLOCK": 21, "FORKED": 22, "UNLINKABLE": 23, "INCOMPATIBLE_VERSION": 24, "INCOMPATIBLE_CHAIN": 25, "TIME_OUT": 32, "CONNECT_FAIL": 33, "TOO_MANY_PEERS_WITH_SAME_IP": 34, "LIGHT_NODE_SYNC_FAIL": 35, "BELOW_THAN_ME": 36, "NOT_WITNESS": 37, "NO_SUCH_MESSAGE": 38, "UNKNOWN": 255, } ) func (x ReasonCode) Enum() *ReasonCode { p := new(ReasonCode) *p = x return p } func (x ReasonCode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ReasonCode) Descriptor() protoreflect.EnumDescriptor { return file_core_Tron_proto_enumTypes[1].Descriptor() } func (ReasonCode) Type() protoreflect.EnumType { return &file_core_Tron_proto_enumTypes[1] } func (x ReasonCode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ReasonCode.Descriptor instead. func (ReasonCode) EnumDescriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{1} } type Proposal_State int32 const ( Proposal_PENDING Proposal_State = 0 Proposal_DISAPPROVED Proposal_State = 1 Proposal_APPROVED Proposal_State = 2 Proposal_CANCELED Proposal_State = 3 ) // Enum value maps for Proposal_State. var ( Proposal_State_name = map[int32]string{ 0: "PENDING", 1: "DISAPPROVED", 2: "APPROVED", 3: "CANCELED", } Proposal_State_value = map[string]int32{ "PENDING": 0, "DISAPPROVED": 1, "APPROVED": 2, "CANCELED": 3, } ) func (x Proposal_State) Enum() *Proposal_State { p := new(Proposal_State) *p = x return p } func (x Proposal_State) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Proposal_State) Descriptor() protoreflect.EnumDescriptor { return file_core_Tron_proto_enumTypes[2].Descriptor() } func (Proposal_State) Type() protoreflect.EnumType { return &file_core_Tron_proto_enumTypes[2] } func (x Proposal_State) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Proposal_State.Descriptor instead. func (Proposal_State) EnumDescriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{2, 0} } type MarketOrder_State int32 const ( MarketOrder_ACTIVE MarketOrder_State = 0 MarketOrder_INACTIVE MarketOrder_State = 1 MarketOrder_CANCELED MarketOrder_State = 2 ) // Enum value maps for MarketOrder_State. var ( MarketOrder_State_name = map[int32]string{ 0: "ACTIVE", 1: "INACTIVE", 2: "CANCELED", } MarketOrder_State_value = map[string]int32{ "ACTIVE": 0, "INACTIVE": 1, "CANCELED": 2, } ) func (x MarketOrder_State) Enum() *MarketOrder_State { p := new(MarketOrder_State) *p = x return p } func (x MarketOrder_State) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (MarketOrder_State) Descriptor() protoreflect.EnumDescriptor { return file_core_Tron_proto_enumTypes[3].Descriptor() } func (MarketOrder_State) Type() protoreflect.EnumType { return &file_core_Tron_proto_enumTypes[3] } func (x MarketOrder_State) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use MarketOrder_State.Descriptor instead. func (MarketOrder_State) EnumDescriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{4, 0} } type Permission_PermissionType int32 const ( Permission_Owner Permission_PermissionType = 0 Permission_Witness Permission_PermissionType = 1 Permission_Active Permission_PermissionType = 2 ) // Enum value maps for Permission_PermissionType. var ( Permission_PermissionType_name = map[int32]string{ 0: "Owner", 1: "Witness", 2: "Active", } Permission_PermissionType_value = map[string]int32{ "Owner": 0, "Witness": 1, "Active": 2, } ) func (x Permission_PermissionType) Enum() *Permission_PermissionType { p := new(Permission_PermissionType) *p = x return p } func (x Permission_PermissionType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Permission_PermissionType) Descriptor() protoreflect.EnumDescriptor { return file_core_Tron_proto_enumTypes[4].Descriptor() } func (Permission_PermissionType) Type() protoreflect.EnumType { return &file_core_Tron_proto_enumTypes[4] } func (x Permission_PermissionType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Permission_PermissionType.Descriptor instead. func (Permission_PermissionType) EnumDescriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{17, 0} } type Transaction_Contract_ContractType int32 const ( Transaction_Contract_AccountCreateContract Transaction_Contract_ContractType = 0 Transaction_Contract_TransferContract Transaction_Contract_ContractType = 1 Transaction_Contract_TransferAssetContract Transaction_Contract_ContractType = 2 Transaction_Contract_VoteAssetContract Transaction_Contract_ContractType = 3 Transaction_Contract_VoteWitnessContract Transaction_Contract_ContractType = 4 Transaction_Contract_WitnessCreateContract Transaction_Contract_ContractType = 5 Transaction_Contract_AssetIssueContract Transaction_Contract_ContractType = 6 Transaction_Contract_WitnessUpdateContract Transaction_Contract_ContractType = 8 Transaction_Contract_ParticipateAssetIssueContract Transaction_Contract_ContractType = 9 Transaction_Contract_AccountUpdateContract Transaction_Contract_ContractType = 10 Transaction_Contract_FreezeBalanceContract Transaction_Contract_ContractType = 11 Transaction_Contract_UnfreezeBalanceContract Transaction_Contract_ContractType = 12 Transaction_Contract_WithdrawBalanceContract Transaction_Contract_ContractType = 13 Transaction_Contract_UnfreezeAssetContract Transaction_Contract_ContractType = 14 Transaction_Contract_UpdateAssetContract Transaction_Contract_ContractType = 15 Transaction_Contract_ProposalCreateContract Transaction_Contract_ContractType = 16 Transaction_Contract_ProposalApproveContract Transaction_Contract_ContractType = 17 Transaction_Contract_ProposalDeleteContract Transaction_Contract_ContractType = 18 Transaction_Contract_SetAccountIdContract Transaction_Contract_ContractType = 19 Transaction_Contract_CustomContract Transaction_Contract_ContractType = 20 Transaction_Contract_CreateSmartContract Transaction_Contract_ContractType = 30 Transaction_Contract_TriggerSmartContract Transaction_Contract_ContractType = 31 Transaction_Contract_GetContract Transaction_Contract_ContractType = 32 Transaction_Contract_UpdateSettingContract Transaction_Contract_ContractType = 33 Transaction_Contract_ExchangeCreateContract Transaction_Contract_ContractType = 41 Transaction_Contract_ExchangeInjectContract Transaction_Contract_ContractType = 42 Transaction_Contract_ExchangeWithdrawContract Transaction_Contract_ContractType = 43 Transaction_Contract_ExchangeTransactionContract Transaction_Contract_ContractType = 44 Transaction_Contract_UpdateEnergyLimitContract Transaction_Contract_ContractType = 45 Transaction_Contract_AccountPermissionUpdateContract Transaction_Contract_ContractType = 46 Transaction_Contract_ClearABIContract Transaction_Contract_ContractType = 48 Transaction_Contract_UpdateBrokerageContract Transaction_Contract_ContractType = 49 Transaction_Contract_ShieldedTransferContract Transaction_Contract_ContractType = 51 Transaction_Contract_MarketSellAssetContract Transaction_Contract_ContractType = 52 Transaction_Contract_MarketCancelOrderContract Transaction_Contract_ContractType = 53 Transaction_Contract_FreezeBalanceV2Contract Transaction_Contract_ContractType = 54 Transaction_Contract_UnfreezeBalanceV2Contract Transaction_Contract_ContractType = 55 Transaction_Contract_WithdrawExpireUnfreezeContract Transaction_Contract_ContractType = 56 Transaction_Contract_DelegateResourceContract Transaction_Contract_ContractType = 57 Transaction_Contract_UnDelegateResourceContract Transaction_Contract_ContractType = 58 Transaction_Contract_CancelAllUnfreezeV2Contract Transaction_Contract_ContractType = 59 ) // Enum value maps for Transaction_Contract_ContractType. var ( Transaction_Contract_ContractType_name = map[int32]string{ 0: "AccountCreateContract", 1: "TransferContract", 2: "TransferAssetContract", 3: "VoteAssetContract", 4: "VoteWitnessContract", 5: "WitnessCreateContract", 6: "AssetIssueContract", 8: "WitnessUpdateContract", 9: "ParticipateAssetIssueContract", 10: "AccountUpdateContract", 11: "FreezeBalanceContract", 12: "UnfreezeBalanceContract", 13: "WithdrawBalanceContract", 14: "UnfreezeAssetContract", 15: "UpdateAssetContract", 16: "ProposalCreateContract", 17: "ProposalApproveContract", 18: "ProposalDeleteContract", 19: "SetAccountIdContract", 20: "CustomContract", 30: "CreateSmartContract", 31: "TriggerSmartContract", 32: "GetContract", 33: "UpdateSettingContract", 41: "ExchangeCreateContract", 42: "ExchangeInjectContract", 43: "ExchangeWithdrawContract", 44: "ExchangeTransactionContract", 45: "UpdateEnergyLimitContract", 46: "AccountPermissionUpdateContract", 48: "ClearABIContract", 49: "UpdateBrokerageContract", 51: "ShieldedTransferContract", 52: "MarketSellAssetContract", 53: "MarketCancelOrderContract", 54: "FreezeBalanceV2Contract", 55: "UnfreezeBalanceV2Contract", 56: "WithdrawExpireUnfreezeContract", 57: "DelegateResourceContract", 58: "UnDelegateResourceContract", 59: "CancelAllUnfreezeV2Contract", } Transaction_Contract_ContractType_value = map[string]int32{ "AccountCreateContract": 0, "TransferContract": 1, "TransferAssetContract": 2, "VoteAssetContract": 3, "VoteWitnessContract": 4, "WitnessCreateContract": 5, "AssetIssueContract": 6, "WitnessUpdateContract": 8, "ParticipateAssetIssueContract": 9, "AccountUpdateContract": 10, "FreezeBalanceContract": 11, "UnfreezeBalanceContract": 12, "WithdrawBalanceContract": 13, "UnfreezeAssetContract": 14, "UpdateAssetContract": 15, "ProposalCreateContract": 16, "ProposalApproveContract": 17, "ProposalDeleteContract": 18, "SetAccountIdContract": 19, "CustomContract": 20, "CreateSmartContract": 30, "TriggerSmartContract": 31, "GetContract": 32, "UpdateSettingContract": 33, "ExchangeCreateContract": 41, "ExchangeInjectContract": 42, "ExchangeWithdrawContract": 43, "ExchangeTransactionContract": 44, "UpdateEnergyLimitContract": 45, "AccountPermissionUpdateContract": 46, "ClearABIContract": 48, "UpdateBrokerageContract": 49, "ShieldedTransferContract": 51, "MarketSellAssetContract": 52, "MarketCancelOrderContract": 53, "FreezeBalanceV2Contract": 54, "UnfreezeBalanceV2Contract": 55, "WithdrawExpireUnfreezeContract": 56, "DelegateResourceContract": 57, "UnDelegateResourceContract": 58, "CancelAllUnfreezeV2Contract": 59, } ) func (x Transaction_Contract_ContractType) Enum() *Transaction_Contract_ContractType { p := new(Transaction_Contract_ContractType) *p = x return p } func (x Transaction_Contract_ContractType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Transaction_Contract_ContractType) Descriptor() protoreflect.EnumDescriptor { return file_core_Tron_proto_enumTypes[5].Descriptor() } func (Transaction_Contract_ContractType) Type() protoreflect.EnumType { return &file_core_Tron_proto_enumTypes[5] } func (x Transaction_Contract_ContractType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Transaction_Contract_ContractType.Descriptor instead. func (Transaction_Contract_ContractType) EnumDescriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{25, 0, 0} } type Transaction_ResultCode int32 const ( Transaction_Result_SUCESS Transaction_ResultCode = 0 Transaction_Result_FAILED Transaction_ResultCode = 1 ) // Enum value maps for Transaction_ResultCode. var ( Transaction_ResultCode_name = map[int32]string{ 0: "SUCESS", 1: "FAILED", } Transaction_ResultCode_value = map[string]int32{ "SUCESS": 0, "FAILED": 1, } ) func (x Transaction_ResultCode) Enum() *Transaction_ResultCode { p := new(Transaction_ResultCode) *p = x return p } func (x Transaction_ResultCode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Transaction_ResultCode) Descriptor() protoreflect.EnumDescriptor { return file_core_Tron_proto_enumTypes[6].Descriptor() } func (Transaction_ResultCode) Type() protoreflect.EnumType { return &file_core_Tron_proto_enumTypes[6] } func (x Transaction_ResultCode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Transaction_ResultCode.Descriptor instead. func (Transaction_ResultCode) EnumDescriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{25, 1, 0} } type Transaction_ResultContractResult int32 const ( Transaction_Result_DEFAULT Transaction_ResultContractResult = 0 Transaction_Result_SUCCESS Transaction_ResultContractResult = 1 Transaction_Result_REVERT Transaction_ResultContractResult = 2 Transaction_Result_BAD_JUMP_DESTINATION Transaction_ResultContractResult = 3 Transaction_Result_OUT_OF_MEMORY Transaction_ResultContractResult = 4 Transaction_Result_PRECOMPILED_CONTRACT Transaction_ResultContractResult = 5 Transaction_Result_STACK_TOO_SMALL Transaction_ResultContractResult = 6 Transaction_Result_STACK_TOO_LARGE Transaction_ResultContractResult = 7 Transaction_Result_ILLEGAL_OPERATION Transaction_ResultContractResult = 8 Transaction_Result_STACK_OVERFLOW Transaction_ResultContractResult = 9 Transaction_Result_OUT_OF_ENERGY Transaction_ResultContractResult = 10 Transaction_Result_OUT_OF_TIME Transaction_ResultContractResult = 11 Transaction_Result_JVM_STACK_OVER_FLOW Transaction_ResultContractResult = 12 Transaction_Result_UNKNOWN Transaction_ResultContractResult = 13 Transaction_Result_TRANSFER_FAILED Transaction_ResultContractResult = 14 Transaction_Result_INVALID_CODE Transaction_ResultContractResult = 15 ) // Enum value maps for Transaction_ResultContractResult. var ( Transaction_ResultContractResult_name = map[int32]string{ 0: "DEFAULT", 1: "SUCCESS", 2: "REVERT", 3: "BAD_JUMP_DESTINATION", 4: "OUT_OF_MEMORY", 5: "PRECOMPILED_CONTRACT", 6: "STACK_TOO_SMALL", 7: "STACK_TOO_LARGE", 8: "ILLEGAL_OPERATION", 9: "STACK_OVERFLOW", 10: "OUT_OF_ENERGY", 11: "OUT_OF_TIME", 12: "JVM_STACK_OVER_FLOW", 13: "UNKNOWN", 14: "TRANSFER_FAILED", 15: "INVALID_CODE", } Transaction_ResultContractResult_value = map[string]int32{ "DEFAULT": 0, "SUCCESS": 1, "REVERT": 2, "BAD_JUMP_DESTINATION": 3, "OUT_OF_MEMORY": 4, "PRECOMPILED_CONTRACT": 5, "STACK_TOO_SMALL": 6, "STACK_TOO_LARGE": 7, "ILLEGAL_OPERATION": 8, "STACK_OVERFLOW": 9, "OUT_OF_ENERGY": 10, "OUT_OF_TIME": 11, "JVM_STACK_OVER_FLOW": 12, "UNKNOWN": 13, "TRANSFER_FAILED": 14, "INVALID_CODE": 15, } ) func (x Transaction_ResultContractResult) Enum() *Transaction_ResultContractResult { p := new(Transaction_ResultContractResult) *p = x return p } func (x Transaction_ResultContractResult) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Transaction_ResultContractResult) Descriptor() protoreflect.EnumDescriptor { return file_core_Tron_proto_enumTypes[7].Descriptor() } func (Transaction_ResultContractResult) Type() protoreflect.EnumType { return &file_core_Tron_proto_enumTypes[7] } func (x Transaction_ResultContractResult) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Transaction_ResultContractResult.Descriptor instead. func (Transaction_ResultContractResult) EnumDescriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{25, 1, 1} } type TransactionInfoCode int32 const ( TransactionInfo_SUCESS TransactionInfoCode = 0 TransactionInfo_FAILED TransactionInfoCode = 1 ) // Enum value maps for TransactionInfoCode. var ( TransactionInfoCode_name = map[int32]string{ 0: "SUCESS", 1: "FAILED", } TransactionInfoCode_value = map[string]int32{ "SUCESS": 0, "FAILED": 1, } ) func (x TransactionInfoCode) Enum() *TransactionInfoCode { p := new(TransactionInfoCode) *p = x return p } func (x TransactionInfoCode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TransactionInfoCode) Descriptor() protoreflect.EnumDescriptor { return file_core_Tron_proto_enumTypes[8].Descriptor() } func (TransactionInfoCode) Type() protoreflect.EnumType { return &file_core_Tron_proto_enumTypes[8] } func (x TransactionInfoCode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TransactionInfoCode.Descriptor instead. func (TransactionInfoCode) EnumDescriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{26, 0} } type BlockInventory_Type int32 const ( BlockInventory_SYNC BlockInventory_Type = 0 BlockInventory_ADVTISE BlockInventory_Type = 1 BlockInventory_FETCH BlockInventory_Type = 2 ) // Enum value maps for BlockInventory_Type. var ( BlockInventory_Type_name = map[int32]string{ 0: "SYNC", 1: "ADVTISE", 2: "FETCH", } BlockInventory_Type_value = map[string]int32{ "SYNC": 0, "ADVTISE": 1, "FETCH": 2, } ) func (x BlockInventory_Type) Enum() *BlockInventory_Type { p := new(BlockInventory_Type) *p = x return p } func (x BlockInventory_Type) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (BlockInventory_Type) Descriptor() protoreflect.EnumDescriptor { return file_core_Tron_proto_enumTypes[9].Descriptor() } func (BlockInventory_Type) Type() protoreflect.EnumType { return &file_core_Tron_proto_enumTypes[9] } func (x BlockInventory_Type) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use BlockInventory_Type.Descriptor instead. func (BlockInventory_Type) EnumDescriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{32, 0} } type Inventory_InventoryType int32 const ( Inventory_TRX Inventory_InventoryType = 0 Inventory_BLOCK Inventory_InventoryType = 1 ) // Enum value maps for Inventory_InventoryType. var ( Inventory_InventoryType_name = map[int32]string{ 0: "TRX", 1: "BLOCK", } Inventory_InventoryType_value = map[string]int32{ "TRX": 0, "BLOCK": 1, } ) func (x Inventory_InventoryType) Enum() *Inventory_InventoryType { p := new(Inventory_InventoryType) *p = x return p } func (x Inventory_InventoryType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Inventory_InventoryType) Descriptor() protoreflect.EnumDescriptor { return file_core_Tron_proto_enumTypes[10].Descriptor() } func (Inventory_InventoryType) Type() protoreflect.EnumType { return &file_core_Tron_proto_enumTypes[10] } func (x Inventory_InventoryType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Inventory_InventoryType.Descriptor instead. func (Inventory_InventoryType) EnumDescriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{33, 0} } type Items_ItemType int32 const ( Items_ERR Items_ItemType = 0 Items_TRX Items_ItemType = 1 Items_BLOCK Items_ItemType = 2 Items_BLOCKHEADER Items_ItemType = 3 ) // Enum value maps for Items_ItemType. var ( Items_ItemType_name = map[int32]string{ 0: "ERR", 1: "TRX", 2: "BLOCK", 3: "BLOCKHEADER", } Items_ItemType_value = map[string]int32{ "ERR": 0, "TRX": 1, "BLOCK": 2, "BLOCKHEADER": 3, } ) func (x Items_ItemType) Enum() *Items_ItemType { p := new(Items_ItemType) *p = x return p } func (x Items_ItemType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Items_ItemType) Descriptor() protoreflect.EnumDescriptor { return file_core_Tron_proto_enumTypes[11].Descriptor() } func (Items_ItemType) Type() protoreflect.EnumType { return &file_core_Tron_proto_enumTypes[11] } func (x Items_ItemType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Items_ItemType.Descriptor instead. func (Items_ItemType) EnumDescriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{34, 0} } type PBFTMessage_MsgType int32 const ( PBFTMessage_VIEW_CHANGE PBFTMessage_MsgType = 0 PBFTMessage_REQUEST PBFTMessage_MsgType = 1 PBFTMessage_PREPREPARE PBFTMessage_MsgType = 2 PBFTMessage_PREPARE PBFTMessage_MsgType = 3 PBFTMessage_COMMIT PBFTMessage_MsgType = 4 ) // Enum value maps for PBFTMessage_MsgType. var ( PBFTMessage_MsgType_name = map[int32]string{ 0: "VIEW_CHANGE", 1: "REQUEST", 2: "PREPREPARE", 3: "PREPARE", 4: "COMMIT", } PBFTMessage_MsgType_value = map[string]int32{ "VIEW_CHANGE": 0, "REQUEST": 1, "PREPREPARE": 2, "PREPARE": 3, "COMMIT": 4, } ) func (x PBFTMessage_MsgType) Enum() *PBFTMessage_MsgType { p := new(PBFTMessage_MsgType) *p = x return p } func (x PBFTMessage_MsgType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (PBFTMessage_MsgType) Descriptor() protoreflect.EnumDescriptor { return file_core_Tron_proto_enumTypes[12].Descriptor() } func (PBFTMessage_MsgType) Type() protoreflect.EnumType { return &file_core_Tron_proto_enumTypes[12] } func (x PBFTMessage_MsgType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use PBFTMessage_MsgType.Descriptor instead. func (PBFTMessage_MsgType) EnumDescriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{42, 0} } type PBFTMessage_DataType int32 const ( PBFTMessage_BLOCK PBFTMessage_DataType = 0 PBFTMessage_SRL PBFTMessage_DataType = 1 ) // Enum value maps for PBFTMessage_DataType. var ( PBFTMessage_DataType_name = map[int32]string{ 0: "BLOCK", 1: "SRL", } PBFTMessage_DataType_value = map[string]int32{ "BLOCK": 0, "SRL": 1, } ) func (x PBFTMessage_DataType) Enum() *PBFTMessage_DataType { p := new(PBFTMessage_DataType) *p = x return p } func (x PBFTMessage_DataType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (PBFTMessage_DataType) Descriptor() protoreflect.EnumDescriptor { return file_core_Tron_proto_enumTypes[13].Descriptor() } func (PBFTMessage_DataType) Type() protoreflect.EnumType { return &file_core_Tron_proto_enumTypes[13] } func (x PBFTMessage_DataType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use PBFTMessage_DataType.Descriptor instead. func (PBFTMessage_DataType) EnumDescriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{42, 1} } // AccountId, (name, address) use name, (null, address) use address, (name, null) use name, type AccountId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name []byte `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Address []byte `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` } func (x *AccountId) Reset() { *x = AccountId{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AccountId) String() string { return protoimpl.X.MessageStringOf(x) } func (*AccountId) ProtoMessage() {} func (x *AccountId) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AccountId.ProtoReflect.Descriptor instead. func (*AccountId) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{0} } func (x *AccountId) GetName() []byte { if x != nil { return x.Name } return nil } func (x *AccountId) GetAddress() []byte { if x != nil { return x.Address } return nil } // vote message type Vote struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // the super rep address VoteAddress []byte `protobuf:"bytes,1,opt,name=vote_address,json=voteAddress,proto3" json:"vote_address,omitempty"` // the vote num to this super rep. VoteCount int64 `protobuf:"varint,2,opt,name=vote_count,json=voteCount,proto3" json:"vote_count,omitempty"` } func (x *Vote) Reset() { *x = Vote{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Vote) String() string { return protoimpl.X.MessageStringOf(x) } func (*Vote) ProtoMessage() {} func (x *Vote) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Vote.ProtoReflect.Descriptor instead. func (*Vote) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{1} } func (x *Vote) GetVoteAddress() []byte { if x != nil { return x.VoteAddress } return nil } func (x *Vote) GetVoteCount() int64 { if x != nil { return x.VoteCount } return 0 } // Proposal type Proposal struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ProposalId int64 `protobuf:"varint,1,opt,name=proposal_id,json=proposalId,proto3" json:"proposal_id,omitempty"` ProposerAddress []byte `protobuf:"bytes,2,opt,name=proposer_address,json=proposerAddress,proto3" json:"proposer_address,omitempty"` Parameters map[int64]int64 `protobuf:"bytes,3,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` ExpirationTime int64 `protobuf:"varint,4,opt,name=expiration_time,json=expirationTime,proto3" json:"expiration_time,omitempty"` CreateTime int64 `protobuf:"varint,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` Approvals [][]byte `protobuf:"bytes,6,rep,name=approvals,proto3" json:"approvals,omitempty"` State Proposal_State `protobuf:"varint,7,opt,name=state,proto3,enum=protocol.Proposal_State" json:"state,omitempty"` } func (x *Proposal) Reset() { *x = Proposal{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Proposal) String() string { return protoimpl.X.MessageStringOf(x) } func (*Proposal) ProtoMessage() {} func (x *Proposal) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Proposal.ProtoReflect.Descriptor instead. func (*Proposal) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{2} } func (x *Proposal) GetProposalId() int64 { if x != nil { return x.ProposalId } return 0 } func (x *Proposal) GetProposerAddress() []byte { if x != nil { return x.ProposerAddress } return nil } func (x *Proposal) GetParameters() map[int64]int64 { if x != nil { return x.Parameters } return nil } func (x *Proposal) GetExpirationTime() int64 { if x != nil { return x.ExpirationTime } return 0 } func (x *Proposal) GetCreateTime() int64 { if x != nil { return x.CreateTime } return 0 } func (x *Proposal) GetApprovals() [][]byte { if x != nil { return x.Approvals } return nil } func (x *Proposal) GetState() Proposal_State { if x != nil { return x.State } return Proposal_PENDING } // Exchange type Exchange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ExchangeId int64 `protobuf:"varint,1,opt,name=exchange_id,json=exchangeId,proto3" json:"exchange_id,omitempty"` CreatorAddress []byte `protobuf:"bytes,2,opt,name=creator_address,json=creatorAddress,proto3" json:"creator_address,omitempty"` CreateTime int64 `protobuf:"varint,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` FirstTokenId []byte `protobuf:"bytes,6,opt,name=first_token_id,json=firstTokenId,proto3" json:"first_token_id,omitempty"` FirstTokenBalance int64 `protobuf:"varint,7,opt,name=first_token_balance,json=firstTokenBalance,proto3" json:"first_token_balance,omitempty"` SecondTokenId []byte `protobuf:"bytes,8,opt,name=second_token_id,json=secondTokenId,proto3" json:"second_token_id,omitempty"` SecondTokenBalance int64 `protobuf:"varint,9,opt,name=second_token_balance,json=secondTokenBalance,proto3" json:"second_token_balance,omitempty"` } func (x *Exchange) Reset() { *x = Exchange{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Exchange) String() string { return protoimpl.X.MessageStringOf(x) } func (*Exchange) ProtoMessage() {} func (x *Exchange) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Exchange.ProtoReflect.Descriptor instead. func (*Exchange) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{3} } func (x *Exchange) GetExchangeId() int64 { if x != nil { return x.ExchangeId } return 0 } func (x *Exchange) GetCreatorAddress() []byte { if x != nil { return x.CreatorAddress } return nil } func (x *Exchange) GetCreateTime() int64 { if x != nil { return x.CreateTime } return 0 } func (x *Exchange) GetFirstTokenId() []byte { if x != nil { return x.FirstTokenId } return nil } func (x *Exchange) GetFirstTokenBalance() int64 { if x != nil { return x.FirstTokenBalance } return 0 } func (x *Exchange) GetSecondTokenId() []byte { if x != nil { return x.SecondTokenId } return nil } func (x *Exchange) GetSecondTokenBalance() int64 { if x != nil { return x.SecondTokenBalance } return 0 } // market type MarketOrder struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OrderId []byte `protobuf:"bytes,1,opt,name=order_id,json=orderId,proto3" json:"order_id,omitempty"` OwnerAddress []byte `protobuf:"bytes,2,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address,omitempty"` CreateTime int64 `protobuf:"varint,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` SellTokenId []byte `protobuf:"bytes,4,opt,name=sell_token_id,json=sellTokenId,proto3" json:"sell_token_id,omitempty"` SellTokenQuantity int64 `protobuf:"varint,5,opt,name=sell_token_quantity,json=sellTokenQuantity,proto3" json:"sell_token_quantity,omitempty"` BuyTokenId []byte `protobuf:"bytes,6,opt,name=buy_token_id,json=buyTokenId,proto3" json:"buy_token_id,omitempty"` BuyTokenQuantity int64 `protobuf:"varint,7,opt,name=buy_token_quantity,json=buyTokenQuantity,proto3" json:"buy_token_quantity,omitempty"` // min to receive SellTokenQuantityRemain int64 `protobuf:"varint,9,opt,name=sell_token_quantity_remain,json=sellTokenQuantityRemain,proto3" json:"sell_token_quantity_remain,omitempty"` // When state != ACTIVE and sell_token_quantity_return !=0, // it means that some sell tokens are returned to the account due to insufficient remaining amount SellTokenQuantityReturn int64 `protobuf:"varint,10,opt,name=sell_token_quantity_return,json=sellTokenQuantityReturn,proto3" json:"sell_token_quantity_return,omitempty"` State MarketOrder_State `protobuf:"varint,11,opt,name=state,proto3,enum=protocol.MarketOrder_State" json:"state,omitempty"` Prev []byte `protobuf:"bytes,12,opt,name=prev,proto3" json:"prev,omitempty"` Next []byte `protobuf:"bytes,13,opt,name=next,proto3" json:"next,omitempty"` } func (x *MarketOrder) Reset() { *x = MarketOrder{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MarketOrder) String() string { return protoimpl.X.MessageStringOf(x) } func (*MarketOrder) ProtoMessage() {} func (x *MarketOrder) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MarketOrder.ProtoReflect.Descriptor instead. func (*MarketOrder) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{4} } func (x *MarketOrder) GetOrderId() []byte { if x != nil { return x.OrderId } return nil } func (x *MarketOrder) GetOwnerAddress() []byte { if x != nil { return x.OwnerAddress } return nil } func (x *MarketOrder) GetCreateTime() int64 { if x != nil { return x.CreateTime } return 0 } func (x *MarketOrder) GetSellTokenId() []byte { if x != nil { return x.SellTokenId } return nil } func (x *MarketOrder) GetSellTokenQuantity() int64 { if x != nil { return x.SellTokenQuantity } return 0 } func (x *MarketOrder) GetBuyTokenId() []byte { if x != nil { return x.BuyTokenId } return nil } func (x *MarketOrder) GetBuyTokenQuantity() int64 { if x != nil { return x.BuyTokenQuantity } return 0 } func (x *MarketOrder) GetSellTokenQuantityRemain() int64 { if x != nil { return x.SellTokenQuantityRemain } return 0 } func (x *MarketOrder) GetSellTokenQuantityReturn() int64 { if x != nil { return x.SellTokenQuantityReturn } return 0 } func (x *MarketOrder) GetState() MarketOrder_State { if x != nil { return x.State } return MarketOrder_ACTIVE } func (x *MarketOrder) GetPrev() []byte { if x != nil { return x.Prev } return nil } func (x *MarketOrder) GetNext() []byte { if x != nil { return x.Next } return nil } type MarketOrderList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Orders []*MarketOrder `protobuf:"bytes,1,rep,name=orders,proto3" json:"orders,omitempty"` } func (x *MarketOrderList) Reset() { *x = MarketOrderList{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MarketOrderList) String() string { return protoimpl.X.MessageStringOf(x) } func (*MarketOrderList) ProtoMessage() {} func (x *MarketOrderList) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MarketOrderList.ProtoReflect.Descriptor instead. func (*MarketOrderList) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{5} } func (x *MarketOrderList) GetOrders() []*MarketOrder { if x != nil { return x.Orders } return nil } type MarketOrderPairList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OrderPair []*MarketOrderPair `protobuf:"bytes,1,rep,name=orderPair,proto3" json:"orderPair,omitempty"` } func (x *MarketOrderPairList) Reset() { *x = MarketOrderPairList{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MarketOrderPairList) String() string { return protoimpl.X.MessageStringOf(x) } func (*MarketOrderPairList) ProtoMessage() {} func (x *MarketOrderPairList) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MarketOrderPairList.ProtoReflect.Descriptor instead. func (*MarketOrderPairList) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{6} } func (x *MarketOrderPairList) GetOrderPair() []*MarketOrderPair { if x != nil { return x.OrderPair } return nil } type MarketOrderPair struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SellTokenId []byte `protobuf:"bytes,1,opt,name=sell_token_id,json=sellTokenId,proto3" json:"sell_token_id,omitempty"` BuyTokenId []byte `protobuf:"bytes,2,opt,name=buy_token_id,json=buyTokenId,proto3" json:"buy_token_id,omitempty"` } func (x *MarketOrderPair) Reset() { *x = MarketOrderPair{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MarketOrderPair) String() string { return protoimpl.X.MessageStringOf(x) } func (*MarketOrderPair) ProtoMessage() {} func (x *MarketOrderPair) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MarketOrderPair.ProtoReflect.Descriptor instead. func (*MarketOrderPair) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{7} } func (x *MarketOrderPair) GetSellTokenId() []byte { if x != nil { return x.SellTokenId } return nil } func (x *MarketOrderPair) GetBuyTokenId() []byte { if x != nil { return x.BuyTokenId } return nil } type MarketAccountOrder struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OwnerAddress []byte `protobuf:"bytes,1,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address,omitempty"` Orders [][]byte `protobuf:"bytes,2,rep,name=orders,proto3" json:"orders,omitempty"` // order_id list Count int64 `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"` // active count TotalCount int64 `protobuf:"varint,4,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"` } func (x *MarketAccountOrder) Reset() { *x = MarketAccountOrder{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MarketAccountOrder) String() string { return protoimpl.X.MessageStringOf(x) } func (*MarketAccountOrder) ProtoMessage() {} func (x *MarketAccountOrder) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MarketAccountOrder.ProtoReflect.Descriptor instead. func (*MarketAccountOrder) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{8} } func (x *MarketAccountOrder) GetOwnerAddress() []byte { if x != nil { return x.OwnerAddress } return nil } func (x *MarketAccountOrder) GetOrders() [][]byte { if x != nil { return x.Orders } return nil } func (x *MarketAccountOrder) GetCount() int64 { if x != nil { return x.Count } return 0 } func (x *MarketAccountOrder) GetTotalCount() int64 { if x != nil { return x.TotalCount } return 0 } type MarketPrice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SellTokenQuantity int64 `protobuf:"varint,1,opt,name=sell_token_quantity,json=sellTokenQuantity,proto3" json:"sell_token_quantity,omitempty"` BuyTokenQuantity int64 `protobuf:"varint,2,opt,name=buy_token_quantity,json=buyTokenQuantity,proto3" json:"buy_token_quantity,omitempty"` } func (x *MarketPrice) Reset() { *x = MarketPrice{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MarketPrice) String() string { return protoimpl.X.MessageStringOf(x) } func (*MarketPrice) ProtoMessage() {} func (x *MarketPrice) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MarketPrice.ProtoReflect.Descriptor instead. func (*MarketPrice) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{9} } func (x *MarketPrice) GetSellTokenQuantity() int64 { if x != nil { return x.SellTokenQuantity } return 0 } func (x *MarketPrice) GetBuyTokenQuantity() int64 { if x != nil { return x.BuyTokenQuantity } return 0 } type MarketPriceList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SellTokenId []byte `protobuf:"bytes,1,opt,name=sell_token_id,json=sellTokenId,proto3" json:"sell_token_id,omitempty"` BuyTokenId []byte `protobuf:"bytes,2,opt,name=buy_token_id,json=buyTokenId,proto3" json:"buy_token_id,omitempty"` Prices []*MarketPrice `protobuf:"bytes,3,rep,name=prices,proto3" json:"prices,omitempty"` } func (x *MarketPriceList) Reset() { *x = MarketPriceList{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MarketPriceList) String() string { return protoimpl.X.MessageStringOf(x) } func (*MarketPriceList) ProtoMessage() {} func (x *MarketPriceList) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MarketPriceList.ProtoReflect.Descriptor instead. func (*MarketPriceList) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{10} } func (x *MarketPriceList) GetSellTokenId() []byte { if x != nil { return x.SellTokenId } return nil } func (x *MarketPriceList) GetBuyTokenId() []byte { if x != nil { return x.BuyTokenId } return nil } func (x *MarketPriceList) GetPrices() []*MarketPrice { if x != nil { return x.Prices } return nil } type MarketOrderIdList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Head []byte `protobuf:"bytes,1,opt,name=head,proto3" json:"head,omitempty"` Tail []byte `protobuf:"bytes,2,opt,name=tail,proto3" json:"tail,omitempty"` } func (x *MarketOrderIdList) Reset() { *x = MarketOrderIdList{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MarketOrderIdList) String() string { return protoimpl.X.MessageStringOf(x) } func (*MarketOrderIdList) ProtoMessage() {} func (x *MarketOrderIdList) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MarketOrderIdList.ProtoReflect.Descriptor instead. func (*MarketOrderIdList) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{11} } func (x *MarketOrderIdList) GetHead() []byte { if x != nil { return x.Head } return nil } func (x *MarketOrderIdList) GetTail() []byte { if x != nil { return x.Tail } return nil } type ChainParameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChainParameter []*ChainParameters_ChainParameter `protobuf:"bytes,1,rep,name=chainParameter,proto3" json:"chainParameter,omitempty"` } func (x *ChainParameters) Reset() { *x = ChainParameters{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ChainParameters) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChainParameters) ProtoMessage() {} func (x *ChainParameters) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ChainParameters.ProtoReflect.Descriptor instead. func (*ChainParameters) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{12} } func (x *ChainParameters) GetChainParameter() []*ChainParameters_ChainParameter { if x != nil { return x.ChainParameter } return nil } // Account type Account struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // account nick name AccountName []byte `protobuf:"bytes,1,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` Type AccountType `protobuf:"varint,2,opt,name=type,proto3,enum=protocol.AccountType" json:"type,omitempty"` // the create address Address []byte `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` // the trx balance Balance int64 `protobuf:"varint,4,opt,name=balance,proto3" json:"balance,omitempty"` // the votes Votes []*Vote `protobuf:"bytes,5,rep,name=votes,proto3" json:"votes,omitempty"` // the other asset owned by this account Asset map[string]int64 `protobuf:"bytes,6,rep,name=asset,proto3" json:"asset,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // the other asset owned by this account,key is assetId AssetV2 map[string]int64 `protobuf:"bytes,56,rep,name=assetV2,proto3" json:"assetV2,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // the frozen balance for bandwidth Frozen []*Account_Frozen `protobuf:"bytes,7,rep,name=frozen,proto3" json:"frozen,omitempty"` // bandwidth, get from frozen NetUsage int64 `protobuf:"varint,8,opt,name=net_usage,json=netUsage,proto3" json:"net_usage,omitempty"` // Frozen balance provided by other accounts to this account AcquiredDelegatedFrozenBalanceForBandwidth int64 `protobuf:"varint,41,opt,name=acquired_delegated_frozen_balance_for_bandwidth,json=acquiredDelegatedFrozenBalanceForBandwidth,proto3" json:"acquired_delegated_frozen_balance_for_bandwidth,omitempty"` // Freeze and provide balances to other accounts DelegatedFrozenBalanceForBandwidth int64 `protobuf:"varint,42,opt,name=delegated_frozen_balance_for_bandwidth,json=delegatedFrozenBalanceForBandwidth,proto3" json:"delegated_frozen_balance_for_bandwidth,omitempty"` OldTronPower int64 `protobuf:"varint,46,opt,name=old_tron_power,json=oldTronPower,proto3" json:"old_tron_power,omitempty"` TronPower *Account_Frozen `protobuf:"bytes,47,opt,name=tron_power,json=tronPower,proto3" json:"tron_power,omitempty"` AssetOptimized bool `protobuf:"varint,60,opt,name=asset_optimized,json=assetOptimized,proto3" json:"asset_optimized,omitempty"` // this account create time CreateTime int64 `protobuf:"varint,9,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // this last operation time, including transfer, voting and so on. //FIXME fix grammar LatestOprationTime int64 `protobuf:"varint,10,opt,name=latest_opration_time,json=latestOprationTime,proto3" json:"latest_opration_time,omitempty"` // witness block producing allowance Allowance int64 `protobuf:"varint,11,opt,name=allowance,proto3" json:"allowance,omitempty"` // last withdraw time LatestWithdrawTime int64 `protobuf:"varint,12,opt,name=latest_withdraw_time,json=latestWithdrawTime,proto3" json:"latest_withdraw_time,omitempty"` // not used so far Code []byte `protobuf:"bytes,13,opt,name=code,proto3" json:"code,omitempty"` IsWitness bool `protobuf:"varint,14,opt,name=is_witness,json=isWitness,proto3" json:"is_witness,omitempty"` IsCommittee bool `protobuf:"varint,15,opt,name=is_committee,json=isCommittee,proto3" json:"is_committee,omitempty"` // frozen asset(for asset issuer) FrozenSupply []*Account_Frozen `protobuf:"bytes,16,rep,name=frozen_supply,json=frozenSupply,proto3" json:"frozen_supply,omitempty"` // asset_issued_name AssetIssuedName []byte `protobuf:"bytes,17,opt,name=asset_issued_name,json=assetIssuedName,proto3" json:"asset_issued_name,omitempty"` AssetIssued_ID []byte `protobuf:"bytes,57,opt,name=asset_issued_ID,json=assetIssuedID,proto3" json:"asset_issued_ID,omitempty"` LatestAssetOperationTime map[string]int64 `protobuf:"bytes,18,rep,name=latest_asset_operation_time,json=latestAssetOperationTime,proto3" json:"latest_asset_operation_time,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` LatestAssetOperationTimeV2 map[string]int64 `protobuf:"bytes,58,rep,name=latest_asset_operation_timeV2,json=latestAssetOperationTimeV2,proto3" json:"latest_asset_operation_timeV2,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` FreeNetUsage int64 `protobuf:"varint,19,opt,name=free_net_usage,json=freeNetUsage,proto3" json:"free_net_usage,omitempty"` FreeAssetNetUsage map[string]int64 `protobuf:"bytes,20,rep,name=free_asset_net_usage,json=freeAssetNetUsage,proto3" json:"free_asset_net_usage,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` FreeAssetNetUsageV2 map[string]int64 `protobuf:"bytes,59,rep,name=free_asset_net_usageV2,json=freeAssetNetUsageV2,proto3" json:"free_asset_net_usageV2,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` LatestConsumeTime int64 `protobuf:"varint,21,opt,name=latest_consume_time,json=latestConsumeTime,proto3" json:"latest_consume_time,omitempty"` LatestConsumeFreeTime int64 `protobuf:"varint,22,opt,name=latest_consume_free_time,json=latestConsumeFreeTime,proto3" json:"latest_consume_free_time,omitempty"` // the identity of this account, case insensitive AccountId []byte `protobuf:"bytes,23,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"` NetWindowSize int64 `protobuf:"varint,24,opt,name=net_window_size,json=netWindowSize,proto3" json:"net_window_size,omitempty"` NetWindowOptimized bool `protobuf:"varint,25,opt,name=net_window_optimized,json=netWindowOptimized,proto3" json:"net_window_optimized,omitempty"` AccountResource *Account_AccountResource `protobuf:"bytes,26,opt,name=account_resource,json=accountResource,proto3" json:"account_resource,omitempty"` CodeHash []byte `protobuf:"bytes,30,opt,name=codeHash,proto3" json:"codeHash,omitempty"` OwnerPermission *Permission `protobuf:"bytes,31,opt,name=owner_permission,json=ownerPermission,proto3" json:"owner_permission,omitempty"` WitnessPermission *Permission `protobuf:"bytes,32,opt,name=witness_permission,json=witnessPermission,proto3" json:"witness_permission,omitempty"` ActivePermission []*Permission `protobuf:"bytes,33,rep,name=active_permission,json=activePermission,proto3" json:"active_permission,omitempty"` FrozenV2 []*Account_FreezeV2 `protobuf:"bytes,34,rep,name=frozenV2,proto3" json:"frozenV2,omitempty"` UnfrozenV2 []*Account_UnFreezeV2 `protobuf:"bytes,35,rep,name=unfrozenV2,proto3" json:"unfrozenV2,omitempty"` DelegatedFrozenV2BalanceForBandwidth int64 `protobuf:"varint,36,opt,name=delegated_frozenV2_balance_for_bandwidth,json=delegatedFrozenV2BalanceForBandwidth,proto3" json:"delegated_frozenV2_balance_for_bandwidth,omitempty"` AcquiredDelegatedFrozenV2BalanceForBandwidth int64 `protobuf:"varint,37,opt,name=acquired_delegated_frozenV2_balance_for_bandwidth,json=acquiredDelegatedFrozenV2BalanceForBandwidth,proto3" json:"acquired_delegated_frozenV2_balance_for_bandwidth,omitempty"` } func (x *Account) Reset() { *x = Account{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Account) String() string { return protoimpl.X.MessageStringOf(x) } func (*Account) ProtoMessage() {} func (x *Account) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Account.ProtoReflect.Descriptor instead. func (*Account) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{13} } func (x *Account) GetAccountName() []byte { if x != nil { return x.AccountName } return nil } func (x *Account) GetType() AccountType { if x != nil { return x.Type } return AccountType_Normal } func (x *Account) GetAddress() []byte { if x != nil { return x.Address } return nil } func (x *Account) GetBalance() int64 { if x != nil { return x.Balance } return 0 } func (x *Account) GetVotes() []*Vote { if x != nil { return x.Votes } return nil } func (x *Account) GetAsset() map[string]int64 { if x != nil { return x.Asset } return nil } func (x *Account) GetAssetV2() map[string]int64 { if x != nil { return x.AssetV2 } return nil } func (x *Account) GetFrozen() []*Account_Frozen { if x != nil { return x.Frozen } return nil } func (x *Account) GetNetUsage() int64 { if x != nil { return x.NetUsage } return 0 } func (x *Account) GetAcquiredDelegatedFrozenBalanceForBandwidth() int64 { if x != nil { return x.AcquiredDelegatedFrozenBalanceForBandwidth } return 0 } func (x *Account) GetDelegatedFrozenBalanceForBandwidth() int64 { if x != nil { return x.DelegatedFrozenBalanceForBandwidth } return 0 } func (x *Account) GetOldTronPower() int64 { if x != nil { return x.OldTronPower } return 0 } func (x *Account) GetTronPower() *Account_Frozen { if x != nil { return x.TronPower } return nil } func (x *Account) GetAssetOptimized() bool { if x != nil { return x.AssetOptimized } return false } func (x *Account) GetCreateTime() int64 { if x != nil { return x.CreateTime } return 0 } func (x *Account) GetLatestOprationTime() int64 { if x != nil { return x.LatestOprationTime } return 0 } func (x *Account) GetAllowance() int64 { if x != nil { return x.Allowance } return 0 } func (x *Account) GetLatestWithdrawTime() int64 { if x != nil { return x.LatestWithdrawTime } return 0 } func (x *Account) GetCode() []byte { if x != nil { return x.Code } return nil } func (x *Account) GetIsWitness() bool { if x != nil { return x.IsWitness } return false } func (x *Account) GetIsCommittee() bool { if x != nil { return x.IsCommittee } return false } func (x *Account) GetFrozenSupply() []*Account_Frozen { if x != nil { return x.FrozenSupply } return nil } func (x *Account) GetAssetIssuedName() []byte { if x != nil { return x.AssetIssuedName } return nil } func (x *Account) GetAssetIssued_ID() []byte { if x != nil { return x.AssetIssued_ID } return nil } func (x *Account) GetLatestAssetOperationTime() map[string]int64 { if x != nil { return x.LatestAssetOperationTime } return nil } func (x *Account) GetLatestAssetOperationTimeV2() map[string]int64 { if x != nil { return x.LatestAssetOperationTimeV2 } return nil } func (x *Account) GetFreeNetUsage() int64 { if x != nil { return x.FreeNetUsage } return 0 } func (x *Account) GetFreeAssetNetUsage() map[string]int64 { if x != nil { return x.FreeAssetNetUsage } return nil } func (x *Account) GetFreeAssetNetUsageV2() map[string]int64 { if x != nil { return x.FreeAssetNetUsageV2 } return nil } func (x *Account) GetLatestConsumeTime() int64 { if x != nil { return x.LatestConsumeTime } return 0 } func (x *Account) GetLatestConsumeFreeTime() int64 { if x != nil { return x.LatestConsumeFreeTime } return 0 } func (x *Account) GetAccountId() []byte { if x != nil { return x.AccountId } return nil } func (x *Account) GetNetWindowSize() int64 { if x != nil { return x.NetWindowSize } return 0 } func (x *Account) GetNetWindowOptimized() bool { if x != nil { return x.NetWindowOptimized } return false } func (x *Account) GetAccountResource() *Account_AccountResource { if x != nil { return x.AccountResource } return nil } func (x *Account) GetCodeHash() []byte { if x != nil { return x.CodeHash } return nil } func (x *Account) GetOwnerPermission() *Permission { if x != nil { return x.OwnerPermission } return nil } func (x *Account) GetWitnessPermission() *Permission { if x != nil { return x.WitnessPermission } return nil } func (x *Account) GetActivePermission() []*Permission { if x != nil { return x.ActivePermission } return nil } func (x *Account) GetFrozenV2() []*Account_FreezeV2 { if x != nil { return x.FrozenV2 } return nil } func (x *Account) GetUnfrozenV2() []*Account_UnFreezeV2 { if x != nil { return x.UnfrozenV2 } return nil } func (x *Account) GetDelegatedFrozenV2BalanceForBandwidth() int64 { if x != nil { return x.DelegatedFrozenV2BalanceForBandwidth } return 0 } func (x *Account) GetAcquiredDelegatedFrozenV2BalanceForBandwidth() int64 { if x != nil { return x.AcquiredDelegatedFrozenV2BalanceForBandwidth } return 0 } type Key struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` Weight int64 `protobuf:"varint,2,opt,name=weight,proto3" json:"weight,omitempty"` } func (x *Key) Reset() { *x = Key{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Key) String() string { return protoimpl.X.MessageStringOf(x) } func (*Key) ProtoMessage() {} func (x *Key) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Key.ProtoReflect.Descriptor instead. func (*Key) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{14} } func (x *Key) GetAddress() []byte { if x != nil { return x.Address } return nil } func (x *Key) GetWeight() int64 { if x != nil { return x.Weight } return 0 } type DelegatedResource struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields From []byte `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"` To []byte `protobuf:"bytes,2,opt,name=to,proto3" json:"to,omitempty"` FrozenBalanceForBandwidth int64 `protobuf:"varint,3,opt,name=frozen_balance_for_bandwidth,json=frozenBalanceForBandwidth,proto3" json:"frozen_balance_for_bandwidth,omitempty"` FrozenBalanceForEnergy int64 `protobuf:"varint,4,opt,name=frozen_balance_for_energy,json=frozenBalanceForEnergy,proto3" json:"frozen_balance_for_energy,omitempty"` ExpireTimeForBandwidth int64 `protobuf:"varint,5,opt,name=expire_time_for_bandwidth,json=expireTimeForBandwidth,proto3" json:"expire_time_for_bandwidth,omitempty"` ExpireTimeForEnergy int64 `protobuf:"varint,6,opt,name=expire_time_for_energy,json=expireTimeForEnergy,proto3" json:"expire_time_for_energy,omitempty"` } func (x *DelegatedResource) Reset() { *x = DelegatedResource{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DelegatedResource) String() string { return protoimpl.X.MessageStringOf(x) } func (*DelegatedResource) ProtoMessage() {} func (x *DelegatedResource) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DelegatedResource.ProtoReflect.Descriptor instead. func (*DelegatedResource) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{15} } func (x *DelegatedResource) GetFrom() []byte { if x != nil { return x.From } return nil } func (x *DelegatedResource) GetTo() []byte { if x != nil { return x.To } return nil } func (x *DelegatedResource) GetFrozenBalanceForBandwidth() int64 { if x != nil { return x.FrozenBalanceForBandwidth } return 0 } func (x *DelegatedResource) GetFrozenBalanceForEnergy() int64 { if x != nil { return x.FrozenBalanceForEnergy } return 0 } func (x *DelegatedResource) GetExpireTimeForBandwidth() int64 { if x != nil { return x.ExpireTimeForBandwidth } return 0 } func (x *DelegatedResource) GetExpireTimeForEnergy() int64 { if x != nil { return x.ExpireTimeForEnergy } return 0 } type Authority struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Account *AccountId `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` PermissionName []byte `protobuf:"bytes,2,opt,name=permission_name,json=permissionName,proto3" json:"permission_name,omitempty"` } func (x *Authority) Reset() { *x = Authority{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Authority) String() string { return protoimpl.X.MessageStringOf(x) } func (*Authority) ProtoMessage() {} func (x *Authority) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Authority.ProtoReflect.Descriptor instead. func (*Authority) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{16} } func (x *Authority) GetAccount() *AccountId { if x != nil { return x.Account } return nil } func (x *Authority) GetPermissionName() []byte { if x != nil { return x.PermissionName } return nil } type Permission struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type Permission_PermissionType `protobuf:"varint,1,opt,name=type,proto3,enum=protocol.Permission_PermissionType" json:"type,omitempty"` Id int32 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` //Owner id=0, Witness id=1, Active id start by 2 PermissionName string `protobuf:"bytes,3,opt,name=permission_name,json=permissionName,proto3" json:"permission_name,omitempty"` Threshold int64 `protobuf:"varint,4,opt,name=threshold,proto3" json:"threshold,omitempty"` ParentId int32 `protobuf:"varint,5,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"` Operations []byte `protobuf:"bytes,6,opt,name=operations,proto3" json:"operations,omitempty"` //1 bit 1 contract Keys []*Key `protobuf:"bytes,7,rep,name=keys,proto3" json:"keys,omitempty"` } func (x *Permission) Reset() { *x = Permission{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Permission) String() string { return protoimpl.X.MessageStringOf(x) } func (*Permission) ProtoMessage() {} func (x *Permission) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Permission.ProtoReflect.Descriptor instead. func (*Permission) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{17} } func (x *Permission) GetType() Permission_PermissionType { if x != nil { return x.Type } return Permission_Owner } func (x *Permission) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *Permission) GetPermissionName() string { if x != nil { return x.PermissionName } return "" } func (x *Permission) GetThreshold() int64 { if x != nil { return x.Threshold } return 0 } func (x *Permission) GetParentId() int32 { if x != nil { return x.ParentId } return 0 } func (x *Permission) GetOperations() []byte { if x != nil { return x.Operations } return nil } func (x *Permission) GetKeys() []*Key { if x != nil { return x.Keys } return nil } // Witness type Witness struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` VoteCount int64 `protobuf:"varint,2,opt,name=voteCount,proto3" json:"voteCount,omitempty"` PubKey []byte `protobuf:"bytes,3,opt,name=pubKey,proto3" json:"pubKey,omitempty"` Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"` TotalProduced int64 `protobuf:"varint,5,opt,name=totalProduced,proto3" json:"totalProduced,omitempty"` TotalMissed int64 `protobuf:"varint,6,opt,name=totalMissed,proto3" json:"totalMissed,omitempty"` LatestBlockNum int64 `protobuf:"varint,7,opt,name=latestBlockNum,proto3" json:"latestBlockNum,omitempty"` LatestSlotNum int64 `protobuf:"varint,8,opt,name=latestSlotNum,proto3" json:"latestSlotNum,omitempty"` IsJobs bool `protobuf:"varint,9,opt,name=isJobs,proto3" json:"isJobs,omitempty"` } func (x *Witness) Reset() { *x = Witness{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Witness) String() string { return protoimpl.X.MessageStringOf(x) } func (*Witness) ProtoMessage() {} func (x *Witness) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Witness.ProtoReflect.Descriptor instead. func (*Witness) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{18} } func (x *Witness) GetAddress() []byte { if x != nil { return x.Address } return nil } func (x *Witness) GetVoteCount() int64 { if x != nil { return x.VoteCount } return 0 } func (x *Witness) GetPubKey() []byte { if x != nil { return x.PubKey } return nil } func (x *Witness) GetUrl() string { if x != nil { return x.Url } return "" } func (x *Witness) GetTotalProduced() int64 { if x != nil { return x.TotalProduced } return 0 } func (x *Witness) GetTotalMissed() int64 { if x != nil { return x.TotalMissed } return 0 } func (x *Witness) GetLatestBlockNum() int64 { if x != nil { return x.LatestBlockNum } return 0 } func (x *Witness) GetLatestSlotNum() int64 { if x != nil { return x.LatestSlotNum } return 0 } func (x *Witness) GetIsJobs() bool { if x != nil { return x.IsJobs } return false } // Vote Change type Votes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` OldVotes []*Vote `protobuf:"bytes,2,rep,name=old_votes,json=oldVotes,proto3" json:"old_votes,omitempty"` NewVotes []*Vote `protobuf:"bytes,3,rep,name=new_votes,json=newVotes,proto3" json:"new_votes,omitempty"` } func (x *Votes) Reset() { *x = Votes{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Votes) String() string { return protoimpl.X.MessageStringOf(x) } func (*Votes) ProtoMessage() {} func (x *Votes) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Votes.ProtoReflect.Descriptor instead. func (*Votes) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{19} } func (x *Votes) GetAddress() []byte { if x != nil { return x.Address } return nil } func (x *Votes) GetOldVotes() []*Vote { if x != nil { return x.OldVotes } return nil } func (x *Votes) GetNewVotes() []*Vote { if x != nil { return x.NewVotes } return nil } type TXOutput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Value int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` PubKeyHash []byte `protobuf:"bytes,2,opt,name=pubKeyHash,proto3" json:"pubKeyHash,omitempty"` } func (x *TXOutput) Reset() { *x = TXOutput{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TXOutput) String() string { return protoimpl.X.MessageStringOf(x) } func (*TXOutput) ProtoMessage() {} func (x *TXOutput) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TXOutput.ProtoReflect.Descriptor instead. func (*TXOutput) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{20} } func (x *TXOutput) GetValue() int64 { if x != nil { return x.Value } return 0 } func (x *TXOutput) GetPubKeyHash() []byte { if x != nil { return x.PubKeyHash } return nil } type TXInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RawData *TXInputRaw `protobuf:"bytes,1,opt,name=raw_data,json=rawData,proto3" json:"raw_data,omitempty"` Signature []byte `protobuf:"bytes,4,opt,name=signature,proto3" json:"signature,omitempty"` } func (x *TXInput) Reset() { *x = TXInput{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TXInput) String() string { return protoimpl.X.MessageStringOf(x) } func (*TXInput) ProtoMessage() {} func (x *TXInput) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TXInput.ProtoReflect.Descriptor instead. func (*TXInput) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{21} } func (x *TXInput) GetRawData() *TXInputRaw { if x != nil { return x.RawData } return nil } func (x *TXInput) GetSignature() []byte { if x != nil { return x.Signature } return nil } type TXOutputs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Outputs []*TXOutput `protobuf:"bytes,1,rep,name=outputs,proto3" json:"outputs,omitempty"` } func (x *TXOutputs) Reset() { *x = TXOutputs{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TXOutputs) String() string { return protoimpl.X.MessageStringOf(x) } func (*TXOutputs) ProtoMessage() {} func (x *TXOutputs) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TXOutputs.ProtoReflect.Descriptor instead. func (*TXOutputs) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{22} } func (x *TXOutputs) GetOutputs() []*TXOutput { if x != nil { return x.Outputs } return nil } type ResourceReceipt struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields EnergyUsage int64 `protobuf:"varint,1,opt,name=energy_usage,json=energyUsage,proto3" json:"energy_usage,omitempty"` EnergyFee int64 `protobuf:"varint,2,opt,name=energy_fee,json=energyFee,proto3" json:"energy_fee,omitempty"` OriginEnergyUsage int64 `protobuf:"varint,3,opt,name=origin_energy_usage,json=originEnergyUsage,proto3" json:"origin_energy_usage,omitempty"` EnergyUsageTotal int64 `protobuf:"varint,4,opt,name=energy_usage_total,json=energyUsageTotal,proto3" json:"energy_usage_total,omitempty"` NetUsage int64 `protobuf:"varint,5,opt,name=net_usage,json=netUsage,proto3" json:"net_usage,omitempty"` NetFee int64 `protobuf:"varint,6,opt,name=net_fee,json=netFee,proto3" json:"net_fee,omitempty"` Result Transaction_ResultContractResult `protobuf:"varint,7,opt,name=result,proto3,enum=protocol.Transaction_ResultContractResult" json:"result,omitempty"` EnergyPenaltyTotal int64 `protobuf:"varint,8,opt,name=energy_penalty_total,json=energyPenaltyTotal,proto3" json:"energy_penalty_total,omitempty"` } func (x *ResourceReceipt) Reset() { *x = ResourceReceipt{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ResourceReceipt) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResourceReceipt) ProtoMessage() {} func (x *ResourceReceipt) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ResourceReceipt.ProtoReflect.Descriptor instead. func (*ResourceReceipt) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{23} } func (x *ResourceReceipt) GetEnergyUsage() int64 { if x != nil { return x.EnergyUsage } return 0 } func (x *ResourceReceipt) GetEnergyFee() int64 { if x != nil { return x.EnergyFee } return 0 } func (x *ResourceReceipt) GetOriginEnergyUsage() int64 { if x != nil { return x.OriginEnergyUsage } return 0 } func (x *ResourceReceipt) GetEnergyUsageTotal() int64 { if x != nil { return x.EnergyUsageTotal } return 0 } func (x *ResourceReceipt) GetNetUsage() int64 { if x != nil { return x.NetUsage } return 0 } func (x *ResourceReceipt) GetNetFee() int64 { if x != nil { return x.NetFee } return 0 } func (x *ResourceReceipt) GetResult() Transaction_ResultContractResult { if x != nil { return x.Result } return Transaction_Result_DEFAULT } func (x *ResourceReceipt) GetEnergyPenaltyTotal() int64 { if x != nil { return x.EnergyPenaltyTotal } return 0 } type MarketOrderDetail struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MakerOrderId []byte `protobuf:"bytes,1,opt,name=makerOrderId,proto3" json:"makerOrderId,omitempty"` TakerOrderId []byte `protobuf:"bytes,2,opt,name=takerOrderId,proto3" json:"takerOrderId,omitempty"` FillSellQuantity int64 `protobuf:"varint,3,opt,name=fillSellQuantity,proto3" json:"fillSellQuantity,omitempty"` FillBuyQuantity int64 `protobuf:"varint,4,opt,name=fillBuyQuantity,proto3" json:"fillBuyQuantity,omitempty"` } func (x *MarketOrderDetail) Reset() { *x = MarketOrderDetail{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MarketOrderDetail) String() string { return protoimpl.X.MessageStringOf(x) } func (*MarketOrderDetail) ProtoMessage() {} func (x *MarketOrderDetail) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MarketOrderDetail.ProtoReflect.Descriptor instead. func (*MarketOrderDetail) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{24} } func (x *MarketOrderDetail) GetMakerOrderId() []byte { if x != nil { return x.MakerOrderId } return nil } func (x *MarketOrderDetail) GetTakerOrderId() []byte { if x != nil { return x.TakerOrderId } return nil } func (x *MarketOrderDetail) GetFillSellQuantity() int64 { if x != nil { return x.FillSellQuantity } return 0 } func (x *MarketOrderDetail) GetFillBuyQuantity() int64 { if x != nil { return x.FillBuyQuantity } return 0 } type Transaction struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RawData *TransactionRaw `protobuf:"bytes,1,opt,name=raw_data,json=rawData,proto3" json:"raw_data,omitempty"` // only support size = 1, repeated list here for muti-sig extension Signature [][]byte `protobuf:"bytes,2,rep,name=signature,proto3" json:"signature,omitempty"` Ret []*Transaction_Result `protobuf:"bytes,5,rep,name=ret,proto3" json:"ret,omitempty"` } func (x *Transaction) Reset() { *x = Transaction{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Transaction) String() string { return protoimpl.X.MessageStringOf(x) } func (*Transaction) ProtoMessage() {} func (x *Transaction) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Transaction.ProtoReflect.Descriptor instead. func (*Transaction) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{25} } func (x *Transaction) GetRawData() *TransactionRaw { if x != nil { return x.RawData } return nil } func (x *Transaction) GetSignature() [][]byte { if x != nil { return x.Signature } return nil } func (x *Transaction) GetRet() []*Transaction_Result { if x != nil { return x.Ret } return nil } type TransactionInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` Fee int64 `protobuf:"varint,2,opt,name=fee,proto3" json:"fee,omitempty"` BlockNumber int64 `protobuf:"varint,3,opt,name=blockNumber,proto3" json:"blockNumber,omitempty"` BlockTimeStamp int64 `protobuf:"varint,4,opt,name=blockTimeStamp,proto3" json:"blockTimeStamp,omitempty"` ContractResult [][]byte `protobuf:"bytes,5,rep,name=contractResult,proto3" json:"contractResult,omitempty"` ContractAddress []byte `protobuf:"bytes,6,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"` Receipt *ResourceReceipt `protobuf:"bytes,7,opt,name=receipt,proto3" json:"receipt,omitempty"` Log []*TransactionInfo_Log `protobuf:"bytes,8,rep,name=log,proto3" json:"log,omitempty"` Result TransactionInfoCode `protobuf:"varint,9,opt,name=result,proto3,enum=protocol.TransactionInfoCode" json:"result,omitempty"` ResMessage []byte `protobuf:"bytes,10,opt,name=resMessage,proto3" json:"resMessage,omitempty"` AssetIssueID string `protobuf:"bytes,14,opt,name=assetIssueID,proto3" json:"assetIssueID,omitempty"` WithdrawAmount int64 `protobuf:"varint,15,opt,name=withdraw_amount,json=withdrawAmount,proto3" json:"withdraw_amount,omitempty"` UnfreezeAmount int64 `protobuf:"varint,16,opt,name=unfreeze_amount,json=unfreezeAmount,proto3" json:"unfreeze_amount,omitempty"` InternalTransactions []*InternalTransaction `protobuf:"bytes,17,rep,name=internal_transactions,json=internalTransactions,proto3" json:"internal_transactions,omitempty"` ExchangeReceivedAmount int64 `protobuf:"varint,18,opt,name=exchange_received_amount,json=exchangeReceivedAmount,proto3" json:"exchange_received_amount,omitempty"` ExchangeInjectAnotherAmount int64 `protobuf:"varint,19,opt,name=exchange_inject_another_amount,json=exchangeInjectAnotherAmount,proto3" json:"exchange_inject_another_amount,omitempty"` ExchangeWithdrawAnotherAmount int64 `protobuf:"varint,20,opt,name=exchange_withdraw_another_amount,json=exchangeWithdrawAnotherAmount,proto3" json:"exchange_withdraw_another_amount,omitempty"` ExchangeId int64 `protobuf:"varint,21,opt,name=exchange_id,json=exchangeId,proto3" json:"exchange_id,omitempty"` ShieldedTransactionFee int64 `protobuf:"varint,22,opt,name=shielded_transaction_fee,json=shieldedTransactionFee,proto3" json:"shielded_transaction_fee,omitempty"` OrderId []byte `protobuf:"bytes,25,opt,name=orderId,proto3" json:"orderId,omitempty"` OrderDetails []*MarketOrderDetail `protobuf:"bytes,26,rep,name=orderDetails,proto3" json:"orderDetails,omitempty"` PackingFee int64 `protobuf:"varint,27,opt,name=packingFee,proto3" json:"packingFee,omitempty"` WithdrawExpireAmount int64 `protobuf:"varint,28,opt,name=withdraw_expire_amount,json=withdrawExpireAmount,proto3" json:"withdraw_expire_amount,omitempty"` CancelUnfreezeV2Amount map[string]int64 `protobuf:"bytes,29,rep,name=cancel_unfreezeV2_amount,json=cancelUnfreezeV2Amount,proto3" json:"cancel_unfreezeV2_amount,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *TransactionInfo) Reset() { *x = TransactionInfo{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransactionInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransactionInfo) ProtoMessage() {} func (x *TransactionInfo) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TransactionInfo.ProtoReflect.Descriptor instead. func (*TransactionInfo) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{26} } func (x *TransactionInfo) GetId() []byte { if x != nil { return x.Id } return nil } func (x *TransactionInfo) GetFee() int64 { if x != nil { return x.Fee } return 0 } func (x *TransactionInfo) GetBlockNumber() int64 { if x != nil { return x.BlockNumber } return 0 } func (x *TransactionInfo) GetBlockTimeStamp() int64 { if x != nil { return x.BlockTimeStamp } return 0 } func (x *TransactionInfo) GetContractResult() [][]byte { if x != nil { return x.ContractResult } return nil } func (x *TransactionInfo) GetContractAddress() []byte { if x != nil { return x.ContractAddress } return nil } func (x *TransactionInfo) GetReceipt() *ResourceReceipt { if x != nil { return x.Receipt } return nil } func (x *TransactionInfo) GetLog() []*TransactionInfo_Log { if x != nil { return x.Log } return nil } func (x *TransactionInfo) GetResult() TransactionInfoCode { if x != nil { return x.Result } return TransactionInfo_SUCESS } func (x *TransactionInfo) GetResMessage() []byte { if x != nil { return x.ResMessage } return nil } func (x *TransactionInfo) GetAssetIssueID() string { if x != nil { return x.AssetIssueID } return "" } func (x *TransactionInfo) GetWithdrawAmount() int64 { if x != nil { return x.WithdrawAmount } return 0 } func (x *TransactionInfo) GetUnfreezeAmount() int64 { if x != nil { return x.UnfreezeAmount } return 0 } func (x *TransactionInfo) GetInternalTransactions() []*InternalTransaction { if x != nil { return x.InternalTransactions } return nil } func (x *TransactionInfo) GetExchangeReceivedAmount() int64 { if x != nil { return x.ExchangeReceivedAmount } return 0 } func (x *TransactionInfo) GetExchangeInjectAnotherAmount() int64 { if x != nil { return x.ExchangeInjectAnotherAmount } return 0 } func (x *TransactionInfo) GetExchangeWithdrawAnotherAmount() int64 { if x != nil { return x.ExchangeWithdrawAnotherAmount } return 0 } func (x *TransactionInfo) GetExchangeId() int64 { if x != nil { return x.ExchangeId } return 0 } func (x *TransactionInfo) GetShieldedTransactionFee() int64 { if x != nil { return x.ShieldedTransactionFee } return 0 } func (x *TransactionInfo) GetOrderId() []byte { if x != nil { return x.OrderId } return nil } func (x *TransactionInfo) GetOrderDetails() []*MarketOrderDetail { if x != nil { return x.OrderDetails } return nil } func (x *TransactionInfo) GetPackingFee() int64 { if x != nil { return x.PackingFee } return 0 } func (x *TransactionInfo) GetWithdrawExpireAmount() int64 { if x != nil { return x.WithdrawExpireAmount } return 0 } func (x *TransactionInfo) GetCancelUnfreezeV2Amount() map[string]int64 { if x != nil { return x.CancelUnfreezeV2Amount } return nil } type TransactionRet struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BlockNumber int64 `protobuf:"varint,1,opt,name=blockNumber,proto3" json:"blockNumber,omitempty"` BlockTimeStamp int64 `protobuf:"varint,2,opt,name=blockTimeStamp,proto3" json:"blockTimeStamp,omitempty"` Transactioninfo []*TransactionInfo `protobuf:"bytes,3,rep,name=transactioninfo,proto3" json:"transactioninfo,omitempty"` } func (x *TransactionRet) Reset() { *x = TransactionRet{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransactionRet) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransactionRet) ProtoMessage() {} func (x *TransactionRet) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TransactionRet.ProtoReflect.Descriptor instead. func (*TransactionRet) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{27} } func (x *TransactionRet) GetBlockNumber() int64 { if x != nil { return x.BlockNumber } return 0 } func (x *TransactionRet) GetBlockTimeStamp() int64 { if x != nil { return x.BlockTimeStamp } return 0 } func (x *TransactionRet) GetTransactioninfo() []*TransactionInfo { if x != nil { return x.Transactioninfo } return nil } type Transactions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Transactions []*Transaction `protobuf:"bytes,1,rep,name=transactions,proto3" json:"transactions,omitempty"` } func (x *Transactions) Reset() { *x = Transactions{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Transactions) String() string { return protoimpl.X.MessageStringOf(x) } func (*Transactions) ProtoMessage() {} func (x *Transactions) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Transactions.ProtoReflect.Descriptor instead. func (*Transactions) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{28} } func (x *Transactions) GetTransactions() []*Transaction { if x != nil { return x.Transactions } return nil } type BlockHeader struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RawData *BlockHeaderRaw `protobuf:"bytes,1,opt,name=raw_data,json=rawData,proto3" json:"raw_data,omitempty"` WitnessSignature []byte `protobuf:"bytes,2,opt,name=witness_signature,json=witnessSignature,proto3" json:"witness_signature,omitempty"` } func (x *BlockHeader) Reset() { *x = BlockHeader{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlockHeader) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlockHeader) ProtoMessage() {} func (x *BlockHeader) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BlockHeader.ProtoReflect.Descriptor instead. func (*BlockHeader) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{29} } func (x *BlockHeader) GetRawData() *BlockHeaderRaw { if x != nil { return x.RawData } return nil } func (x *BlockHeader) GetWitnessSignature() []byte { if x != nil { return x.WitnessSignature } return nil } // block type Block struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Transactions []*Transaction `protobuf:"bytes,1,rep,name=transactions,proto3" json:"transactions,omitempty"` BlockHeader *BlockHeader `protobuf:"bytes,2,opt,name=block_header,json=blockHeader,proto3" json:"block_header,omitempty"` } func (x *Block) Reset() { *x = Block{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Block) String() string { return protoimpl.X.MessageStringOf(x) } func (*Block) ProtoMessage() {} func (x *Block) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Block.ProtoReflect.Descriptor instead. func (*Block) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{30} } func (x *Block) GetTransactions() []*Transaction { if x != nil { return x.Transactions } return nil } func (x *Block) GetBlockHeader() *BlockHeader { if x != nil { return x.BlockHeader } return nil } type ChainInventory struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ids []*ChainInventory_BlockId `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"` RemainNum int64 `protobuf:"varint,2,opt,name=remain_num,json=remainNum,proto3" json:"remain_num,omitempty"` } func (x *ChainInventory) Reset() { *x = ChainInventory{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ChainInventory) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChainInventory) ProtoMessage() {} func (x *ChainInventory) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ChainInventory.ProtoReflect.Descriptor instead. func (*ChainInventory) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{31} } func (x *ChainInventory) GetIds() []*ChainInventory_BlockId { if x != nil { return x.Ids } return nil } func (x *ChainInventory) GetRemainNum() int64 { if x != nil { return x.RemainNum } return 0 } // Inventory type BlockInventory struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ids []*BlockInventory_BlockId `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"` Type BlockInventory_Type `protobuf:"varint,2,opt,name=type,proto3,enum=protocol.BlockInventory_Type" json:"type,omitempty"` } func (x *BlockInventory) Reset() { *x = BlockInventory{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlockInventory) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlockInventory) ProtoMessage() {} func (x *BlockInventory) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BlockInventory.ProtoReflect.Descriptor instead. func (*BlockInventory) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{32} } func (x *BlockInventory) GetIds() []*BlockInventory_BlockId { if x != nil { return x.Ids } return nil } func (x *BlockInventory) GetType() BlockInventory_Type { if x != nil { return x.Type } return BlockInventory_SYNC } type Inventory struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type Inventory_InventoryType `protobuf:"varint,1,opt,name=type,proto3,enum=protocol.Inventory_InventoryType" json:"type,omitempty"` Ids [][]byte `protobuf:"bytes,2,rep,name=ids,proto3" json:"ids,omitempty"` } func (x *Inventory) Reset() { *x = Inventory{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Inventory) String() string { return protoimpl.X.MessageStringOf(x) } func (*Inventory) ProtoMessage() {} func (x *Inventory) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Inventory.ProtoReflect.Descriptor instead. func (*Inventory) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{33} } func (x *Inventory) GetType() Inventory_InventoryType { if x != nil { return x.Type } return Inventory_TRX } func (x *Inventory) GetIds() [][]byte { if x != nil { return x.Ids } return nil } type Items struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type Items_ItemType `protobuf:"varint,1,opt,name=type,proto3,enum=protocol.Items_ItemType" json:"type,omitempty"` Blocks []*Block `protobuf:"bytes,2,rep,name=blocks,proto3" json:"blocks,omitempty"` BlockHeaders []*BlockHeader `protobuf:"bytes,3,rep,name=block_headers,json=blockHeaders,proto3" json:"block_headers,omitempty"` Transactions []*Transaction `protobuf:"bytes,4,rep,name=transactions,proto3" json:"transactions,omitempty"` } func (x *Items) Reset() { *x = Items{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Items) String() string { return protoimpl.X.MessageStringOf(x) } func (*Items) ProtoMessage() {} func (x *Items) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Items.ProtoReflect.Descriptor instead. func (*Items) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{34} } func (x *Items) GetType() Items_ItemType { if x != nil { return x.Type } return Items_ERR } func (x *Items) GetBlocks() []*Block { if x != nil { return x.Blocks } return nil } func (x *Items) GetBlockHeaders() []*BlockHeader { if x != nil { return x.BlockHeaders } return nil } func (x *Items) GetTransactions() []*Transaction { if x != nil { return x.Transactions } return nil } // DynamicProperties type DynamicProperties struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LastSolidityBlockNum int64 `protobuf:"varint,1,opt,name=last_solidity_block_num,json=lastSolidityBlockNum,proto3" json:"last_solidity_block_num,omitempty"` } func (x *DynamicProperties) Reset() { *x = DynamicProperties{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DynamicProperties) String() string { return protoimpl.X.MessageStringOf(x) } func (*DynamicProperties) ProtoMessage() {} func (x *DynamicProperties) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DynamicProperties.ProtoReflect.Descriptor instead. func (*DynamicProperties) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{35} } func (x *DynamicProperties) GetLastSolidityBlockNum() int64 { if x != nil { return x.LastSolidityBlockNum } return 0 } type DisconnectMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Reason ReasonCode `protobuf:"varint,1,opt,name=reason,proto3,enum=protocol.ReasonCode" json:"reason,omitempty"` } func (x *DisconnectMessage) Reset() { *x = DisconnectMessage{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DisconnectMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*DisconnectMessage) ProtoMessage() {} func (x *DisconnectMessage) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DisconnectMessage.ProtoReflect.Descriptor instead. func (*DisconnectMessage) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{36} } func (x *DisconnectMessage) GetReason() ReasonCode { if x != nil { return x.Reason } return ReasonCode_REQUESTED } type HelloMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields From *Endpoint `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"` Version int32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` Timestamp int64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` GenesisBlockId *HelloMessage_BlockId `protobuf:"bytes,4,opt,name=genesisBlockId,proto3" json:"genesisBlockId,omitempty"` SolidBlockId *HelloMessage_BlockId `protobuf:"bytes,5,opt,name=solidBlockId,proto3" json:"solidBlockId,omitempty"` HeadBlockId *HelloMessage_BlockId `protobuf:"bytes,6,opt,name=headBlockId,proto3" json:"headBlockId,omitempty"` Address []byte `protobuf:"bytes,7,opt,name=address,proto3" json:"address,omitempty"` Signature []byte `protobuf:"bytes,8,opt,name=signature,proto3" json:"signature,omitempty"` NodeType int32 `protobuf:"varint,9,opt,name=nodeType,proto3" json:"nodeType,omitempty"` LowestBlockNum int64 `protobuf:"varint,10,opt,name=lowestBlockNum,proto3" json:"lowestBlockNum,omitempty"` } func (x *HelloMessage) Reset() { *x = HelloMessage{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HelloMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*HelloMessage) ProtoMessage() {} func (x *HelloMessage) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HelloMessage.ProtoReflect.Descriptor instead. func (*HelloMessage) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{37} } func (x *HelloMessage) GetFrom() *Endpoint { if x != nil { return x.From } return nil } func (x *HelloMessage) GetVersion() int32 { if x != nil { return x.Version } return 0 } func (x *HelloMessage) GetTimestamp() int64 { if x != nil { return x.Timestamp } return 0 } func (x *HelloMessage) GetGenesisBlockId() *HelloMessage_BlockId { if x != nil { return x.GenesisBlockId } return nil } func (x *HelloMessage) GetSolidBlockId() *HelloMessage_BlockId { if x != nil { return x.SolidBlockId } return nil } func (x *HelloMessage) GetHeadBlockId() *HelloMessage_BlockId { if x != nil { return x.HeadBlockId } return nil } func (x *HelloMessage) GetAddress() []byte { if x != nil { return x.Address } return nil } func (x *HelloMessage) GetSignature() []byte { if x != nil { return x.Signature } return nil } func (x *HelloMessage) GetNodeType() int32 { if x != nil { return x.NodeType } return 0 } func (x *HelloMessage) GetLowestBlockNum() int64 { if x != nil { return x.LowestBlockNum } return 0 } type InternalTransaction struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // internalTransaction identity, the root InternalTransaction hash // should equals to root transaction id. Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` // the one send trx (TBD: or token) via function CallerAddress []byte `protobuf:"bytes,2,opt,name=caller_address,json=callerAddress,proto3" json:"caller_address,omitempty"` // the one recieve trx (TBD: or token) via function TransferToAddress []byte `protobuf:"bytes,3,opt,name=transferTo_address,json=transferToAddress,proto3" json:"transferTo_address,omitempty"` CallValueInfo []*InternalTransaction_CallValueInfo `protobuf:"bytes,4,rep,name=callValueInfo,proto3" json:"callValueInfo,omitempty"` Note []byte `protobuf:"bytes,5,opt,name=note,proto3" json:"note,omitempty"` Rejected bool `protobuf:"varint,6,opt,name=rejected,proto3" json:"rejected,omitempty"` Extra string `protobuf:"bytes,7,opt,name=extra,proto3" json:"extra,omitempty"` } func (x *InternalTransaction) Reset() { *x = InternalTransaction{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InternalTransaction) String() string { return protoimpl.X.MessageStringOf(x) } func (*InternalTransaction) ProtoMessage() {} func (x *InternalTransaction) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use InternalTransaction.ProtoReflect.Descriptor instead. func (*InternalTransaction) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{38} } func (x *InternalTransaction) GetHash() []byte { if x != nil { return x.Hash } return nil } func (x *InternalTransaction) GetCallerAddress() []byte { if x != nil { return x.CallerAddress } return nil } func (x *InternalTransaction) GetTransferToAddress() []byte { if x != nil { return x.TransferToAddress } return nil } func (x *InternalTransaction) GetCallValueInfo() []*InternalTransaction_CallValueInfo { if x != nil { return x.CallValueInfo } return nil } func (x *InternalTransaction) GetNote() []byte { if x != nil { return x.Note } return nil } func (x *InternalTransaction) GetRejected() bool { if x != nil { return x.Rejected } return false } func (x *InternalTransaction) GetExtra() string { if x != nil { return x.Extra } return "" } type DelegatedResourceAccountIndex struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Account []byte `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` FromAccounts [][]byte `protobuf:"bytes,2,rep,name=fromAccounts,proto3" json:"fromAccounts,omitempty"` ToAccounts [][]byte `protobuf:"bytes,3,rep,name=toAccounts,proto3" json:"toAccounts,omitempty"` Timestamp int64 `protobuf:"varint,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (x *DelegatedResourceAccountIndex) Reset() { *x = DelegatedResourceAccountIndex{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DelegatedResourceAccountIndex) String() string { return protoimpl.X.MessageStringOf(x) } func (*DelegatedResourceAccountIndex) ProtoMessage() {} func (x *DelegatedResourceAccountIndex) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DelegatedResourceAccountIndex.ProtoReflect.Descriptor instead. func (*DelegatedResourceAccountIndex) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{39} } func (x *DelegatedResourceAccountIndex) GetAccount() []byte { if x != nil { return x.Account } return nil } func (x *DelegatedResourceAccountIndex) GetFromAccounts() [][]byte { if x != nil { return x.FromAccounts } return nil } func (x *DelegatedResourceAccountIndex) GetToAccounts() [][]byte { if x != nil { return x.ToAccounts } return nil } func (x *DelegatedResourceAccountIndex) GetTimestamp() int64 { if x != nil { return x.Timestamp } return 0 } type NodeInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BeginSyncNum int64 `protobuf:"varint,1,opt,name=beginSyncNum,proto3" json:"beginSyncNum,omitempty"` Block string `protobuf:"bytes,2,opt,name=block,proto3" json:"block,omitempty"` SolidityBlock string `protobuf:"bytes,3,opt,name=solidityBlock,proto3" json:"solidityBlock,omitempty"` // connect information CurrentConnectCount int32 `protobuf:"varint,4,opt,name=currentConnectCount,proto3" json:"currentConnectCount,omitempty"` ActiveConnectCount int32 `protobuf:"varint,5,opt,name=activeConnectCount,proto3" json:"activeConnectCount,omitempty"` PassiveConnectCount int32 `protobuf:"varint,6,opt,name=passiveConnectCount,proto3" json:"passiveConnectCount,omitempty"` TotalFlow int64 `protobuf:"varint,7,opt,name=totalFlow,proto3" json:"totalFlow,omitempty"` PeerInfoList []*NodeInfo_PeerInfo `protobuf:"bytes,8,rep,name=peerInfoList,proto3" json:"peerInfoList,omitempty"` ConfigNodeInfo *NodeInfo_ConfigNodeInfo `protobuf:"bytes,9,opt,name=configNodeInfo,proto3" json:"configNodeInfo,omitempty"` MachineInfo *NodeInfo_MachineInfo `protobuf:"bytes,10,opt,name=machineInfo,proto3" json:"machineInfo,omitempty"` CheatWitnessInfoMap map[string]string `protobuf:"bytes,11,rep,name=cheatWitnessInfoMap,proto3" json:"cheatWitnessInfoMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *NodeInfo) Reset() { *x = NodeInfo{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NodeInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*NodeInfo) ProtoMessage() {} func (x *NodeInfo) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NodeInfo.ProtoReflect.Descriptor instead. func (*NodeInfo) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{40} } func (x *NodeInfo) GetBeginSyncNum() int64 { if x != nil { return x.BeginSyncNum } return 0 } func (x *NodeInfo) GetBlock() string { if x != nil { return x.Block } return "" } func (x *NodeInfo) GetSolidityBlock() string { if x != nil { return x.SolidityBlock } return "" } func (x *NodeInfo) GetCurrentConnectCount() int32 { if x != nil { return x.CurrentConnectCount } return 0 } func (x *NodeInfo) GetActiveConnectCount() int32 { if x != nil { return x.ActiveConnectCount } return 0 } func (x *NodeInfo) GetPassiveConnectCount() int32 { if x != nil { return x.PassiveConnectCount } return 0 } func (x *NodeInfo) GetTotalFlow() int64 { if x != nil { return x.TotalFlow } return 0 } func (x *NodeInfo) GetPeerInfoList() []*NodeInfo_PeerInfo { if x != nil { return x.PeerInfoList } return nil } func (x *NodeInfo) GetConfigNodeInfo() *NodeInfo_ConfigNodeInfo { if x != nil { return x.ConfigNodeInfo } return nil } func (x *NodeInfo) GetMachineInfo() *NodeInfo_MachineInfo { if x != nil { return x.MachineInfo } return nil } func (x *NodeInfo) GetCheatWitnessInfoMap() map[string]string { if x != nil { return x.CheatWitnessInfoMap } return nil } type MetricsInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Interval int64 `protobuf:"varint,1,opt,name=interval,proto3" json:"interval,omitempty"` Node *MetricsInfo_NodeInfo `protobuf:"bytes,2,opt,name=node,proto3" json:"node,omitempty"` Blockchain *MetricsInfo_BlockChainInfo `protobuf:"bytes,3,opt,name=blockchain,proto3" json:"blockchain,omitempty"` Net *MetricsInfo_NetInfo `protobuf:"bytes,4,opt,name=net,proto3" json:"net,omitempty"` } func (x *MetricsInfo) Reset() { *x = MetricsInfo{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MetricsInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*MetricsInfo) ProtoMessage() {} func (x *MetricsInfo) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MetricsInfo.ProtoReflect.Descriptor instead. func (*MetricsInfo) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{41} } func (x *MetricsInfo) GetInterval() int64 { if x != nil { return x.Interval } return 0 } func (x *MetricsInfo) GetNode() *MetricsInfo_NodeInfo { if x != nil { return x.Node } return nil } func (x *MetricsInfo) GetBlockchain() *MetricsInfo_BlockChainInfo { if x != nil { return x.Blockchain } return nil } func (x *MetricsInfo) GetNet() *MetricsInfo_NetInfo { if x != nil { return x.Net } return nil } type PBFTMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RawData *PBFTMessage_Raw `protobuf:"bytes,1,opt,name=raw_data,json=rawData,proto3" json:"raw_data,omitempty"` Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` } func (x *PBFTMessage) Reset() { *x = PBFTMessage{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PBFTMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*PBFTMessage) ProtoMessage() {} func (x *PBFTMessage) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PBFTMessage.ProtoReflect.Descriptor instead. func (*PBFTMessage) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{42} } func (x *PBFTMessage) GetRawData() *PBFTMessage_Raw { if x != nil { return x.RawData } return nil } func (x *PBFTMessage) GetSignature() []byte { if x != nil { return x.Signature } return nil } type PBFTCommitResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` Signature [][]byte `protobuf:"bytes,2,rep,name=signature,proto3" json:"signature,omitempty"` } func (x *PBFTCommitResult) Reset() { *x = PBFTCommitResult{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PBFTCommitResult) String() string { return protoimpl.X.MessageStringOf(x) } func (*PBFTCommitResult) ProtoMessage() {} func (x *PBFTCommitResult) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PBFTCommitResult.ProtoReflect.Descriptor instead. func (*PBFTCommitResult) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{43} } func (x *PBFTCommitResult) GetData() []byte { if x != nil { return x.Data } return nil } func (x *PBFTCommitResult) GetSignature() [][]byte { if x != nil { return x.Signature } return nil } type SRL struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SrAddress [][]byte `protobuf:"bytes,1,rep,name=srAddress,proto3" json:"srAddress,omitempty"` } func (x *SRL) Reset() { *x = SRL{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SRL) String() string { return protoimpl.X.MessageStringOf(x) } func (*SRL) ProtoMessage() {} func (x *SRL) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SRL.ProtoReflect.Descriptor instead. func (*SRL) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{44} } func (x *SRL) GetSrAddress() [][]byte { if x != nil { return x.SrAddress } return nil } type ChainParameters_ChainParameter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` Value int64 `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"` } func (x *ChainParameters_ChainParameter) Reset() { *x = ChainParameters_ChainParameter{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ChainParameters_ChainParameter) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChainParameters_ChainParameter) ProtoMessage() {} func (x *ChainParameters_ChainParameter) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ChainParameters_ChainParameter.ProtoReflect.Descriptor instead. func (*ChainParameters_ChainParameter) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{12, 0} } func (x *ChainParameters_ChainParameter) GetKey() string { if x != nil { return x.Key } return "" } func (x *ChainParameters_ChainParameter) GetValue() int64 { if x != nil { return x.Value } return 0 } // frozen balance type Account_Frozen struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FrozenBalance int64 `protobuf:"varint,1,opt,name=frozen_balance,json=frozenBalance,proto3" json:"frozen_balance,omitempty"` // the frozen trx balance ExpireTime int64 `protobuf:"varint,2,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"` // the expire time } func (x *Account_Frozen) Reset() { *x = Account_Frozen{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Account_Frozen) String() string { return protoimpl.X.MessageStringOf(x) } func (*Account_Frozen) ProtoMessage() {} func (x *Account_Frozen) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Account_Frozen.ProtoReflect.Descriptor instead. func (*Account_Frozen) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{13, 0} } func (x *Account_Frozen) GetFrozenBalance() int64 { if x != nil { return x.FrozenBalance } return 0 } func (x *Account_Frozen) GetExpireTime() int64 { if x != nil { return x.ExpireTime } return 0 } type Account_AccountResource struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // energy resource, get from frozen EnergyUsage int64 `protobuf:"varint,1,opt,name=energy_usage,json=energyUsage,proto3" json:"energy_usage,omitempty"` // the frozen balance for energy FrozenBalanceForEnergy *Account_Frozen `protobuf:"bytes,2,opt,name=frozen_balance_for_energy,json=frozenBalanceForEnergy,proto3" json:"frozen_balance_for_energy,omitempty"` LatestConsumeTimeForEnergy int64 `protobuf:"varint,3,opt,name=latest_consume_time_for_energy,json=latestConsumeTimeForEnergy,proto3" json:"latest_consume_time_for_energy,omitempty"` // Frozen balance provided by other accounts to this account AcquiredDelegatedFrozenBalanceForEnergy int64 `protobuf:"varint,4,opt,name=acquired_delegated_frozen_balance_for_energy,json=acquiredDelegatedFrozenBalanceForEnergy,proto3" json:"acquired_delegated_frozen_balance_for_energy,omitempty"` // Frozen balances provided to other accounts DelegatedFrozenBalanceForEnergy int64 `protobuf:"varint,5,opt,name=delegated_frozen_balance_for_energy,json=delegatedFrozenBalanceForEnergy,proto3" json:"delegated_frozen_balance_for_energy,omitempty"` // storage resource, get from market StorageLimit int64 `protobuf:"varint,6,opt,name=storage_limit,json=storageLimit,proto3" json:"storage_limit,omitempty"` StorageUsage int64 `protobuf:"varint,7,opt,name=storage_usage,json=storageUsage,proto3" json:"storage_usage,omitempty"` LatestExchangeStorageTime int64 `protobuf:"varint,8,opt,name=latest_exchange_storage_time,json=latestExchangeStorageTime,proto3" json:"latest_exchange_storage_time,omitempty"` EnergyWindowSize int64 `protobuf:"varint,9,opt,name=energy_window_size,json=energyWindowSize,proto3" json:"energy_window_size,omitempty"` DelegatedFrozenV2BalanceForEnergy int64 `protobuf:"varint,10,opt,name=delegated_frozenV2_balance_for_energy,json=delegatedFrozenV2BalanceForEnergy,proto3" json:"delegated_frozenV2_balance_for_energy,omitempty"` AcquiredDelegatedFrozenV2BalanceForEnergy int64 `protobuf:"varint,11,opt,name=acquired_delegated_frozenV2_balance_for_energy,json=acquiredDelegatedFrozenV2BalanceForEnergy,proto3" json:"acquired_delegated_frozenV2_balance_for_energy,omitempty"` EnergyWindowOptimized bool `protobuf:"varint,12,opt,name=energy_window_optimized,json=energyWindowOptimized,proto3" json:"energy_window_optimized,omitempty"` } func (x *Account_AccountResource) Reset() { *x = Account_AccountResource{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Account_AccountResource) String() string { return protoimpl.X.MessageStringOf(x) } func (*Account_AccountResource) ProtoMessage() {} func (x *Account_AccountResource) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Account_AccountResource.ProtoReflect.Descriptor instead. func (*Account_AccountResource) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{13, 7} } func (x *Account_AccountResource) GetEnergyUsage() int64 { if x != nil { return x.EnergyUsage } return 0 } func (x *Account_AccountResource) GetFrozenBalanceForEnergy() *Account_Frozen { if x != nil { return x.FrozenBalanceForEnergy } return nil } func (x *Account_AccountResource) GetLatestConsumeTimeForEnergy() int64 { if x != nil { return x.LatestConsumeTimeForEnergy } return 0 } func (x *Account_AccountResource) GetAcquiredDelegatedFrozenBalanceForEnergy() int64 { if x != nil { return x.AcquiredDelegatedFrozenBalanceForEnergy } return 0 } func (x *Account_AccountResource) GetDelegatedFrozenBalanceForEnergy() int64 { if x != nil { return x.DelegatedFrozenBalanceForEnergy } return 0 } func (x *Account_AccountResource) GetStorageLimit() int64 { if x != nil { return x.StorageLimit } return 0 } func (x *Account_AccountResource) GetStorageUsage() int64 { if x != nil { return x.StorageUsage } return 0 } func (x *Account_AccountResource) GetLatestExchangeStorageTime() int64 { if x != nil { return x.LatestExchangeStorageTime } return 0 } func (x *Account_AccountResource) GetEnergyWindowSize() int64 { if x != nil { return x.EnergyWindowSize } return 0 } func (x *Account_AccountResource) GetDelegatedFrozenV2BalanceForEnergy() int64 { if x != nil { return x.DelegatedFrozenV2BalanceForEnergy } return 0 } func (x *Account_AccountResource) GetAcquiredDelegatedFrozenV2BalanceForEnergy() int64 { if x != nil { return x.AcquiredDelegatedFrozenV2BalanceForEnergy } return 0 } func (x *Account_AccountResource) GetEnergyWindowOptimized() bool { if x != nil { return x.EnergyWindowOptimized } return false } type Account_FreezeV2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type ResourceCode `protobuf:"varint,1,opt,name=type,proto3,enum=protocol.ResourceCode" json:"type,omitempty"` Amount int64 `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"` } func (x *Account_FreezeV2) Reset() { *x = Account_FreezeV2{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Account_FreezeV2) String() string { return protoimpl.X.MessageStringOf(x) } func (*Account_FreezeV2) ProtoMessage() {} func (x *Account_FreezeV2) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Account_FreezeV2.ProtoReflect.Descriptor instead. func (*Account_FreezeV2) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{13, 8} } func (x *Account_FreezeV2) GetType() ResourceCode { if x != nil { return x.Type } return ResourceCode_BANDWIDTH } func (x *Account_FreezeV2) GetAmount() int64 { if x != nil { return x.Amount } return 0 } type Account_UnFreezeV2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type ResourceCode `protobuf:"varint,1,opt,name=type,proto3,enum=protocol.ResourceCode" json:"type,omitempty"` UnfreezeAmount int64 `protobuf:"varint,3,opt,name=unfreeze_amount,json=unfreezeAmount,proto3" json:"unfreeze_amount,omitempty"` UnfreezeExpireTime int64 `protobuf:"varint,4,opt,name=unfreeze_expire_time,json=unfreezeExpireTime,proto3" json:"unfreeze_expire_time,omitempty"` } func (x *Account_UnFreezeV2) Reset() { *x = Account_UnFreezeV2{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Account_UnFreezeV2) String() string { return protoimpl.X.MessageStringOf(x) } func (*Account_UnFreezeV2) ProtoMessage() {} func (x *Account_UnFreezeV2) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Account_UnFreezeV2.ProtoReflect.Descriptor instead. func (*Account_UnFreezeV2) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{13, 9} } func (x *Account_UnFreezeV2) GetType() ResourceCode { if x != nil { return x.Type } return ResourceCode_BANDWIDTH } func (x *Account_UnFreezeV2) GetUnfreezeAmount() int64 { if x != nil { return x.UnfreezeAmount } return 0 } func (x *Account_UnFreezeV2) GetUnfreezeExpireTime() int64 { if x != nil { return x.UnfreezeExpireTime } return 0 } type TXInputRaw struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TxID []byte `protobuf:"bytes,1,opt,name=txID,proto3" json:"txID,omitempty"` Vout int64 `protobuf:"varint,2,opt,name=vout,proto3" json:"vout,omitempty"` PubKey []byte `protobuf:"bytes,3,opt,name=pubKey,proto3" json:"pubKey,omitempty"` } func (x *TXInputRaw) Reset() { *x = TXInputRaw{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TXInputRaw) String() string { return protoimpl.X.MessageStringOf(x) } func (*TXInputRaw) ProtoMessage() {} func (x *TXInputRaw) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TXInputRaw.ProtoReflect.Descriptor instead. func (*TXInputRaw) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{21, 0} } func (x *TXInputRaw) GetTxID() []byte { if x != nil { return x.TxID } return nil } func (x *TXInputRaw) GetVout() int64 { if x != nil { return x.Vout } return 0 } func (x *TXInputRaw) GetPubKey() []byte { if x != nil { return x.PubKey } return nil } type Transaction_Contract struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type Transaction_Contract_ContractType `protobuf:"varint,1,opt,name=type,proto3,enum=protocol.Transaction_Contract_ContractType" json:"type,omitempty"` Parameter *anypb.Any `protobuf:"bytes,2,opt,name=parameter,proto3" json:"parameter,omitempty"` Provider []byte `protobuf:"bytes,3,opt,name=provider,proto3" json:"provider,omitempty"` ContractName []byte `protobuf:"bytes,4,opt,name=ContractName,proto3" json:"ContractName,omitempty"` PermissionId int32 `protobuf:"varint,5,opt,name=Permission_id,json=PermissionId,proto3" json:"Permission_id,omitempty"` } func (x *Transaction_Contract) Reset() { *x = Transaction_Contract{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Transaction_Contract) String() string { return protoimpl.X.MessageStringOf(x) } func (*Transaction_Contract) ProtoMessage() {} func (x *Transaction_Contract) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Transaction_Contract.ProtoReflect.Descriptor instead. func (*Transaction_Contract) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{25, 0} } func (x *Transaction_Contract) GetType() Transaction_Contract_ContractType { if x != nil { return x.Type } return Transaction_Contract_AccountCreateContract } func (x *Transaction_Contract) GetParameter() *anypb.Any { if x != nil { return x.Parameter } return nil } func (x *Transaction_Contract) GetProvider() []byte { if x != nil { return x.Provider } return nil } func (x *Transaction_Contract) GetContractName() []byte { if x != nil { return x.ContractName } return nil } func (x *Transaction_Contract) GetPermissionId() int32 { if x != nil { return x.PermissionId } return 0 } type Transaction_Result struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Fee int64 `protobuf:"varint,1,opt,name=fee,proto3" json:"fee,omitempty"` Ret Transaction_ResultCode `protobuf:"varint,2,opt,name=ret,proto3,enum=protocol.Transaction_ResultCode" json:"ret,omitempty"` ContractRet Transaction_ResultContractResult `protobuf:"varint,3,opt,name=contractRet,proto3,enum=protocol.Transaction_ResultContractResult" json:"contractRet,omitempty"` AssetIssueID string `protobuf:"bytes,14,opt,name=assetIssueID,proto3" json:"assetIssueID,omitempty"` WithdrawAmount int64 `protobuf:"varint,15,opt,name=withdraw_amount,json=withdrawAmount,proto3" json:"withdraw_amount,omitempty"` UnfreezeAmount int64 `protobuf:"varint,16,opt,name=unfreeze_amount,json=unfreezeAmount,proto3" json:"unfreeze_amount,omitempty"` ExchangeReceivedAmount int64 `protobuf:"varint,18,opt,name=exchange_received_amount,json=exchangeReceivedAmount,proto3" json:"exchange_received_amount,omitempty"` ExchangeInjectAnotherAmount int64 `protobuf:"varint,19,opt,name=exchange_inject_another_amount,json=exchangeInjectAnotherAmount,proto3" json:"exchange_inject_another_amount,omitempty"` ExchangeWithdrawAnotherAmount int64 `protobuf:"varint,20,opt,name=exchange_withdraw_another_amount,json=exchangeWithdrawAnotherAmount,proto3" json:"exchange_withdraw_another_amount,omitempty"` ExchangeId int64 `protobuf:"varint,21,opt,name=exchange_id,json=exchangeId,proto3" json:"exchange_id,omitempty"` ShieldedTransactionFee int64 `protobuf:"varint,22,opt,name=shielded_transaction_fee,json=shieldedTransactionFee,proto3" json:"shielded_transaction_fee,omitempty"` OrderId []byte `protobuf:"bytes,25,opt,name=orderId,proto3" json:"orderId,omitempty"` OrderDetails []*MarketOrderDetail `protobuf:"bytes,26,rep,name=orderDetails,proto3" json:"orderDetails,omitempty"` WithdrawExpireAmount int64 `protobuf:"varint,27,opt,name=withdraw_expire_amount,json=withdrawExpireAmount,proto3" json:"withdraw_expire_amount,omitempty"` CancelUnfreezeV2Amount map[string]int64 `protobuf:"bytes,28,rep,name=cancel_unfreezeV2_amount,json=cancelUnfreezeV2Amount,proto3" json:"cancel_unfreezeV2_amount,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *Transaction_Result) Reset() { *x = Transaction_Result{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Transaction_Result) String() string { return protoimpl.X.MessageStringOf(x) } func (*Transaction_Result) ProtoMessage() {} func (x *Transaction_Result) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Transaction_Result.ProtoReflect.Descriptor instead. func (*Transaction_Result) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{25, 1} } func (x *Transaction_Result) GetFee() int64 { if x != nil { return x.Fee } return 0 } func (x *Transaction_Result) GetRet() Transaction_ResultCode { if x != nil { return x.Ret } return Transaction_Result_SUCESS } func (x *Transaction_Result) GetContractRet() Transaction_ResultContractResult { if x != nil { return x.ContractRet } return Transaction_Result_DEFAULT } func (x *Transaction_Result) GetAssetIssueID() string { if x != nil { return x.AssetIssueID } return "" } func (x *Transaction_Result) GetWithdrawAmount() int64 { if x != nil { return x.WithdrawAmount } return 0 } func (x *Transaction_Result) GetUnfreezeAmount() int64 { if x != nil { return x.UnfreezeAmount } return 0 } func (x *Transaction_Result) GetExchangeReceivedAmount() int64 { if x != nil { return x.ExchangeReceivedAmount } return 0 } func (x *Transaction_Result) GetExchangeInjectAnotherAmount() int64 { if x != nil { return x.ExchangeInjectAnotherAmount } return 0 } func (x *Transaction_Result) GetExchangeWithdrawAnotherAmount() int64 { if x != nil { return x.ExchangeWithdrawAnotherAmount } return 0 } func (x *Transaction_Result) GetExchangeId() int64 { if x != nil { return x.ExchangeId } return 0 } func (x *Transaction_Result) GetShieldedTransactionFee() int64 { if x != nil { return x.ShieldedTransactionFee } return 0 } func (x *Transaction_Result) GetOrderId() []byte { if x != nil { return x.OrderId } return nil } func (x *Transaction_Result) GetOrderDetails() []*MarketOrderDetail { if x != nil { return x.OrderDetails } return nil } func (x *Transaction_Result) GetWithdrawExpireAmount() int64 { if x != nil { return x.WithdrawExpireAmount } return 0 } func (x *Transaction_Result) GetCancelUnfreezeV2Amount() map[string]int64 { if x != nil { return x.CancelUnfreezeV2Amount } return nil } type TransactionRaw struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RefBlockBytes []byte `protobuf:"bytes,1,opt,name=ref_block_bytes,json=refBlockBytes,proto3" json:"ref_block_bytes,omitempty"` RefBlockNum int64 `protobuf:"varint,3,opt,name=ref_block_num,json=refBlockNum,proto3" json:"ref_block_num,omitempty"` RefBlockHash []byte `protobuf:"bytes,4,opt,name=ref_block_hash,json=refBlockHash,proto3" json:"ref_block_hash,omitempty"` Expiration int64 `protobuf:"varint,8,opt,name=expiration,proto3" json:"expiration,omitempty"` Auths []*Authority `protobuf:"bytes,9,rep,name=auths,proto3" json:"auths,omitempty"` // data not used Data []byte `protobuf:"bytes,10,opt,name=data,proto3" json:"data,omitempty"` // only support size = 1, repeated list here for extension Contract []*Transaction_Contract `protobuf:"bytes,11,rep,name=contract,proto3" json:"contract,omitempty"` // scripts not used Scripts []byte `protobuf:"bytes,12,opt,name=scripts,proto3" json:"scripts,omitempty"` Timestamp int64 `protobuf:"varint,14,opt,name=timestamp,proto3" json:"timestamp,omitempty"` FeeLimit int64 `protobuf:"varint,18,opt,name=fee_limit,json=feeLimit,proto3" json:"fee_limit,omitempty"` } func (x *TransactionRaw) Reset() { *x = TransactionRaw{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransactionRaw) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransactionRaw) ProtoMessage() {} func (x *TransactionRaw) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TransactionRaw.ProtoReflect.Descriptor instead. func (*TransactionRaw) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{25, 2} } func (x *TransactionRaw) GetRefBlockBytes() []byte { if x != nil { return x.RefBlockBytes } return nil } func (x *TransactionRaw) GetRefBlockNum() int64 { if x != nil { return x.RefBlockNum } return 0 } func (x *TransactionRaw) GetRefBlockHash() []byte { if x != nil { return x.RefBlockHash } return nil } func (x *TransactionRaw) GetExpiration() int64 { if x != nil { return x.Expiration } return 0 } func (x *TransactionRaw) GetAuths() []*Authority { if x != nil { return x.Auths } return nil } func (x *TransactionRaw) GetData() []byte { if x != nil { return x.Data } return nil } func (x *TransactionRaw) GetContract() []*Transaction_Contract { if x != nil { return x.Contract } return nil } func (x *TransactionRaw) GetScripts() []byte { if x != nil { return x.Scripts } return nil } func (x *TransactionRaw) GetTimestamp() int64 { if x != nil { return x.Timestamp } return 0 } func (x *TransactionRaw) GetFeeLimit() int64 { if x != nil { return x.FeeLimit } return 0 } type TransactionInfo_Log struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` Topics [][]byte `protobuf:"bytes,2,rep,name=topics,proto3" json:"topics,omitempty"` Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *TransactionInfo_Log) Reset() { *x = TransactionInfo_Log{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransactionInfo_Log) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransactionInfo_Log) ProtoMessage() {} func (x *TransactionInfo_Log) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TransactionInfo_Log.ProtoReflect.Descriptor instead. func (*TransactionInfo_Log) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{26, 0} } func (x *TransactionInfo_Log) GetAddress() []byte { if x != nil { return x.Address } return nil } func (x *TransactionInfo_Log) GetTopics() [][]byte { if x != nil { return x.Topics } return nil } func (x *TransactionInfo_Log) GetData() []byte { if x != nil { return x.Data } return nil } type BlockHeaderRaw struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` TxTrieRoot []byte `protobuf:"bytes,2,opt,name=txTrieRoot,proto3" json:"txTrieRoot,omitempty"` ParentHash []byte `protobuf:"bytes,3,opt,name=parentHash,proto3" json:"parentHash,omitempty"` // bytes nonce = 5; // bytes difficulty = 6; Number int64 `protobuf:"varint,7,opt,name=number,proto3" json:"number,omitempty"` WitnessId int64 `protobuf:"varint,8,opt,name=witness_id,json=witnessId,proto3" json:"witness_id,omitempty"` WitnessAddress []byte `protobuf:"bytes,9,opt,name=witness_address,json=witnessAddress,proto3" json:"witness_address,omitempty"` Version int32 `protobuf:"varint,10,opt,name=version,proto3" json:"version,omitempty"` AccountStateRoot []byte `protobuf:"bytes,11,opt,name=accountStateRoot,proto3" json:"accountStateRoot,omitempty"` } func (x *BlockHeaderRaw) Reset() { *x = BlockHeaderRaw{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlockHeaderRaw) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlockHeaderRaw) ProtoMessage() {} func (x *BlockHeaderRaw) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BlockHeaderRaw.ProtoReflect.Descriptor instead. func (*BlockHeaderRaw) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{29, 0} } func (x *BlockHeaderRaw) GetTimestamp() int64 { if x != nil { return x.Timestamp } return 0 } func (x *BlockHeaderRaw) GetTxTrieRoot() []byte { if x != nil { return x.TxTrieRoot } return nil } func (x *BlockHeaderRaw) GetParentHash() []byte { if x != nil { return x.ParentHash } return nil } func (x *BlockHeaderRaw) GetNumber() int64 { if x != nil { return x.Number } return 0 } func (x *BlockHeaderRaw) GetWitnessId() int64 { if x != nil { return x.WitnessId } return 0 } func (x *BlockHeaderRaw) GetWitnessAddress() []byte { if x != nil { return x.WitnessAddress } return nil } func (x *BlockHeaderRaw) GetVersion() int32 { if x != nil { return x.Version } return 0 } func (x *BlockHeaderRaw) GetAccountStateRoot() []byte { if x != nil { return x.AccountStateRoot } return nil } type ChainInventory_BlockId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"` } func (x *ChainInventory_BlockId) Reset() { *x = ChainInventory_BlockId{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ChainInventory_BlockId) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChainInventory_BlockId) ProtoMessage() {} func (x *ChainInventory_BlockId) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ChainInventory_BlockId.ProtoReflect.Descriptor instead. func (*ChainInventory_BlockId) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{31, 0} } func (x *ChainInventory_BlockId) GetHash() []byte { if x != nil { return x.Hash } return nil } func (x *ChainInventory_BlockId) GetNumber() int64 { if x != nil { return x.Number } return 0 } type BlockInventory_BlockId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"` } func (x *BlockInventory_BlockId) Reset() { *x = BlockInventory_BlockId{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlockInventory_BlockId) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlockInventory_BlockId) ProtoMessage() {} func (x *BlockInventory_BlockId) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BlockInventory_BlockId.ProtoReflect.Descriptor instead. func (*BlockInventory_BlockId) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{32, 0} } func (x *BlockInventory_BlockId) GetHash() []byte { if x != nil { return x.Hash } return nil } func (x *BlockInventory_BlockId) GetNumber() int64 { if x != nil { return x.Number } return 0 } type HelloMessage_BlockId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` Number int64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"` } func (x *HelloMessage_BlockId) Reset() { *x = HelloMessage_BlockId{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HelloMessage_BlockId) String() string { return protoimpl.X.MessageStringOf(x) } func (*HelloMessage_BlockId) ProtoMessage() {} func (x *HelloMessage_BlockId) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HelloMessage_BlockId.ProtoReflect.Descriptor instead. func (*HelloMessage_BlockId) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{37, 0} } func (x *HelloMessage_BlockId) GetHash() []byte { if x != nil { return x.Hash } return nil } func (x *HelloMessage_BlockId) GetNumber() int64 { if x != nil { return x.Number } return 0 } type InternalTransaction_CallValueInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // trx (TBD: or token) value CallValue int64 `protobuf:"varint,1,opt,name=callValue,proto3" json:"callValue,omitempty"` // TBD: tokenName, trx should be empty TokenId string `protobuf:"bytes,2,opt,name=tokenId,proto3" json:"tokenId,omitempty"` } func (x *InternalTransaction_CallValueInfo) Reset() { *x = InternalTransaction_CallValueInfo{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InternalTransaction_CallValueInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*InternalTransaction_CallValueInfo) ProtoMessage() {} func (x *InternalTransaction_CallValueInfo) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use InternalTransaction_CallValueInfo.ProtoReflect.Descriptor instead. func (*InternalTransaction_CallValueInfo) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{38, 0} } func (x *InternalTransaction_CallValueInfo) GetCallValue() int64 { if x != nil { return x.CallValue } return 0 } func (x *InternalTransaction_CallValueInfo) GetTokenId() string { if x != nil { return x.TokenId } return "" } type NodeInfo_PeerInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LastSyncBlock string `protobuf:"bytes,1,opt,name=lastSyncBlock,proto3" json:"lastSyncBlock,omitempty"` RemainNum int64 `protobuf:"varint,2,opt,name=remainNum,proto3" json:"remainNum,omitempty"` LastBlockUpdateTime int64 `protobuf:"varint,3,opt,name=lastBlockUpdateTime,proto3" json:"lastBlockUpdateTime,omitempty"` SyncFlag bool `protobuf:"varint,4,opt,name=syncFlag,proto3" json:"syncFlag,omitempty"` HeadBlockTimeWeBothHave int64 `protobuf:"varint,5,opt,name=headBlockTimeWeBothHave,proto3" json:"headBlockTimeWeBothHave,omitempty"` NeedSyncFromPeer bool `protobuf:"varint,6,opt,name=needSyncFromPeer,proto3" json:"needSyncFromPeer,omitempty"` NeedSyncFromUs bool `protobuf:"varint,7,opt,name=needSyncFromUs,proto3" json:"needSyncFromUs,omitempty"` Host string `protobuf:"bytes,8,opt,name=host,proto3" json:"host,omitempty"` Port int32 `protobuf:"varint,9,opt,name=port,proto3" json:"port,omitempty"` NodeId string `protobuf:"bytes,10,opt,name=nodeId,proto3" json:"nodeId,omitempty"` ConnectTime int64 `protobuf:"varint,11,opt,name=connectTime,proto3" json:"connectTime,omitempty"` AvgLatency float64 `protobuf:"fixed64,12,opt,name=avgLatency,proto3" json:"avgLatency,omitempty"` SyncToFetchSize int32 `protobuf:"varint,13,opt,name=syncToFetchSize,proto3" json:"syncToFetchSize,omitempty"` SyncToFetchSizePeekNum int64 `protobuf:"varint,14,opt,name=syncToFetchSizePeekNum,proto3" json:"syncToFetchSizePeekNum,omitempty"` SyncBlockRequestedSize int32 `protobuf:"varint,15,opt,name=syncBlockRequestedSize,proto3" json:"syncBlockRequestedSize,omitempty"` UnFetchSynNum int64 `protobuf:"varint,16,opt,name=unFetchSynNum,proto3" json:"unFetchSynNum,omitempty"` BlockInPorcSize int32 `protobuf:"varint,17,opt,name=blockInPorcSize,proto3" json:"blockInPorcSize,omitempty"` HeadBlockWeBothHave string `protobuf:"bytes,18,opt,name=headBlockWeBothHave,proto3" json:"headBlockWeBothHave,omitempty"` IsActive bool `protobuf:"varint,19,opt,name=isActive,proto3" json:"isActive,omitempty"` Score int32 `protobuf:"varint,20,opt,name=score,proto3" json:"score,omitempty"` NodeCount int32 `protobuf:"varint,21,opt,name=nodeCount,proto3" json:"nodeCount,omitempty"` InFlow int64 `protobuf:"varint,22,opt,name=inFlow,proto3" json:"inFlow,omitempty"` DisconnectTimes int32 `protobuf:"varint,23,opt,name=disconnectTimes,proto3" json:"disconnectTimes,omitempty"` LocalDisconnectReason string `protobuf:"bytes,24,opt,name=localDisconnectReason,proto3" json:"localDisconnectReason,omitempty"` RemoteDisconnectReason string `protobuf:"bytes,25,opt,name=remoteDisconnectReason,proto3" json:"remoteDisconnectReason,omitempty"` } func (x *NodeInfo_PeerInfo) Reset() { *x = NodeInfo_PeerInfo{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NodeInfo_PeerInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*NodeInfo_PeerInfo) ProtoMessage() {} func (x *NodeInfo_PeerInfo) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NodeInfo_PeerInfo.ProtoReflect.Descriptor instead. func (*NodeInfo_PeerInfo) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{40, 1} } func (x *NodeInfo_PeerInfo) GetLastSyncBlock() string { if x != nil { return x.LastSyncBlock } return "" } func (x *NodeInfo_PeerInfo) GetRemainNum() int64 { if x != nil { return x.RemainNum } return 0 } func (x *NodeInfo_PeerInfo) GetLastBlockUpdateTime() int64 { if x != nil { return x.LastBlockUpdateTime } return 0 } func (x *NodeInfo_PeerInfo) GetSyncFlag() bool { if x != nil { return x.SyncFlag } return false } func (x *NodeInfo_PeerInfo) GetHeadBlockTimeWeBothHave() int64 { if x != nil { return x.HeadBlockTimeWeBothHave } return 0 } func (x *NodeInfo_PeerInfo) GetNeedSyncFromPeer() bool { if x != nil { return x.NeedSyncFromPeer } return false } func (x *NodeInfo_PeerInfo) GetNeedSyncFromUs() bool { if x != nil { return x.NeedSyncFromUs } return false } func (x *NodeInfo_PeerInfo) GetHost() string { if x != nil { return x.Host } return "" } func (x *NodeInfo_PeerInfo) GetPort() int32 { if x != nil { return x.Port } return 0 } func (x *NodeInfo_PeerInfo) GetNodeId() string { if x != nil { return x.NodeId } return "" } func (x *NodeInfo_PeerInfo) GetConnectTime() int64 { if x != nil { return x.ConnectTime } return 0 } func (x *NodeInfo_PeerInfo) GetAvgLatency() float64 { if x != nil { return x.AvgLatency } return 0 } func (x *NodeInfo_PeerInfo) GetSyncToFetchSize() int32 { if x != nil { return x.SyncToFetchSize } return 0 } func (x *NodeInfo_PeerInfo) GetSyncToFetchSizePeekNum() int64 { if x != nil { return x.SyncToFetchSizePeekNum } return 0 } func (x *NodeInfo_PeerInfo) GetSyncBlockRequestedSize() int32 { if x != nil { return x.SyncBlockRequestedSize } return 0 } func (x *NodeInfo_PeerInfo) GetUnFetchSynNum() int64 { if x != nil { return x.UnFetchSynNum } return 0 } func (x *NodeInfo_PeerInfo) GetBlockInPorcSize() int32 { if x != nil { return x.BlockInPorcSize } return 0 } func (x *NodeInfo_PeerInfo) GetHeadBlockWeBothHave() string { if x != nil { return x.HeadBlockWeBothHave } return "" } func (x *NodeInfo_PeerInfo) GetIsActive() bool { if x != nil { return x.IsActive } return false } func (x *NodeInfo_PeerInfo) GetScore() int32 { if x != nil { return x.Score } return 0 } func (x *NodeInfo_PeerInfo) GetNodeCount() int32 { if x != nil { return x.NodeCount } return 0 } func (x *NodeInfo_PeerInfo) GetInFlow() int64 { if x != nil { return x.InFlow } return 0 } func (x *NodeInfo_PeerInfo) GetDisconnectTimes() int32 { if x != nil { return x.DisconnectTimes } return 0 } func (x *NodeInfo_PeerInfo) GetLocalDisconnectReason() string { if x != nil { return x.LocalDisconnectReason } return "" } func (x *NodeInfo_PeerInfo) GetRemoteDisconnectReason() string { if x != nil { return x.RemoteDisconnectReason } return "" } type NodeInfo_ConfigNodeInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CodeVersion string `protobuf:"bytes,1,opt,name=codeVersion,proto3" json:"codeVersion,omitempty"` P2PVersion string `protobuf:"bytes,2,opt,name=p2pVersion,proto3" json:"p2pVersion,omitempty"` ListenPort int32 `protobuf:"varint,3,opt,name=listenPort,proto3" json:"listenPort,omitempty"` DiscoverEnable bool `protobuf:"varint,4,opt,name=discoverEnable,proto3" json:"discoverEnable,omitempty"` ActiveNodeSize int32 `protobuf:"varint,5,opt,name=activeNodeSize,proto3" json:"activeNodeSize,omitempty"` PassiveNodeSize int32 `protobuf:"varint,6,opt,name=passiveNodeSize,proto3" json:"passiveNodeSize,omitempty"` SendNodeSize int32 `protobuf:"varint,7,opt,name=sendNodeSize,proto3" json:"sendNodeSize,omitempty"` MaxConnectCount int32 `protobuf:"varint,8,opt,name=maxConnectCount,proto3" json:"maxConnectCount,omitempty"` SameIpMaxConnectCount int32 `protobuf:"varint,9,opt,name=sameIpMaxConnectCount,proto3" json:"sameIpMaxConnectCount,omitempty"` BackupListenPort int32 `protobuf:"varint,10,opt,name=backupListenPort,proto3" json:"backupListenPort,omitempty"` BackupMemberSize int32 `protobuf:"varint,11,opt,name=backupMemberSize,proto3" json:"backupMemberSize,omitempty"` BackupPriority int32 `protobuf:"varint,12,opt,name=backupPriority,proto3" json:"backupPriority,omitempty"` DbVersion int32 `protobuf:"varint,13,opt,name=dbVersion,proto3" json:"dbVersion,omitempty"` MinParticipationRate int32 `protobuf:"varint,14,opt,name=minParticipationRate,proto3" json:"minParticipationRate,omitempty"` SupportConstant bool `protobuf:"varint,15,opt,name=supportConstant,proto3" json:"supportConstant,omitempty"` MinTimeRatio float64 `protobuf:"fixed64,16,opt,name=minTimeRatio,proto3" json:"minTimeRatio,omitempty"` MaxTimeRatio float64 `protobuf:"fixed64,17,opt,name=maxTimeRatio,proto3" json:"maxTimeRatio,omitempty"` AllowCreationOfContracts int64 `protobuf:"varint,18,opt,name=allowCreationOfContracts,proto3" json:"allowCreationOfContracts,omitempty"` AllowAdaptiveEnergy int64 `protobuf:"varint,19,opt,name=allowAdaptiveEnergy,proto3" json:"allowAdaptiveEnergy,omitempty"` } func (x *NodeInfo_ConfigNodeInfo) Reset() { *x = NodeInfo_ConfigNodeInfo{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NodeInfo_ConfigNodeInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*NodeInfo_ConfigNodeInfo) ProtoMessage() {} func (x *NodeInfo_ConfigNodeInfo) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NodeInfo_ConfigNodeInfo.ProtoReflect.Descriptor instead. func (*NodeInfo_ConfigNodeInfo) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{40, 2} } func (x *NodeInfo_ConfigNodeInfo) GetCodeVersion() string { if x != nil { return x.CodeVersion } return "" } func (x *NodeInfo_ConfigNodeInfo) GetP2PVersion() string { if x != nil { return x.P2PVersion } return "" } func (x *NodeInfo_ConfigNodeInfo) GetListenPort() int32 { if x != nil { return x.ListenPort } return 0 } func (x *NodeInfo_ConfigNodeInfo) GetDiscoverEnable() bool { if x != nil { return x.DiscoverEnable } return false } func (x *NodeInfo_ConfigNodeInfo) GetActiveNodeSize() int32 { if x != nil { return x.ActiveNodeSize } return 0 } func (x *NodeInfo_ConfigNodeInfo) GetPassiveNodeSize() int32 { if x != nil { return x.PassiveNodeSize } return 0 } func (x *NodeInfo_ConfigNodeInfo) GetSendNodeSize() int32 { if x != nil { return x.SendNodeSize } return 0 } func (x *NodeInfo_ConfigNodeInfo) GetMaxConnectCount() int32 { if x != nil { return x.MaxConnectCount } return 0 } func (x *NodeInfo_ConfigNodeInfo) GetSameIpMaxConnectCount() int32 { if x != nil { return x.SameIpMaxConnectCount } return 0 } func (x *NodeInfo_ConfigNodeInfo) GetBackupListenPort() int32 { if x != nil { return x.BackupListenPort } return 0 } func (x *NodeInfo_ConfigNodeInfo) GetBackupMemberSize() int32 { if x != nil { return x.BackupMemberSize } return 0 } func (x *NodeInfo_ConfigNodeInfo) GetBackupPriority() int32 { if x != nil { return x.BackupPriority } return 0 } func (x *NodeInfo_ConfigNodeInfo) GetDbVersion() int32 { if x != nil { return x.DbVersion } return 0 } func (x *NodeInfo_ConfigNodeInfo) GetMinParticipationRate() int32 { if x != nil { return x.MinParticipationRate } return 0 } func (x *NodeInfo_ConfigNodeInfo) GetSupportConstant() bool { if x != nil { return x.SupportConstant } return false } func (x *NodeInfo_ConfigNodeInfo) GetMinTimeRatio() float64 { if x != nil { return x.MinTimeRatio } return 0 } func (x *NodeInfo_ConfigNodeInfo) GetMaxTimeRatio() float64 { if x != nil { return x.MaxTimeRatio } return 0 } func (x *NodeInfo_ConfigNodeInfo) GetAllowCreationOfContracts() int64 { if x != nil { return x.AllowCreationOfContracts } return 0 } func (x *NodeInfo_ConfigNodeInfo) GetAllowAdaptiveEnergy() int64 { if x != nil { return x.AllowAdaptiveEnergy } return 0 } type NodeInfo_MachineInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ThreadCount int32 `protobuf:"varint,1,opt,name=threadCount,proto3" json:"threadCount,omitempty"` DeadLockThreadCount int32 `protobuf:"varint,2,opt,name=deadLockThreadCount,proto3" json:"deadLockThreadCount,omitempty"` CpuCount int32 `protobuf:"varint,3,opt,name=cpuCount,proto3" json:"cpuCount,omitempty"` TotalMemory int64 `protobuf:"varint,4,opt,name=totalMemory,proto3" json:"totalMemory,omitempty"` FreeMemory int64 `protobuf:"varint,5,opt,name=freeMemory,proto3" json:"freeMemory,omitempty"` CpuRate float64 `protobuf:"fixed64,6,opt,name=cpuRate,proto3" json:"cpuRate,omitempty"` JavaVersion string `protobuf:"bytes,7,opt,name=javaVersion,proto3" json:"javaVersion,omitempty"` OsName string `protobuf:"bytes,8,opt,name=osName,proto3" json:"osName,omitempty"` JvmTotalMemory int64 `protobuf:"varint,9,opt,name=jvmTotalMemory,proto3" json:"jvmTotalMemory,omitempty"` JvmFreeMemory int64 `protobuf:"varint,10,opt,name=jvmFreeMemory,proto3" json:"jvmFreeMemory,omitempty"` ProcessCpuRate float64 `protobuf:"fixed64,11,opt,name=processCpuRate,proto3" json:"processCpuRate,omitempty"` MemoryDescInfoList []*NodeInfo_MachineInfo_MemoryDescInfo `protobuf:"bytes,12,rep,name=memoryDescInfoList,proto3" json:"memoryDescInfoList,omitempty"` DeadLockThreadInfoList []*NodeInfo_MachineInfo_DeadLockThreadInfo `protobuf:"bytes,13,rep,name=deadLockThreadInfoList,proto3" json:"deadLockThreadInfoList,omitempty"` } func (x *NodeInfo_MachineInfo) Reset() { *x = NodeInfo_MachineInfo{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NodeInfo_MachineInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*NodeInfo_MachineInfo) ProtoMessage() {} func (x *NodeInfo_MachineInfo) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NodeInfo_MachineInfo.ProtoReflect.Descriptor instead. func (*NodeInfo_MachineInfo) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{40, 3} } func (x *NodeInfo_MachineInfo) GetThreadCount() int32 { if x != nil { return x.ThreadCount } return 0 } func (x *NodeInfo_MachineInfo) GetDeadLockThreadCount() int32 { if x != nil { return x.DeadLockThreadCount } return 0 } func (x *NodeInfo_MachineInfo) GetCpuCount() int32 { if x != nil { return x.CpuCount } return 0 } func (x *NodeInfo_MachineInfo) GetTotalMemory() int64 { if x != nil { return x.TotalMemory } return 0 } func (x *NodeInfo_MachineInfo) GetFreeMemory() int64 { if x != nil { return x.FreeMemory } return 0 } func (x *NodeInfo_MachineInfo) GetCpuRate() float64 { if x != nil { return x.CpuRate } return 0 } func (x *NodeInfo_MachineInfo) GetJavaVersion() string { if x != nil { return x.JavaVersion } return "" } func (x *NodeInfo_MachineInfo) GetOsName() string { if x != nil { return x.OsName } return "" } func (x *NodeInfo_MachineInfo) GetJvmTotalMemory() int64 { if x != nil { return x.JvmTotalMemory } return 0 } func (x *NodeInfo_MachineInfo) GetJvmFreeMemory() int64 { if x != nil { return x.JvmFreeMemory } return 0 } func (x *NodeInfo_MachineInfo) GetProcessCpuRate() float64 { if x != nil { return x.ProcessCpuRate } return 0 } func (x *NodeInfo_MachineInfo) GetMemoryDescInfoList() []*NodeInfo_MachineInfo_MemoryDescInfo { if x != nil { return x.MemoryDescInfoList } return nil } func (x *NodeInfo_MachineInfo) GetDeadLockThreadInfoList() []*NodeInfo_MachineInfo_DeadLockThreadInfo { if x != nil { return x.DeadLockThreadInfoList } return nil } type NodeInfo_MachineInfo_MemoryDescInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` InitSize int64 `protobuf:"varint,2,opt,name=initSize,proto3" json:"initSize,omitempty"` UseSize int64 `protobuf:"varint,3,opt,name=useSize,proto3" json:"useSize,omitempty"` MaxSize int64 `protobuf:"varint,4,opt,name=maxSize,proto3" json:"maxSize,omitempty"` UseRate float64 `protobuf:"fixed64,5,opt,name=useRate,proto3" json:"useRate,omitempty"` } func (x *NodeInfo_MachineInfo_MemoryDescInfo) Reset() { *x = NodeInfo_MachineInfo_MemoryDescInfo{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NodeInfo_MachineInfo_MemoryDescInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*NodeInfo_MachineInfo_MemoryDescInfo) ProtoMessage() {} func (x *NodeInfo_MachineInfo_MemoryDescInfo) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NodeInfo_MachineInfo_MemoryDescInfo.ProtoReflect.Descriptor instead. func (*NodeInfo_MachineInfo_MemoryDescInfo) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{40, 3, 0} } func (x *NodeInfo_MachineInfo_MemoryDescInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *NodeInfo_MachineInfo_MemoryDescInfo) GetInitSize() int64 { if x != nil { return x.InitSize } return 0 } func (x *NodeInfo_MachineInfo_MemoryDescInfo) GetUseSize() int64 { if x != nil { return x.UseSize } return 0 } func (x *NodeInfo_MachineInfo_MemoryDescInfo) GetMaxSize() int64 { if x != nil { return x.MaxSize } return 0 } func (x *NodeInfo_MachineInfo_MemoryDescInfo) GetUseRate() float64 { if x != nil { return x.UseRate } return 0 } type NodeInfo_MachineInfo_DeadLockThreadInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` LockName string `protobuf:"bytes,2,opt,name=lockName,proto3" json:"lockName,omitempty"` LockOwner string `protobuf:"bytes,3,opt,name=lockOwner,proto3" json:"lockOwner,omitempty"` State string `protobuf:"bytes,4,opt,name=state,proto3" json:"state,omitempty"` BlockTime int64 `protobuf:"varint,5,opt,name=blockTime,proto3" json:"blockTime,omitempty"` WaitTime int64 `protobuf:"varint,6,opt,name=waitTime,proto3" json:"waitTime,omitempty"` StackTrace string `protobuf:"bytes,7,opt,name=stackTrace,proto3" json:"stackTrace,omitempty"` } func (x *NodeInfo_MachineInfo_DeadLockThreadInfo) Reset() { *x = NodeInfo_MachineInfo_DeadLockThreadInfo{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NodeInfo_MachineInfo_DeadLockThreadInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*NodeInfo_MachineInfo_DeadLockThreadInfo) ProtoMessage() {} func (x *NodeInfo_MachineInfo_DeadLockThreadInfo) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NodeInfo_MachineInfo_DeadLockThreadInfo.ProtoReflect.Descriptor instead. func (*NodeInfo_MachineInfo_DeadLockThreadInfo) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{40, 3, 1} } func (x *NodeInfo_MachineInfo_DeadLockThreadInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *NodeInfo_MachineInfo_DeadLockThreadInfo) GetLockName() string { if x != nil { return x.LockName } return "" } func (x *NodeInfo_MachineInfo_DeadLockThreadInfo) GetLockOwner() string { if x != nil { return x.LockOwner } return "" } func (x *NodeInfo_MachineInfo_DeadLockThreadInfo) GetState() string { if x != nil { return x.State } return "" } func (x *NodeInfo_MachineInfo_DeadLockThreadInfo) GetBlockTime() int64 { if x != nil { return x.BlockTime } return 0 } func (x *NodeInfo_MachineInfo_DeadLockThreadInfo) GetWaitTime() int64 { if x != nil { return x.WaitTime } return 0 } func (x *NodeInfo_MachineInfo_DeadLockThreadInfo) GetStackTrace() string { if x != nil { return x.StackTrace } return "" } type MetricsInfo_NodeInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ip string `protobuf:"bytes,1,opt,name=ip,proto3" json:"ip,omitempty"` NodeType int32 `protobuf:"varint,2,opt,name=nodeType,proto3" json:"nodeType,omitempty"` Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` BackupStatus int32 `protobuf:"varint,4,opt,name=backupStatus,proto3" json:"backupStatus,omitempty"` } func (x *MetricsInfo_NodeInfo) Reset() { *x = MetricsInfo_NodeInfo{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MetricsInfo_NodeInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*MetricsInfo_NodeInfo) ProtoMessage() {} func (x *MetricsInfo_NodeInfo) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MetricsInfo_NodeInfo.ProtoReflect.Descriptor instead. func (*MetricsInfo_NodeInfo) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{41, 0} } func (x *MetricsInfo_NodeInfo) GetIp() string { if x != nil { return x.Ip } return "" } func (x *MetricsInfo_NodeInfo) GetNodeType() int32 { if x != nil { return x.NodeType } return 0 } func (x *MetricsInfo_NodeInfo) GetVersion() string { if x != nil { return x.Version } return "" } func (x *MetricsInfo_NodeInfo) GetBackupStatus() int32 { if x != nil { return x.BackupStatus } return 0 } type MetricsInfo_BlockChainInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields HeadBlockNum int64 `protobuf:"varint,1,opt,name=headBlockNum,proto3" json:"headBlockNum,omitempty"` HeadBlockTimestamp int64 `protobuf:"varint,2,opt,name=headBlockTimestamp,proto3" json:"headBlockTimestamp,omitempty"` HeadBlockHash string `protobuf:"bytes,3,opt,name=headBlockHash,proto3" json:"headBlockHash,omitempty"` ForkCount int32 `protobuf:"varint,4,opt,name=forkCount,proto3" json:"forkCount,omitempty"` FailForkCount int32 `protobuf:"varint,5,opt,name=failForkCount,proto3" json:"failForkCount,omitempty"` BlockProcessTime *MetricsInfo_RateInfo `protobuf:"bytes,6,opt,name=blockProcessTime,proto3" json:"blockProcessTime,omitempty"` Tps *MetricsInfo_RateInfo `protobuf:"bytes,7,opt,name=tps,proto3" json:"tps,omitempty"` TransactionCacheSize int32 `protobuf:"varint,8,opt,name=transactionCacheSize,proto3" json:"transactionCacheSize,omitempty"` MissedTransaction *MetricsInfo_RateInfo `protobuf:"bytes,9,opt,name=missedTransaction,proto3" json:"missedTransaction,omitempty"` Witnesses []*MetricsInfo_BlockChainInfo_Witness `protobuf:"bytes,10,rep,name=witnesses,proto3" json:"witnesses,omitempty"` FailProcessBlockNum int64 `protobuf:"varint,11,opt,name=failProcessBlockNum,proto3" json:"failProcessBlockNum,omitempty"` FailProcessBlockReason string `protobuf:"bytes,12,opt,name=failProcessBlockReason,proto3" json:"failProcessBlockReason,omitempty"` DupWitness []*MetricsInfo_BlockChainInfo_DupWitness `protobuf:"bytes,13,rep,name=dupWitness,proto3" json:"dupWitness,omitempty"` } func (x *MetricsInfo_BlockChainInfo) Reset() { *x = MetricsInfo_BlockChainInfo{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MetricsInfo_BlockChainInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*MetricsInfo_BlockChainInfo) ProtoMessage() {} func (x *MetricsInfo_BlockChainInfo) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MetricsInfo_BlockChainInfo.ProtoReflect.Descriptor instead. func (*MetricsInfo_BlockChainInfo) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{41, 1} } func (x *MetricsInfo_BlockChainInfo) GetHeadBlockNum() int64 { if x != nil { return x.HeadBlockNum } return 0 } func (x *MetricsInfo_BlockChainInfo) GetHeadBlockTimestamp() int64 { if x != nil { return x.HeadBlockTimestamp } return 0 } func (x *MetricsInfo_BlockChainInfo) GetHeadBlockHash() string { if x != nil { return x.HeadBlockHash } return "" } func (x *MetricsInfo_BlockChainInfo) GetForkCount() int32 { if x != nil { return x.ForkCount } return 0 } func (x *MetricsInfo_BlockChainInfo) GetFailForkCount() int32 { if x != nil { return x.FailForkCount } return 0 } func (x *MetricsInfo_BlockChainInfo) GetBlockProcessTime() *MetricsInfo_RateInfo { if x != nil { return x.BlockProcessTime } return nil } func (x *MetricsInfo_BlockChainInfo) GetTps() *MetricsInfo_RateInfo { if x != nil { return x.Tps } return nil } func (x *MetricsInfo_BlockChainInfo) GetTransactionCacheSize() int32 { if x != nil { return x.TransactionCacheSize } return 0 } func (x *MetricsInfo_BlockChainInfo) GetMissedTransaction() *MetricsInfo_RateInfo { if x != nil { return x.MissedTransaction } return nil } func (x *MetricsInfo_BlockChainInfo) GetWitnesses() []*MetricsInfo_BlockChainInfo_Witness { if x != nil { return x.Witnesses } return nil } func (x *MetricsInfo_BlockChainInfo) GetFailProcessBlockNum() int64 { if x != nil { return x.FailProcessBlockNum } return 0 } func (x *MetricsInfo_BlockChainInfo) GetFailProcessBlockReason() string { if x != nil { return x.FailProcessBlockReason } return "" } func (x *MetricsInfo_BlockChainInfo) GetDupWitness() []*MetricsInfo_BlockChainInfo_DupWitness { if x != nil { return x.DupWitness } return nil } type MetricsInfo_RateInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` MeanRate float64 `protobuf:"fixed64,2,opt,name=meanRate,proto3" json:"meanRate,omitempty"` OneMinuteRate float64 `protobuf:"fixed64,3,opt,name=oneMinuteRate,proto3" json:"oneMinuteRate,omitempty"` FiveMinuteRate float64 `protobuf:"fixed64,4,opt,name=fiveMinuteRate,proto3" json:"fiveMinuteRate,omitempty"` FifteenMinuteRate float64 `protobuf:"fixed64,5,opt,name=fifteenMinuteRate,proto3" json:"fifteenMinuteRate,omitempty"` } func (x *MetricsInfo_RateInfo) Reset() { *x = MetricsInfo_RateInfo{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MetricsInfo_RateInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*MetricsInfo_RateInfo) ProtoMessage() {} func (x *MetricsInfo_RateInfo) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MetricsInfo_RateInfo.ProtoReflect.Descriptor instead. func (*MetricsInfo_RateInfo) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{41, 2} } func (x *MetricsInfo_RateInfo) GetCount() int64 { if x != nil { return x.Count } return 0 } func (x *MetricsInfo_RateInfo) GetMeanRate() float64 { if x != nil { return x.MeanRate } return 0 } func (x *MetricsInfo_RateInfo) GetOneMinuteRate() float64 { if x != nil { return x.OneMinuteRate } return 0 } func (x *MetricsInfo_RateInfo) GetFiveMinuteRate() float64 { if x != nil { return x.FiveMinuteRate } return 0 } func (x *MetricsInfo_RateInfo) GetFifteenMinuteRate() float64 { if x != nil { return x.FifteenMinuteRate } return 0 } type MetricsInfo_NetInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ErrorProtoCount int32 `protobuf:"varint,1,opt,name=errorProtoCount,proto3" json:"errorProtoCount,omitempty"` Api *MetricsInfo_NetInfo_ApiInfo `protobuf:"bytes,2,opt,name=api,proto3" json:"api,omitempty"` ConnectionCount int32 `protobuf:"varint,3,opt,name=connectionCount,proto3" json:"connectionCount,omitempty"` ValidConnectionCount int32 `protobuf:"varint,4,opt,name=validConnectionCount,proto3" json:"validConnectionCount,omitempty"` TcpInTraffic *MetricsInfo_RateInfo `protobuf:"bytes,5,opt,name=tcpInTraffic,proto3" json:"tcpInTraffic,omitempty"` TcpOutTraffic *MetricsInfo_RateInfo `protobuf:"bytes,6,opt,name=tcpOutTraffic,proto3" json:"tcpOutTraffic,omitempty"` DisconnectionCount int32 `protobuf:"varint,7,opt,name=disconnectionCount,proto3" json:"disconnectionCount,omitempty"` DisconnectionDetail []*MetricsInfo_NetInfo_DisconnectionDetailInfo `protobuf:"bytes,8,rep,name=disconnectionDetail,proto3" json:"disconnectionDetail,omitempty"` UdpInTraffic *MetricsInfo_RateInfo `protobuf:"bytes,9,opt,name=udpInTraffic,proto3" json:"udpInTraffic,omitempty"` UdpOutTraffic *MetricsInfo_RateInfo `protobuf:"bytes,10,opt,name=udpOutTraffic,proto3" json:"udpOutTraffic,omitempty"` Latency *MetricsInfo_NetInfo_LatencyInfo `protobuf:"bytes,11,opt,name=latency,proto3" json:"latency,omitempty"` } func (x *MetricsInfo_NetInfo) Reset() { *x = MetricsInfo_NetInfo{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MetricsInfo_NetInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*MetricsInfo_NetInfo) ProtoMessage() {} func (x *MetricsInfo_NetInfo) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MetricsInfo_NetInfo.ProtoReflect.Descriptor instead. func (*MetricsInfo_NetInfo) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{41, 3} } func (x *MetricsInfo_NetInfo) GetErrorProtoCount() int32 { if x != nil { return x.ErrorProtoCount } return 0 } func (x *MetricsInfo_NetInfo) GetApi() *MetricsInfo_NetInfo_ApiInfo { if x != nil { return x.Api } return nil } func (x *MetricsInfo_NetInfo) GetConnectionCount() int32 { if x != nil { return x.ConnectionCount } return 0 } func (x *MetricsInfo_NetInfo) GetValidConnectionCount() int32 { if x != nil { return x.ValidConnectionCount } return 0 } func (x *MetricsInfo_NetInfo) GetTcpInTraffic() *MetricsInfo_RateInfo { if x != nil { return x.TcpInTraffic } return nil } func (x *MetricsInfo_NetInfo) GetTcpOutTraffic() *MetricsInfo_RateInfo { if x != nil { return x.TcpOutTraffic } return nil } func (x *MetricsInfo_NetInfo) GetDisconnectionCount() int32 { if x != nil { return x.DisconnectionCount } return 0 } func (x *MetricsInfo_NetInfo) GetDisconnectionDetail() []*MetricsInfo_NetInfo_DisconnectionDetailInfo { if x != nil { return x.DisconnectionDetail } return nil } func (x *MetricsInfo_NetInfo) GetUdpInTraffic() *MetricsInfo_RateInfo { if x != nil { return x.UdpInTraffic } return nil } func (x *MetricsInfo_NetInfo) GetUdpOutTraffic() *MetricsInfo_RateInfo { if x != nil { return x.UdpOutTraffic } return nil } func (x *MetricsInfo_NetInfo) GetLatency() *MetricsInfo_NetInfo_LatencyInfo { if x != nil { return x.Latency } return nil } type MetricsInfo_BlockChainInfo_Witness struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` Version int32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` } func (x *MetricsInfo_BlockChainInfo_Witness) Reset() { *x = MetricsInfo_BlockChainInfo_Witness{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MetricsInfo_BlockChainInfo_Witness) String() string { return protoimpl.X.MessageStringOf(x) } func (*MetricsInfo_BlockChainInfo_Witness) ProtoMessage() {} func (x *MetricsInfo_BlockChainInfo_Witness) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MetricsInfo_BlockChainInfo_Witness.ProtoReflect.Descriptor instead. func (*MetricsInfo_BlockChainInfo_Witness) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{41, 1, 0} } func (x *MetricsInfo_BlockChainInfo_Witness) GetAddress() string { if x != nil { return x.Address } return "" } func (x *MetricsInfo_BlockChainInfo_Witness) GetVersion() int32 { if x != nil { return x.Version } return 0 } type MetricsInfo_BlockChainInfo_DupWitness struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` BlockNum int64 `protobuf:"varint,2,opt,name=blockNum,proto3" json:"blockNum,omitempty"` Count int32 `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"` } func (x *MetricsInfo_BlockChainInfo_DupWitness) Reset() { *x = MetricsInfo_BlockChainInfo_DupWitness{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MetricsInfo_BlockChainInfo_DupWitness) String() string { return protoimpl.X.MessageStringOf(x) } func (*MetricsInfo_BlockChainInfo_DupWitness) ProtoMessage() {} func (x *MetricsInfo_BlockChainInfo_DupWitness) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MetricsInfo_BlockChainInfo_DupWitness.ProtoReflect.Descriptor instead. func (*MetricsInfo_BlockChainInfo_DupWitness) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{41, 1, 1} } func (x *MetricsInfo_BlockChainInfo_DupWitness) GetAddress() string { if x != nil { return x.Address } return "" } func (x *MetricsInfo_BlockChainInfo_DupWitness) GetBlockNum() int64 { if x != nil { return x.BlockNum } return 0 } func (x *MetricsInfo_BlockChainInfo_DupWitness) GetCount() int32 { if x != nil { return x.Count } return 0 } type MetricsInfo_NetInfo_ApiInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Qps *MetricsInfo_RateInfo `protobuf:"bytes,1,opt,name=qps,proto3" json:"qps,omitempty"` FailQps *MetricsInfo_RateInfo `protobuf:"bytes,2,opt,name=failQps,proto3" json:"failQps,omitempty"` OutTraffic *MetricsInfo_RateInfo `protobuf:"bytes,3,opt,name=outTraffic,proto3" json:"outTraffic,omitempty"` Detail []*MetricsInfo_NetInfo_ApiInfo_ApiDetailInfo `protobuf:"bytes,4,rep,name=detail,proto3" json:"detail,omitempty"` } func (x *MetricsInfo_NetInfo_ApiInfo) Reset() { *x = MetricsInfo_NetInfo_ApiInfo{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MetricsInfo_NetInfo_ApiInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*MetricsInfo_NetInfo_ApiInfo) ProtoMessage() {} func (x *MetricsInfo_NetInfo_ApiInfo) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MetricsInfo_NetInfo_ApiInfo.ProtoReflect.Descriptor instead. func (*MetricsInfo_NetInfo_ApiInfo) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{41, 3, 0} } func (x *MetricsInfo_NetInfo_ApiInfo) GetQps() *MetricsInfo_RateInfo { if x != nil { return x.Qps } return nil } func (x *MetricsInfo_NetInfo_ApiInfo) GetFailQps() *MetricsInfo_RateInfo { if x != nil { return x.FailQps } return nil } func (x *MetricsInfo_NetInfo_ApiInfo) GetOutTraffic() *MetricsInfo_RateInfo { if x != nil { return x.OutTraffic } return nil } func (x *MetricsInfo_NetInfo_ApiInfo) GetDetail() []*MetricsInfo_NetInfo_ApiInfo_ApiDetailInfo { if x != nil { return x.Detail } return nil } type MetricsInfo_NetInfo_DisconnectionDetailInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Reason string `protobuf:"bytes,1,opt,name=reason,proto3" json:"reason,omitempty"` Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` } func (x *MetricsInfo_NetInfo_DisconnectionDetailInfo) Reset() { *x = MetricsInfo_NetInfo_DisconnectionDetailInfo{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MetricsInfo_NetInfo_DisconnectionDetailInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*MetricsInfo_NetInfo_DisconnectionDetailInfo) ProtoMessage() {} func (x *MetricsInfo_NetInfo_DisconnectionDetailInfo) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MetricsInfo_NetInfo_DisconnectionDetailInfo.ProtoReflect.Descriptor instead. func (*MetricsInfo_NetInfo_DisconnectionDetailInfo) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{41, 3, 1} } func (x *MetricsInfo_NetInfo_DisconnectionDetailInfo) GetReason() string { if x != nil { return x.Reason } return "" } func (x *MetricsInfo_NetInfo_DisconnectionDetailInfo) GetCount() int32 { if x != nil { return x.Count } return 0 } type MetricsInfo_NetInfo_LatencyInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Top99 int32 `protobuf:"varint,1,opt,name=top99,proto3" json:"top99,omitempty"` Top95 int32 `protobuf:"varint,2,opt,name=top95,proto3" json:"top95,omitempty"` Top75 int32 `protobuf:"varint,3,opt,name=top75,proto3" json:"top75,omitempty"` TotalCount int32 `protobuf:"varint,4,opt,name=totalCount,proto3" json:"totalCount,omitempty"` Delay1S int32 `protobuf:"varint,5,opt,name=delay1S,proto3" json:"delay1S,omitempty"` Delay2S int32 `protobuf:"varint,6,opt,name=delay2S,proto3" json:"delay2S,omitempty"` Delay3S int32 `protobuf:"varint,7,opt,name=delay3S,proto3" json:"delay3S,omitempty"` Detail []*MetricsInfo_NetInfo_LatencyInfo_LatencyDetailInfo `protobuf:"bytes,8,rep,name=detail,proto3" json:"detail,omitempty"` } func (x *MetricsInfo_NetInfo_LatencyInfo) Reset() { *x = MetricsInfo_NetInfo_LatencyInfo{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MetricsInfo_NetInfo_LatencyInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*MetricsInfo_NetInfo_LatencyInfo) ProtoMessage() {} func (x *MetricsInfo_NetInfo_LatencyInfo) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MetricsInfo_NetInfo_LatencyInfo.ProtoReflect.Descriptor instead. func (*MetricsInfo_NetInfo_LatencyInfo) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{41, 3, 2} } func (x *MetricsInfo_NetInfo_LatencyInfo) GetTop99() int32 { if x != nil { return x.Top99 } return 0 } func (x *MetricsInfo_NetInfo_LatencyInfo) GetTop95() int32 { if x != nil { return x.Top95 } return 0 } func (x *MetricsInfo_NetInfo_LatencyInfo) GetTop75() int32 { if x != nil { return x.Top75 } return 0 } func (x *MetricsInfo_NetInfo_LatencyInfo) GetTotalCount() int32 { if x != nil { return x.TotalCount } return 0 } func (x *MetricsInfo_NetInfo_LatencyInfo) GetDelay1S() int32 { if x != nil { return x.Delay1S } return 0 } func (x *MetricsInfo_NetInfo_LatencyInfo) GetDelay2S() int32 { if x != nil { return x.Delay2S } return 0 } func (x *MetricsInfo_NetInfo_LatencyInfo) GetDelay3S() int32 { if x != nil { return x.Delay3S } return 0 } func (x *MetricsInfo_NetInfo_LatencyInfo) GetDetail() []*MetricsInfo_NetInfo_LatencyInfo_LatencyDetailInfo { if x != nil { return x.Detail } return nil } type MetricsInfo_NetInfo_ApiInfo_ApiDetailInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Qps *MetricsInfo_RateInfo `protobuf:"bytes,2,opt,name=qps,proto3" json:"qps,omitempty"` FailQps *MetricsInfo_RateInfo `protobuf:"bytes,3,opt,name=failQps,proto3" json:"failQps,omitempty"` OutTraffic *MetricsInfo_RateInfo `protobuf:"bytes,4,opt,name=outTraffic,proto3" json:"outTraffic,omitempty"` } func (x *MetricsInfo_NetInfo_ApiInfo_ApiDetailInfo) Reset() { *x = MetricsInfo_NetInfo_ApiInfo_ApiDetailInfo{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MetricsInfo_NetInfo_ApiInfo_ApiDetailInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*MetricsInfo_NetInfo_ApiInfo_ApiDetailInfo) ProtoMessage() {} func (x *MetricsInfo_NetInfo_ApiInfo_ApiDetailInfo) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MetricsInfo_NetInfo_ApiInfo_ApiDetailInfo.ProtoReflect.Descriptor instead. func (*MetricsInfo_NetInfo_ApiInfo_ApiDetailInfo) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{41, 3, 0, 0} } func (x *MetricsInfo_NetInfo_ApiInfo_ApiDetailInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *MetricsInfo_NetInfo_ApiInfo_ApiDetailInfo) GetQps() *MetricsInfo_RateInfo { if x != nil { return x.Qps } return nil } func (x *MetricsInfo_NetInfo_ApiInfo_ApiDetailInfo) GetFailQps() *MetricsInfo_RateInfo { if x != nil { return x.FailQps } return nil } func (x *MetricsInfo_NetInfo_ApiInfo_ApiDetailInfo) GetOutTraffic() *MetricsInfo_RateInfo { if x != nil { return x.OutTraffic } return nil } type MetricsInfo_NetInfo_LatencyInfo_LatencyDetailInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Witness string `protobuf:"bytes,1,opt,name=witness,proto3" json:"witness,omitempty"` Top99 int32 `protobuf:"varint,2,opt,name=top99,proto3" json:"top99,omitempty"` Top95 int32 `protobuf:"varint,3,opt,name=top95,proto3" json:"top95,omitempty"` Top75 int32 `protobuf:"varint,4,opt,name=top75,proto3" json:"top75,omitempty"` Count int32 `protobuf:"varint,5,opt,name=count,proto3" json:"count,omitempty"` Delay1S int32 `protobuf:"varint,6,opt,name=delay1S,proto3" json:"delay1S,omitempty"` Delay2S int32 `protobuf:"varint,7,opt,name=delay2S,proto3" json:"delay2S,omitempty"` Delay3S int32 `protobuf:"varint,8,opt,name=delay3S,proto3" json:"delay3S,omitempty"` } func (x *MetricsInfo_NetInfo_LatencyInfo_LatencyDetailInfo) Reset() { *x = MetricsInfo_NetInfo_LatencyInfo_LatencyDetailInfo{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MetricsInfo_NetInfo_LatencyInfo_LatencyDetailInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*MetricsInfo_NetInfo_LatencyInfo_LatencyDetailInfo) ProtoMessage() {} func (x *MetricsInfo_NetInfo_LatencyInfo_LatencyDetailInfo) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MetricsInfo_NetInfo_LatencyInfo_LatencyDetailInfo.ProtoReflect.Descriptor instead. func (*MetricsInfo_NetInfo_LatencyInfo_LatencyDetailInfo) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{41, 3, 2, 0} } func (x *MetricsInfo_NetInfo_LatencyInfo_LatencyDetailInfo) GetWitness() string { if x != nil { return x.Witness } return "" } func (x *MetricsInfo_NetInfo_LatencyInfo_LatencyDetailInfo) GetTop99() int32 { if x != nil { return x.Top99 } return 0 } func (x *MetricsInfo_NetInfo_LatencyInfo_LatencyDetailInfo) GetTop95() int32 { if x != nil { return x.Top95 } return 0 } func (x *MetricsInfo_NetInfo_LatencyInfo_LatencyDetailInfo) GetTop75() int32 { if x != nil { return x.Top75 } return 0 } func (x *MetricsInfo_NetInfo_LatencyInfo_LatencyDetailInfo) GetCount() int32 { if x != nil { return x.Count } return 0 } func (x *MetricsInfo_NetInfo_LatencyInfo_LatencyDetailInfo) GetDelay1S() int32 { if x != nil { return x.Delay1S } return 0 } func (x *MetricsInfo_NetInfo_LatencyInfo_LatencyDetailInfo) GetDelay2S() int32 { if x != nil { return x.Delay2S } return 0 } func (x *MetricsInfo_NetInfo_LatencyInfo_LatencyDetailInfo) GetDelay3S() int32 { if x != nil { return x.Delay3S } return 0 } type PBFTMessage_Raw struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MsgType PBFTMessage_MsgType `protobuf:"varint,1,opt,name=msg_type,json=msgType,proto3,enum=protocol.PBFTMessage_MsgType" json:"msg_type,omitempty"` DataType PBFTMessage_DataType `protobuf:"varint,2,opt,name=data_type,json=dataType,proto3,enum=protocol.PBFTMessage_DataType" json:"data_type,omitempty"` ViewN int64 `protobuf:"varint,3,opt,name=view_n,json=viewN,proto3" json:"view_n,omitempty"` Epoch int64 `protobuf:"varint,4,opt,name=epoch,proto3" json:"epoch,omitempty"` Data []byte `protobuf:"bytes,5,opt,name=data,proto3" json:"data,omitempty"` } func (x *PBFTMessage_Raw) Reset() { *x = PBFTMessage_Raw{} if protoimpl.UnsafeEnabled { mi := &file_core_Tron_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PBFTMessage_Raw) String() string { return protoimpl.X.MessageStringOf(x) } func (*PBFTMessage_Raw) ProtoMessage() {} func (x *PBFTMessage_Raw) ProtoReflect() protoreflect.Message { mi := &file_core_Tron_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PBFTMessage_Raw.ProtoReflect.Descriptor instead. func (*PBFTMessage_Raw) Descriptor() ([]byte, []int) { return file_core_Tron_proto_rawDescGZIP(), []int{42, 0} } func (x *PBFTMessage_Raw) GetMsgType() PBFTMessage_MsgType { if x != nil { return x.MsgType } return PBFTMessage_VIEW_CHANGE } func (x *PBFTMessage_Raw) GetDataType() PBFTMessage_DataType { if x != nil { return x.DataType } return PBFTMessage_BLOCK } func (x *PBFTMessage_Raw) GetViewN() int64 { if x != nil { return x.ViewN } return 0 } func (x *PBFTMessage_Raw) GetEpoch() int64 { if x != nil { return x.Epoch } return 0 } func (x *PBFTMessage_Raw) GetData() []byte { if x != nil { return x.Data } return nil } var File_core_Tron_proto protoreflect.FileDescriptor var file_core_Tron_proto_rawDesc = []byte{ 0x0a, 0x0f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x54, 0x72, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x39, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x48, 0x0a, 0x04, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x76, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x76, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb4, 0x03, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x42, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x41, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x49, 0x53, 0x41, 0x50, 0x50, 0x52, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, 0x52, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x22, 0xa5, 0x02, 0x0a, 0x08, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x66, 0x69, 0x72, 0x73, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x98, 0x04, 0x0a, 0x0b, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x65, 0x6c, 0x6c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x73, 0x65, 0x6c, 0x6c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x62, 0x75, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x62, 0x75, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x75, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x62, 0x75, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x1a, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x73, 0x65, 0x6c, 0x6c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x3b, 0x0a, 0x1a, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x73, 0x65, 0x6c, 0x6c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x12, 0x31, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x72, 0x65, 0x76, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x70, 0x72, 0x65, 0x76, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x22, 0x2f, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x22, 0x40, 0x0a, 0x0f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x22, 0x4e, 0x0a, 0x13, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x22, 0x57, 0x0a, 0x0f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x50, 0x61, 0x69, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x65, 0x6c, 0x6c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x62, 0x75, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x62, 0x75, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x22, 0x88, 0x01, 0x0a, 0x12, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x6b, 0x0a, 0x0b, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x73, 0x65, 0x6c, 0x6c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x75, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x62, 0x75, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0x86, 0x01, 0x0a, 0x0f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x65, 0x6c, 0x6c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x62, 0x75, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x62, 0x75, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x22, 0x3b, 0x0a, 0x11, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x9d, 0x01, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x50, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x1a, 0x38, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xca, 0x1e, 0x0a, 0x07, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x56, 0x32, 0x18, 0x38, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x56, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x56, 0x32, 0x12, 0x30, 0x0a, 0x06, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x52, 0x06, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x74, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x63, 0x0a, 0x2f, 0x61, 0x63, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x29, 0x20, 0x01, 0x28, 0x03, 0x52, 0x2a, 0x61, 0x63, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x52, 0x0a, 0x26, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x22, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x72, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6f, 0x6c, 0x64, 0x54, 0x72, 0x6f, 0x6e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x0a, 0x74, 0x72, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x52, 0x09, 0x74, 0x72, 0x6f, 0x6e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6f, 0x70, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x70, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x12, 0x3d, 0x0a, 0x0d, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x64, 0x5f, 0x49, 0x44, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x64, 0x49, 0x44, 0x12, 0x6e, 0x0a, 0x1b, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x18, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x74, 0x0a, 0x1d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x32, 0x18, 0x3a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x1a, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x32, 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x66, 0x72, 0x65, 0x65, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x46, 0x72, 0x65, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x66, 0x72, 0x65, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5f, 0x0a, 0x16, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x56, 0x32, 0x18, 0x3b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x46, 0x72, 0x65, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x56, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x66, 0x72, 0x65, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x56, 0x32, 0x12, 0x2e, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x5f, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x65, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6e, 0x65, 0x74, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6e, 0x65, 0x74, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x73, 0x68, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3f, 0x0a, 0x10, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x12, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x08, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x56, 0x32, 0x18, 0x22, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x56, 0x32, 0x52, 0x08, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x56, 0x32, 0x12, 0x3c, 0x0a, 0x0a, 0x75, 0x6e, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x56, 0x32, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x55, 0x6e, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x56, 0x32, 0x52, 0x0a, 0x75, 0x6e, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x56, 0x32, 0x12, 0x56, 0x0a, 0x28, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x56, 0x32, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x24, 0x20, 0x01, 0x28, 0x03, 0x52, 0x24, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x56, 0x32, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x67, 0x0a, 0x31, 0x61, 0x63, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x56, 0x32, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x25, 0x20, 0x01, 0x28, 0x03, 0x52, 0x2c, 0x61, 0x63, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x56, 0x32, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x1a, 0x50, 0x0a, 0x06, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x73, 0x73, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, 0x41, 0x73, 0x73, 0x65, 0x74, 0x56, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4b, 0x0a, 0x1d, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4d, 0x0a, 0x1f, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x46, 0x72, 0x65, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x46, 0x72, 0x65, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x56, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xa0, 0x06, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x53, 0x0a, 0x19, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x52, 0x16, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x42, 0x0a, 0x1e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1a, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x5d, 0x0a, 0x2c, 0x61, 0x63, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x27, 0x61, 0x63, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x4c, 0x0a, 0x23, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x50, 0x0a, 0x25, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x56, 0x32, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x21, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x56, 0x32, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x61, 0x0a, 0x2e, 0x61, 0x63, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x56, 0x32, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x29, 0x61, 0x63, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x56, 0x32, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x36, 0x0a, 0x17, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x1a, 0x4e, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x56, 0x32, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x93, 0x01, 0x0a, 0x0a, 0x55, 0x6e, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x56, 0x32, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x75, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x75, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x75, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x37, 0x0a, 0x03, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xa3, 0x02, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x3f, 0x0a, 0x1c, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x39, 0x0a, 0x19, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x39, 0x0a, 0x19, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x16, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x22, 0x63, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x2d, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xb2, 0x02, 0x0a, 0x0a, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x34, 0x0a, 0x0e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x02, 0x22, 0x99, 0x02, 0x0a, 0x07, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x76, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x53, 0x6c, 0x6f, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x53, 0x6c, 0x6f, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x4a, 0x6f, 0x62, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4a, 0x6f, 0x62, 0x73, 0x22, 0x7b, 0x0a, 0x05, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2b, 0x0a, 0x09, 0x6f, 0x6c, 0x64, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x08, 0x6f, 0x6c, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x22, 0x40, 0x0a, 0x08, 0x54, 0x58, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x48, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x48, 0x61, 0x73, 0x68, 0x22, 0xa0, 0x01, 0x0a, 0x07, 0x54, 0x58, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x30, 0x0a, 0x08, 0x72, 0x61, 0x77, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x58, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x72, 0x61, 0x77, 0x52, 0x07, 0x72, 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x1a, 0x45, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x76, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x76, 0x6f, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x22, 0x39, 0x0a, 0x09, 0x54, 0x58, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x58, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x22, 0xde, 0x02, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x46, 0x65, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x74, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x65, 0x74, 0x46, 0x65, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xb1, 0x01, 0x0a, 0x11, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, 0x6b, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x74, 0x61, 0x6b, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x66, 0x69, 0x6c, 0x6c, 0x53, 0x65, 0x6c, 0x6c, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x66, 0x69, 0x6c, 0x6c, 0x53, 0x65, 0x6c, 0x6c, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x6c, 0x42, 0x75, 0x79, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x66, 0x69, 0x6c, 0x6c, 0x42, 0x75, 0x79, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0xdd, 0x18, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x08, 0x72, 0x61, 0x77, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x72, 0x61, 0x77, 0x52, 0x07, 0x72, 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x2e, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x03, 0x72, 0x65, 0x74, 0x1a, 0xef, 0x0a, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x88, 0x09, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x56, 0x6f, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x08, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x09, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x0a, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x0b, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x0d, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x0e, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x0f, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x10, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x11, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x12, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x13, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x14, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x1e, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x1f, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x20, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x21, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x29, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x2a, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x2b, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x2c, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x2d, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x2e, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x41, 0x42, 0x49, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x30, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x31, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x33, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x34, 0x12, 0x1d, 0x0a, 0x19, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x35, 0x12, 0x1b, 0x0a, 0x17, 0x46, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x32, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x36, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x32, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x37, 0x12, 0x22, 0x0a, 0x1e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x38, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x39, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x3a, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x6c, 0x6c, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x56, 0x32, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x3b, 0x1a, 0xed, 0x09, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x33, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x03, 0x72, 0x65, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x49, 0x44, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x49, 0x44, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x75, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x18, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x1e, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1b, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x20, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x61, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x72, 0x0a, 0x18, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x5f, 0x75, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x56, 0x32, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x56, 0x32, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x56, 0x32, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x49, 0x0a, 0x1b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x56, 0x32, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x55, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x22, 0xc3, 0x02, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x56, 0x45, 0x52, 0x54, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x42, 0x41, 0x44, 0x5f, 0x4a, 0x55, 0x4d, 0x50, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x4d, 0x45, 0x4d, 0x4f, 0x52, 0x59, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x52, 0x45, 0x43, 0x4f, 0x4d, 0x50, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x41, 0x43, 0x54, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x43, 0x4b, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x53, 0x4d, 0x41, 0x4c, 0x4c, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x43, 0x4b, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x41, 0x52, 0x47, 0x45, 0x10, 0x07, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x4c, 0x4c, 0x45, 0x47, 0x41, 0x4c, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x43, 0x4b, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x45, 0x4e, 0x45, 0x52, 0x47, 0x59, 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x0b, 0x12, 0x17, 0x0a, 0x13, 0x4a, 0x56, 0x4d, 0x5f, 0x53, 0x54, 0x41, 0x43, 0x4b, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x0c, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x45, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x0e, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x0f, 0x1a, 0xe7, 0x02, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x65, 0x66, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x66, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x65, 0x66, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x72, 0x65, 0x66, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x05, 0x61, 0x75, 0x74, 0x68, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x05, 0x61, 0x75, 0x74, 0x68, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x65, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xd5, 0x0a, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x52, 0x07, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x2f, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x36, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x49, 0x44, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x49, 0x44, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x75, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x15, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x1e, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1b, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x20, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x61, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x6f, 0x0a, 0x18, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x5f, 0x75, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x56, 0x32, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x56, 0x32, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x56, 0x32, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x4b, 0x0a, 0x03, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x49, 0x0a, 0x1b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x6e, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x56, 0x32, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1e, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x55, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x22, 0x9f, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x43, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x49, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xfc, 0x02, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x08, 0x72, 0x61, 0x77, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x72, 0x61, 0x77, 0x52, 0x07, 0x72, 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x11, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x1a, 0x89, 0x02, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x78, 0x54, 0x72, 0x69, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x74, 0x78, 0x54, 0x72, 0x69, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x22, 0x7c, 0x0a, 0x05, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x39, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x9a, 0x01, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x32, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x52, 0x03, 0x69, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x1a, 0x35, 0x0a, 0x07, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xd8, 0x01, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x32, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x52, 0x03, 0x69, 0x64, 0x73, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x35, 0x0a, 0x07, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x28, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x59, 0x4e, 0x43, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x44, 0x56, 0x54, 0x49, 0x53, 0x45, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x45, 0x54, 0x43, 0x48, 0x10, 0x02, 0x22, 0x79, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x23, 0x0a, 0x0d, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x52, 0x58, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x01, 0x22, 0x8f, 0x02, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x3a, 0x0a, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x38, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x45, 0x52, 0x52, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x52, 0x58, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x10, 0x03, 0x22, 0x4a, 0x0a, 0x11, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x22, 0x41, 0x0a, 0x11, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xef, 0x03, 0x0a, 0x0c, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x46, 0x0a, 0x0e, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x52, 0x0e, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0c, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x52, 0x0c, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x6f, 0x77, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x6f, 0x77, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x1a, 0x35, 0x0a, 0x07, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xe1, 0x02, 0x0a, 0x13, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x51, 0x0a, 0x0d, 0x63, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x63, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x1a, 0x47, 0x0a, 0x0d, 0x43, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x22, 0x9b, 0x01, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0a, 0x74, 0x6f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xbd, 0x1a, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x3f, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x40, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5d, 0x0a, 0x13, 0x63, 0x68, 0x65, 0x61, 0x74, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x61, 0x70, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x65, 0x61, 0x74, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x63, 0x68, 0x65, 0x61, 0x74, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x61, 0x70, 0x1a, 0x46, 0x0a, 0x18, 0x43, 0x68, 0x65, 0x61, 0x74, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xc8, 0x07, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x12, 0x30, 0x0a, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x38, 0x0a, 0x17, 0x68, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x65, 0x42, 0x6f, 0x74, 0x68, 0x48, 0x61, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x68, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x65, 0x42, 0x6f, 0x74, 0x68, 0x48, 0x61, 0x76, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x65, 0x65, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6e, 0x65, 0x65, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x6e, 0x65, 0x65, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6e, 0x65, 0x65, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x76, 0x67, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x61, 0x76, 0x67, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x54, 0x6f, 0x46, 0x65, 0x74, 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x54, 0x6f, 0x46, 0x65, 0x74, 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x73, 0x79, 0x6e, 0x63, 0x54, 0x6f, 0x46, 0x65, 0x74, 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x50, 0x65, 0x65, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x73, 0x79, 0x6e, 0x63, 0x54, 0x6f, 0x46, 0x65, 0x74, 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x50, 0x65, 0x65, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x36, 0x0a, 0x16, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x73, 0x79, 0x6e, 0x63, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x75, 0x6e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x53, 0x79, 0x6e, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x75, 0x6e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x53, 0x79, 0x6e, 0x4e, 0x75, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x50, 0x6f, 0x72, 0x63, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x50, 0x6f, 0x72, 0x63, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x68, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x65, 0x42, 0x6f, 0x74, 0x68, 0x48, 0x61, 0x76, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x68, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x65, 0x42, 0x6f, 0x74, 0x68, 0x48, 0x61, 0x76, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x69, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x15, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x16, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x1a, 0xa2, 0x06, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x32, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x32, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x73, 0x61, 0x6d, 0x65, 0x49, 0x70, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x73, 0x61, 0x6d, 0x65, 0x49, 0x70, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x62, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x64, 0x62, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x14, 0x6d, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x6d, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x3a, 0x0a, 0x18, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x64, 0x61, 0x70, 0x74, 0x69, 0x76, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x64, 0x61, 0x70, 0x74, 0x69, 0x76, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x1a, 0xb9, 0x07, 0x0a, 0x0b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x65, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x64, 0x65, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x70, 0x75, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x70, 0x75, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x65, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x72, 0x65, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x70, 0x75, 0x52, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x63, 0x70, 0x75, 0x52, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6a, 0x76, 0x6d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6a, 0x76, 0x6d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x6a, 0x76, 0x6d, 0x46, 0x72, 0x65, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6a, 0x76, 0x6d, 0x46, 0x72, 0x65, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x70, 0x75, 0x52, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x70, 0x75, 0x52, 0x61, 0x74, 0x65, 0x12, 0x5d, 0x0a, 0x12, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x73, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x73, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x73, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x69, 0x0a, 0x16, 0x64, 0x65, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x16, 0x64, 0x65, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x8e, 0x01, 0x0a, 0x0e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x73, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x69, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x69, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x75, 0x73, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x75, 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x1a, 0xd2, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x6b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x77, 0x61, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x22, 0xc0, 0x18, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x2f, 0x0a, 0x03, 0x6e, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4e, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x6e, 0x65, 0x74, 0x1a, 0x74, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0xee, 0x06, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x2e, 0x0a, 0x12, 0x68, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x68, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x10, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x03, 0x74, 0x70, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x74, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x4c, 0x0a, 0x11, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x09, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x66, 0x61, 0x69, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x66, 0x61, 0x69, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x36, 0x0a, 0x16, 0x66, 0x61, 0x69, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x66, 0x61, 0x69, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x0a, 0x64, 0x75, 0x70, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x75, 0x70, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x0a, 0x64, 0x75, 0x70, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x1a, 0x3d, 0x0a, 0x07, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x58, 0x0a, 0x0a, 0x44, 0x75, 0x70, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xb8, 0x01, 0x0a, 0x08, 0x52, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x61, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x61, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x6e, 0x65, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x6f, 0x6e, 0x65, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x66, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x66, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x66, 0x69, 0x66, 0x74, 0x65, 0x65, 0x6e, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x66, 0x69, 0x66, 0x74, 0x65, 0x65, 0x6e, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x52, 0x61, 0x74, 0x65, 0x1a, 0xc7, 0x0d, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4e, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x14, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0c, 0x74, 0x63, 0x70, 0x49, 0x6e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x74, 0x63, 0x70, 0x49, 0x6e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x12, 0x44, 0x0a, 0x0d, 0x74, 0x63, 0x70, 0x4f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x74, 0x63, 0x70, 0x4f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x67, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4e, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x13, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x42, 0x0a, 0x0c, 0x75, 0x64, 0x70, 0x49, 0x6e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x75, 0x64, 0x70, 0x49, 0x6e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x12, 0x44, 0x0a, 0x0d, 0x75, 0x64, 0x70, 0x4f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x75, 0x64, 0x70, 0x4f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x12, 0x43, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4e, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0xd4, 0x03, 0x0a, 0x07, 0x41, 0x70, 0x69, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x03, 0x71, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x71, 0x70, 0x73, 0x12, 0x38, 0x0a, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x51, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x51, 0x70, 0x73, 0x12, 0x3e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x12, 0x4b, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4e, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x70, 0x69, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x1a, 0xcf, 0x01, 0x0a, 0x0d, 0x41, 0x70, 0x69, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x03, 0x71, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x71, 0x70, 0x73, 0x12, 0x38, 0x0a, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x51, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x51, 0x70, 0x73, 0x12, 0x3e, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x1a, 0x47, 0x0a, 0x17, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xe8, 0x03, 0x0a, 0x0b, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x39, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x39, 0x39, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x39, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x39, 0x35, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x37, 0x35, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x37, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x31, 0x53, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x31, 0x53, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x32, 0x53, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x32, 0x53, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x33, 0x53, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x33, 0x53, 0x12, 0x53, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4e, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x1a, 0xd3, 0x01, 0x0a, 0x11, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x39, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x39, 0x39, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x39, 0x35, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x39, 0x35, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x37, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x37, 0x35, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x31, 0x53, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x31, 0x53, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x32, 0x53, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x32, 0x53, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x33, 0x53, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x33, 0x53, 0x22, 0x93, 0x03, 0x0a, 0x0b, 0x50, 0x42, 0x46, 0x54, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a, 0x08, 0x72, 0x61, 0x77, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x42, 0x46, 0x54, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x61, 0x77, 0x52, 0x07, 0x72, 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x1a, 0xbd, 0x01, 0x0a, 0x03, 0x52, 0x61, 0x77, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x42, 0x46, 0x54, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x42, 0x46, 0x54, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x69, 0x65, 0x77, 0x4e, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x50, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x52, 0x45, 0x50, 0x52, 0x45, 0x50, 0x41, 0x52, 0x45, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x45, 0x50, 0x41, 0x52, 0x45, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x10, 0x04, 0x22, 0x1e, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x52, 0x4c, 0x10, 0x01, 0x22, 0x44, 0x0a, 0x10, 0x50, 0x42, 0x46, 0x54, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x23, 0x0a, 0x03, 0x53, 0x52, 0x4c, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2a, 0x37, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x10, 0x02, 0x2a, 0x9f, 0x04, 0x0a, 0x0a, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x42, 0x41, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x4f, 0x4f, 0x5f, 0x4d, 0x41, 0x4e, 0x59, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x53, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x05, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x54, 0x49, 0x42, 0x4c, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x06, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x5f, 0x45, 0x4c, 0x49, 0x4d, 0x49, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x45, 0x45, 0x52, 0x5f, 0x51, 0x55, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x4e, 0x45, 0x58, 0x50, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x0b, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x10, 0x10, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x53, 0x45, 0x54, 0x10, 0x11, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x12, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x45, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x13, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x41, 0x44, 0x5f, 0x54, 0x58, 0x10, 0x14, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x44, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x15, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x4f, 0x52, 0x4b, 0x45, 0x44, 0x10, 0x16, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x4c, 0x49, 0x4e, 0x4b, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x17, 0x12, 0x18, 0x0a, 0x14, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x54, 0x49, 0x42, 0x4c, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x18, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x54, 0x49, 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x10, 0x19, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x4f, 0x55, 0x54, 0x10, 0x20, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x21, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x4f, 0x4f, 0x5f, 0x4d, 0x41, 0x4e, 0x59, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x53, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x53, 0x41, 0x4d, 0x45, 0x5f, 0x49, 0x50, 0x10, 0x22, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x23, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x45, 0x4c, 0x4f, 0x57, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x5f, 0x4d, 0x45, 0x10, 0x24, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f, 0x54, 0x5f, 0x57, 0x49, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x10, 0x25, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x5f, 0x53, 0x55, 0x43, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x26, 0x12, 0x0c, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0xff, 0x01, 0x42, 0x46, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x2e, 0x74, 0x72, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x42, 0x08, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5a, 0x29, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x72, 0x6f, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_core_Tron_proto_rawDescOnce sync.Once file_core_Tron_proto_rawDescData = file_core_Tron_proto_rawDesc ) func file_core_Tron_proto_rawDescGZIP() []byte { file_core_Tron_proto_rawDescOnce.Do(func() { file_core_Tron_proto_rawDescData = protoimpl.X.CompressGZIP(file_core_Tron_proto_rawDescData) }) return file_core_Tron_proto_rawDescData } var file_core_Tron_proto_enumTypes = make([]protoimpl.EnumInfo, 14) var file_core_Tron_proto_msgTypes = make([]protoimpl.MessageInfo, 87) var file_core_Tron_proto_goTypes = []interface{}{ (AccountType)(0), // 0: protocol.AccountType (ReasonCode)(0), // 1: protocol.ReasonCode (Proposal_State)(0), // 2: protocol.Proposal.State (MarketOrder_State)(0), // 3: protocol.MarketOrder.State (Permission_PermissionType)(0), // 4: protocol.Permission.PermissionType (Transaction_Contract_ContractType)(0), // 5: protocol.Transaction.Contract.ContractType (Transaction_ResultCode)(0), // 6: protocol.Transaction.Result.code (Transaction_ResultContractResult)(0), // 7: protocol.Transaction.Result.contractResult (TransactionInfoCode)(0), // 8: protocol.TransactionInfo.code (BlockInventory_Type)(0), // 9: protocol.BlockInventory.Type (Inventory_InventoryType)(0), // 10: protocol.Inventory.InventoryType (Items_ItemType)(0), // 11: protocol.Items.ItemType (PBFTMessage_MsgType)(0), // 12: protocol.PBFTMessage.MsgType (PBFTMessage_DataType)(0), // 13: protocol.PBFTMessage.DataType (*AccountId)(nil), // 14: protocol.AccountId (*Vote)(nil), // 15: protocol.Vote (*Proposal)(nil), // 16: protocol.Proposal (*Exchange)(nil), // 17: protocol.Exchange (*MarketOrder)(nil), // 18: protocol.MarketOrder (*MarketOrderList)(nil), // 19: protocol.MarketOrderList (*MarketOrderPairList)(nil), // 20: protocol.MarketOrderPairList (*MarketOrderPair)(nil), // 21: protocol.MarketOrderPair (*MarketAccountOrder)(nil), // 22: protocol.MarketAccountOrder (*MarketPrice)(nil), // 23: protocol.MarketPrice (*MarketPriceList)(nil), // 24: protocol.MarketPriceList (*MarketOrderIdList)(nil), // 25: protocol.MarketOrderIdList (*ChainParameters)(nil), // 26: protocol.ChainParameters (*Account)(nil), // 27: protocol.Account (*Key)(nil), // 28: protocol.Key (*DelegatedResource)(nil), // 29: protocol.DelegatedResource (*Authority)(nil), // 30: protocol.authority (*Permission)(nil), // 31: protocol.Permission (*Witness)(nil), // 32: protocol.Witness (*Votes)(nil), // 33: protocol.Votes (*TXOutput)(nil), // 34: protocol.TXOutput (*TXInput)(nil), // 35: protocol.TXInput (*TXOutputs)(nil), // 36: protocol.TXOutputs (*ResourceReceipt)(nil), // 37: protocol.ResourceReceipt (*MarketOrderDetail)(nil), // 38: protocol.MarketOrderDetail (*Transaction)(nil), // 39: protocol.Transaction (*TransactionInfo)(nil), // 40: protocol.TransactionInfo (*TransactionRet)(nil), // 41: protocol.TransactionRet (*Transactions)(nil), // 42: protocol.Transactions (*BlockHeader)(nil), // 43: protocol.BlockHeader (*Block)(nil), // 44: protocol.Block (*ChainInventory)(nil), // 45: protocol.ChainInventory (*BlockInventory)(nil), // 46: protocol.BlockInventory (*Inventory)(nil), // 47: protocol.Inventory (*Items)(nil), // 48: protocol.Items (*DynamicProperties)(nil), // 49: protocol.DynamicProperties (*DisconnectMessage)(nil), // 50: protocol.DisconnectMessage (*HelloMessage)(nil), // 51: protocol.HelloMessage (*InternalTransaction)(nil), // 52: protocol.InternalTransaction (*DelegatedResourceAccountIndex)(nil), // 53: protocol.DelegatedResourceAccountIndex (*NodeInfo)(nil), // 54: protocol.NodeInfo (*MetricsInfo)(nil), // 55: protocol.MetricsInfo (*PBFTMessage)(nil), // 56: protocol.PBFTMessage (*PBFTCommitResult)(nil), // 57: protocol.PBFTCommitResult (*SRL)(nil), // 58: protocol.SRL nil, // 59: protocol.Proposal.ParametersEntry (*ChainParameters_ChainParameter)(nil), // 60: protocol.ChainParameters.ChainParameter (*Account_Frozen)(nil), // 61: protocol.Account.Frozen nil, // 62: protocol.Account.AssetEntry nil, // 63: protocol.Account.AssetV2Entry nil, // 64: protocol.Account.LatestAssetOperationTimeEntry nil, // 65: protocol.Account.LatestAssetOperationTimeV2Entry nil, // 66: protocol.Account.FreeAssetNetUsageEntry nil, // 67: protocol.Account.FreeAssetNetUsageV2Entry (*Account_AccountResource)(nil), // 68: protocol.Account.AccountResource (*Account_FreezeV2)(nil), // 69: protocol.Account.FreezeV2 (*Account_UnFreezeV2)(nil), // 70: protocol.Account.UnFreezeV2 (*TXInputRaw)(nil), // 71: protocol.TXInput.raw (*Transaction_Contract)(nil), // 72: protocol.Transaction.Contract (*Transaction_Result)(nil), // 73: protocol.Transaction.Result (*TransactionRaw)(nil), // 74: protocol.Transaction.raw nil, // 75: protocol.Transaction.Result.CancelUnfreezeV2AmountEntry (*TransactionInfo_Log)(nil), // 76: protocol.TransactionInfo.Log nil, // 77: protocol.TransactionInfo.CancelUnfreezeV2AmountEntry (*BlockHeaderRaw)(nil), // 78: protocol.BlockHeader.raw (*ChainInventory_BlockId)(nil), // 79: protocol.ChainInventory.BlockId (*BlockInventory_BlockId)(nil), // 80: protocol.BlockInventory.BlockId (*HelloMessage_BlockId)(nil), // 81: protocol.HelloMessage.BlockId (*InternalTransaction_CallValueInfo)(nil), // 82: protocol.InternalTransaction.CallValueInfo nil, // 83: protocol.NodeInfo.CheatWitnessInfoMapEntry (*NodeInfo_PeerInfo)(nil), // 84: protocol.NodeInfo.PeerInfo (*NodeInfo_ConfigNodeInfo)(nil), // 85: protocol.NodeInfo.ConfigNodeInfo (*NodeInfo_MachineInfo)(nil), // 86: protocol.NodeInfo.MachineInfo (*NodeInfo_MachineInfo_MemoryDescInfo)(nil), // 87: protocol.NodeInfo.MachineInfo.MemoryDescInfo (*NodeInfo_MachineInfo_DeadLockThreadInfo)(nil), // 88: protocol.NodeInfo.MachineInfo.DeadLockThreadInfo (*MetricsInfo_NodeInfo)(nil), // 89: protocol.MetricsInfo.NodeInfo (*MetricsInfo_BlockChainInfo)(nil), // 90: protocol.MetricsInfo.BlockChainInfo (*MetricsInfo_RateInfo)(nil), // 91: protocol.MetricsInfo.RateInfo (*MetricsInfo_NetInfo)(nil), // 92: protocol.MetricsInfo.NetInfo (*MetricsInfo_BlockChainInfo_Witness)(nil), // 93: protocol.MetricsInfo.BlockChainInfo.Witness (*MetricsInfo_BlockChainInfo_DupWitness)(nil), // 94: protocol.MetricsInfo.BlockChainInfo.DupWitness (*MetricsInfo_NetInfo_ApiInfo)(nil), // 95: protocol.MetricsInfo.NetInfo.ApiInfo (*MetricsInfo_NetInfo_DisconnectionDetailInfo)(nil), // 96: protocol.MetricsInfo.NetInfo.DisconnectionDetailInfo (*MetricsInfo_NetInfo_LatencyInfo)(nil), // 97: protocol.MetricsInfo.NetInfo.LatencyInfo (*MetricsInfo_NetInfo_ApiInfo_ApiDetailInfo)(nil), // 98: protocol.MetricsInfo.NetInfo.ApiInfo.ApiDetailInfo (*MetricsInfo_NetInfo_LatencyInfo_LatencyDetailInfo)(nil), // 99: protocol.MetricsInfo.NetInfo.LatencyInfo.LatencyDetailInfo (*PBFTMessage_Raw)(nil), // 100: protocol.PBFTMessage.Raw (*Endpoint)(nil), // 101: protocol.Endpoint (ResourceCode)(0), // 102: protocol.ResourceCode (*anypb.Any)(nil), // 103: google.protobuf.Any } var file_core_Tron_proto_depIdxs = []int32{ 59, // 0: protocol.Proposal.parameters:type_name -> protocol.Proposal.ParametersEntry 2, // 1: protocol.Proposal.state:type_name -> protocol.Proposal.State 3, // 2: protocol.MarketOrder.state:type_name -> protocol.MarketOrder.State 18, // 3: protocol.MarketOrderList.orders:type_name -> protocol.MarketOrder 21, // 4: protocol.MarketOrderPairList.orderPair:type_name -> protocol.MarketOrderPair 23, // 5: protocol.MarketPriceList.prices:type_name -> protocol.MarketPrice 60, // 6: protocol.ChainParameters.chainParameter:type_name -> protocol.ChainParameters.ChainParameter 0, // 7: protocol.Account.type:type_name -> protocol.AccountType 15, // 8: protocol.Account.votes:type_name -> protocol.Vote 62, // 9: protocol.Account.asset:type_name -> protocol.Account.AssetEntry 63, // 10: protocol.Account.assetV2:type_name -> protocol.Account.AssetV2Entry 61, // 11: protocol.Account.frozen:type_name -> protocol.Account.Frozen 61, // 12: protocol.Account.tron_power:type_name -> protocol.Account.Frozen 61, // 13: protocol.Account.frozen_supply:type_name -> protocol.Account.Frozen 64, // 14: protocol.Account.latest_asset_operation_time:type_name -> protocol.Account.LatestAssetOperationTimeEntry 65, // 15: protocol.Account.latest_asset_operation_timeV2:type_name -> protocol.Account.LatestAssetOperationTimeV2Entry 66, // 16: protocol.Account.free_asset_net_usage:type_name -> protocol.Account.FreeAssetNetUsageEntry 67, // 17: protocol.Account.free_asset_net_usageV2:type_name -> protocol.Account.FreeAssetNetUsageV2Entry 68, // 18: protocol.Account.account_resource:type_name -> protocol.Account.AccountResource 31, // 19: protocol.Account.owner_permission:type_name -> protocol.Permission 31, // 20: protocol.Account.witness_permission:type_name -> protocol.Permission 31, // 21: protocol.Account.active_permission:type_name -> protocol.Permission 69, // 22: protocol.Account.frozenV2:type_name -> protocol.Account.FreezeV2 70, // 23: protocol.Account.unfrozenV2:type_name -> protocol.Account.UnFreezeV2 14, // 24: protocol.authority.account:type_name -> protocol.AccountId 4, // 25: protocol.Permission.type:type_name -> protocol.Permission.PermissionType 28, // 26: protocol.Permission.keys:type_name -> protocol.Key 15, // 27: protocol.Votes.old_votes:type_name -> protocol.Vote 15, // 28: protocol.Votes.new_votes:type_name -> protocol.Vote 71, // 29: protocol.TXInput.raw_data:type_name -> protocol.TXInput.raw 34, // 30: protocol.TXOutputs.outputs:type_name -> protocol.TXOutput 7, // 31: protocol.ResourceReceipt.result:type_name -> protocol.Transaction.Result.contractResult 74, // 32: protocol.Transaction.raw_data:type_name -> protocol.Transaction.raw 73, // 33: protocol.Transaction.ret:type_name -> protocol.Transaction.Result 37, // 34: protocol.TransactionInfo.receipt:type_name -> protocol.ResourceReceipt 76, // 35: protocol.TransactionInfo.log:type_name -> protocol.TransactionInfo.Log 8, // 36: protocol.TransactionInfo.result:type_name -> protocol.TransactionInfo.code 52, // 37: protocol.TransactionInfo.internal_transactions:type_name -> protocol.InternalTransaction 38, // 38: protocol.TransactionInfo.orderDetails:type_name -> protocol.MarketOrderDetail 77, // 39: protocol.TransactionInfo.cancel_unfreezeV2_amount:type_name -> protocol.TransactionInfo.CancelUnfreezeV2AmountEntry 40, // 40: protocol.TransactionRet.transactioninfo:type_name -> protocol.TransactionInfo 39, // 41: protocol.Transactions.transactions:type_name -> protocol.Transaction 78, // 42: protocol.BlockHeader.raw_data:type_name -> protocol.BlockHeader.raw 39, // 43: protocol.Block.transactions:type_name -> protocol.Transaction 43, // 44: protocol.Block.block_header:type_name -> protocol.BlockHeader 79, // 45: protocol.ChainInventory.ids:type_name -> protocol.ChainInventory.BlockId 80, // 46: protocol.BlockInventory.ids:type_name -> protocol.BlockInventory.BlockId 9, // 47: protocol.BlockInventory.type:type_name -> protocol.BlockInventory.Type 10, // 48: protocol.Inventory.type:type_name -> protocol.Inventory.InventoryType 11, // 49: protocol.Items.type:type_name -> protocol.Items.ItemType 44, // 50: protocol.Items.blocks:type_name -> protocol.Block 43, // 51: protocol.Items.block_headers:type_name -> protocol.BlockHeader 39, // 52: protocol.Items.transactions:type_name -> protocol.Transaction 1, // 53: protocol.DisconnectMessage.reason:type_name -> protocol.ReasonCode 101, // 54: protocol.HelloMessage.from:type_name -> protocol.Endpoint 81, // 55: protocol.HelloMessage.genesisBlockId:type_name -> protocol.HelloMessage.BlockId 81, // 56: protocol.HelloMessage.solidBlockId:type_name -> protocol.HelloMessage.BlockId 81, // 57: protocol.HelloMessage.headBlockId:type_name -> protocol.HelloMessage.BlockId 82, // 58: protocol.InternalTransaction.callValueInfo:type_name -> protocol.InternalTransaction.CallValueInfo 84, // 59: protocol.NodeInfo.peerInfoList:type_name -> protocol.NodeInfo.PeerInfo 85, // 60: protocol.NodeInfo.configNodeInfo:type_name -> protocol.NodeInfo.ConfigNodeInfo 86, // 61: protocol.NodeInfo.machineInfo:type_name -> protocol.NodeInfo.MachineInfo 83, // 62: protocol.NodeInfo.cheatWitnessInfoMap:type_name -> protocol.NodeInfo.CheatWitnessInfoMapEntry 89, // 63: protocol.MetricsInfo.node:type_name -> protocol.MetricsInfo.NodeInfo 90, // 64: protocol.MetricsInfo.blockchain:type_name -> protocol.MetricsInfo.BlockChainInfo 92, // 65: protocol.MetricsInfo.net:type_name -> protocol.MetricsInfo.NetInfo 100, // 66: protocol.PBFTMessage.raw_data:type_name -> protocol.PBFTMessage.Raw 61, // 67: protocol.Account.AccountResource.frozen_balance_for_energy:type_name -> protocol.Account.Frozen 102, // 68: protocol.Account.FreezeV2.type:type_name -> protocol.ResourceCode 102, // 69: protocol.Account.UnFreezeV2.type:type_name -> protocol.ResourceCode 5, // 70: protocol.Transaction.Contract.type:type_name -> protocol.Transaction.Contract.ContractType 103, // 71: protocol.Transaction.Contract.parameter:type_name -> google.protobuf.Any 6, // 72: protocol.Transaction.Result.ret:type_name -> protocol.Transaction.Result.code 7, // 73: protocol.Transaction.Result.contractRet:type_name -> protocol.Transaction.Result.contractResult 38, // 74: protocol.Transaction.Result.orderDetails:type_name -> protocol.MarketOrderDetail 75, // 75: protocol.Transaction.Result.cancel_unfreezeV2_amount:type_name -> protocol.Transaction.Result.CancelUnfreezeV2AmountEntry 30, // 76: protocol.Transaction.raw.auths:type_name -> protocol.authority 72, // 77: protocol.Transaction.raw.contract:type_name -> protocol.Transaction.Contract 87, // 78: protocol.NodeInfo.MachineInfo.memoryDescInfoList:type_name -> protocol.NodeInfo.MachineInfo.MemoryDescInfo 88, // 79: protocol.NodeInfo.MachineInfo.deadLockThreadInfoList:type_name -> protocol.NodeInfo.MachineInfo.DeadLockThreadInfo 91, // 80: protocol.MetricsInfo.BlockChainInfo.blockProcessTime:type_name -> protocol.MetricsInfo.RateInfo 91, // 81: protocol.MetricsInfo.BlockChainInfo.tps:type_name -> protocol.MetricsInfo.RateInfo 91, // 82: protocol.MetricsInfo.BlockChainInfo.missedTransaction:type_name -> protocol.MetricsInfo.RateInfo 93, // 83: protocol.MetricsInfo.BlockChainInfo.witnesses:type_name -> protocol.MetricsInfo.BlockChainInfo.Witness 94, // 84: protocol.MetricsInfo.BlockChainInfo.dupWitness:type_name -> protocol.MetricsInfo.BlockChainInfo.DupWitness 95, // 85: protocol.MetricsInfo.NetInfo.api:type_name -> protocol.MetricsInfo.NetInfo.ApiInfo 91, // 86: protocol.MetricsInfo.NetInfo.tcpInTraffic:type_name -> protocol.MetricsInfo.RateInfo 91, // 87: protocol.MetricsInfo.NetInfo.tcpOutTraffic:type_name -> protocol.MetricsInfo.RateInfo 96, // 88: protocol.MetricsInfo.NetInfo.disconnectionDetail:type_name -> protocol.MetricsInfo.NetInfo.DisconnectionDetailInfo 91, // 89: protocol.MetricsInfo.NetInfo.udpInTraffic:type_name -> protocol.MetricsInfo.RateInfo 91, // 90: protocol.MetricsInfo.NetInfo.udpOutTraffic:type_name -> protocol.MetricsInfo.RateInfo 97, // 91: protocol.MetricsInfo.NetInfo.latency:type_name -> protocol.MetricsInfo.NetInfo.LatencyInfo 91, // 92: protocol.MetricsInfo.NetInfo.ApiInfo.qps:type_name -> protocol.MetricsInfo.RateInfo 91, // 93: protocol.MetricsInfo.NetInfo.ApiInfo.failQps:type_name -> protocol.MetricsInfo.RateInfo 91, // 94: protocol.MetricsInfo.NetInfo.ApiInfo.outTraffic:type_name -> protocol.MetricsInfo.RateInfo 98, // 95: protocol.MetricsInfo.NetInfo.ApiInfo.detail:type_name -> protocol.MetricsInfo.NetInfo.ApiInfo.ApiDetailInfo 99, // 96: protocol.MetricsInfo.NetInfo.LatencyInfo.detail:type_name -> protocol.MetricsInfo.NetInfo.LatencyInfo.LatencyDetailInfo 91, // 97: protocol.MetricsInfo.NetInfo.ApiInfo.ApiDetailInfo.qps:type_name -> protocol.MetricsInfo.RateInfo 91, // 98: protocol.MetricsInfo.NetInfo.ApiInfo.ApiDetailInfo.failQps:type_name -> protocol.MetricsInfo.RateInfo 91, // 99: protocol.MetricsInfo.NetInfo.ApiInfo.ApiDetailInfo.outTraffic:type_name -> protocol.MetricsInfo.RateInfo 12, // 100: protocol.PBFTMessage.Raw.msg_type:type_name -> protocol.PBFTMessage.MsgType 13, // 101: protocol.PBFTMessage.Raw.data_type:type_name -> protocol.PBFTMessage.DataType 102, // [102:102] is the sub-list for method output_type 102, // [102:102] is the sub-list for method input_type 102, // [102:102] is the sub-list for extension type_name 102, // [102:102] is the sub-list for extension extendee 0, // [0:102] is the sub-list for field type_name } func init() { file_core_Tron_proto_init() } func file_core_Tron_proto_init() { if File_core_Tron_proto != nil { return } file_core_Discover_proto_init() file_core_contract_common_proto_init() if !protoimpl.UnsafeEnabled { file_core_Tron_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountId); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Vote); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Proposal); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Exchange); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketOrder); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketOrderList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketOrderPairList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketOrderPair); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketAccountOrder); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketPrice); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketPriceList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketOrderIdList); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChainParameters); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Account); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Key); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DelegatedResource); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Authority); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Permission); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Witness); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Votes); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TXOutput); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TXInput); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TXOutputs); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResourceReceipt); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketOrderDetail); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Transaction); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionRet); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Transactions); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockHeader); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Block); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChainInventory); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockInventory); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Inventory); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Items); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DynamicProperties); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DisconnectMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HelloMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InternalTransaction); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DelegatedResourceAccountIndex); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PBFTMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PBFTCommitResult); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SRL); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChainParameters_ChainParameter); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Account_Frozen); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Account_AccountResource); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Account_FreezeV2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Account_UnFreezeV2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TXInputRaw); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Transaction_Contract); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Transaction_Result); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionRaw); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionInfo_Log); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockHeaderRaw); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChainInventory_BlockId); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockInventory_BlockId); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HelloMessage_BlockId); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InternalTransaction_CallValueInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeInfo_PeerInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeInfo_ConfigNodeInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeInfo_MachineInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeInfo_MachineInfo_MemoryDescInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeInfo_MachineInfo_DeadLockThreadInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsInfo_NodeInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsInfo_BlockChainInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsInfo_RateInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsInfo_NetInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsInfo_BlockChainInfo_Witness); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsInfo_BlockChainInfo_DupWitness); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsInfo_NetInfo_ApiInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsInfo_NetInfo_DisconnectionDetailInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsInfo_NetInfo_LatencyInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsInfo_NetInfo_ApiInfo_ApiDetailInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsInfo_NetInfo_LatencyInfo_LatencyDetailInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_core_Tron_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PBFTMessage_Raw); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_core_Tron_proto_rawDesc, NumEnums: 14, NumMessages: 87, NumExtensions: 0, NumServices: 0, }, GoTypes: file_core_Tron_proto_goTypes, DependencyIndexes: file_core_Tron_proto_depIdxs, EnumInfos: file_core_Tron_proto_enumTypes, MessageInfos: file_core_Tron_proto_msgTypes, }.Build() File_core_Tron_proto = out.File file_core_Tron_proto_rawDesc = nil file_core_Tron_proto_goTypes = nil file_core_Tron_proto_depIdxs = nil }