From 01bfbcdbfab208ecdeb566afce12ffc40d2ed17c Mon Sep 17 00:00:00 2001 From: magnusbechwind Date: Mon, 11 Dec 2023 11:26:26 +0100 Subject: [PATCH 01/12] Removed protobuf source files --- v2/pb/health.proto | 42 - v2/pb/service.proto | 254 ---- v2/pb/types.proto | 3089 ------------------------------------------- 3 files changed, 3385 deletions(-) delete mode 100644 v2/pb/health.proto delete mode 100644 v2/pb/service.proto delete mode 100644 v2/pb/types.proto diff --git a/v2/pb/health.proto b/v2/pb/health.proto deleted file mode 100644 index 0ae7f35..0000000 --- a/v2/pb/health.proto +++ /dev/null @@ -1,42 +0,0 @@ -syntax = "proto3"; - -option go_package = "concordium-go-sdk/proto"; - -package concordium.health; - -// This specifies the package we want to use for our generated Java classes. -// Has no effect on code generated on other languages. -option java_package = "com.concordium.grpc.v2"; - -// This specifies that separate .java files will be generated for each of the Java classes/enums/etc. generated for the top-level messages, services, and enumerations, -// and the wrapper Java class generated for this .proto file won't contain any nested classes/enums/etc. -// If not generating Java code, this option has no effect. -option java_multiple_files = true; - -// This specifies the package we want to use for our generated C# classes. -// Has no effect on code generated on other languages. -option csharp_namespace = "Concordium.Grpc.V2"; - -// Parameters to the node health query. The default message gives a good -// default. -message NodeHealthRequest {} - -// Response to the health check. A return code of "OK" is used for success, and -// errors are handled via RPC status codes -message NodeHealthResponse {} - -service Health { - // Check the health of the node. By necessity this involves a number of - // heuristics since in a distributed network we have to rely on the local - // information only and we don't have authoritative data on, e.g., last - // finalized block. - // - // In particular, a node that is not caught up to the head of the chain is not - // healthy. - // - // If possible the client should use other queries to get a more fine-grained - // understanding of the node health. However this endpoint should provide a - // reasonable default and is usable in cases where an automatic check is - // performed that does not allow for configuration, such as in load-balancers. - rpc Check(NodeHealthRequest) returns (NodeHealthResponse); -} diff --git a/v2/pb/service.proto b/v2/pb/service.proto deleted file mode 100644 index 2033d1b..0000000 --- a/v2/pb/service.proto +++ /dev/null @@ -1,254 +0,0 @@ -syntax = "proto3"; - - -option go_package = "concordium-go-sdk/proto"; - -import "types.proto"; - -package concordium.v2; - -// This specifies the package we want to use for our generated Java classes. -// Has no effect on code generated on other languages. -option java_package = "com.concordium.grpc.v2"; - -// This specifies the package we want to use for our generated C# classes. -// Has no effect on code generated on other languages. -option csharp_namespace = "Concordium.Grpc.V2"; - -// This specifies that separate .java files will be generated for each of the Java classes/enums/etc. generated for the top-level messages, services, and enumerations, -// and the wrapper Java class generated for this .proto file won't contain any nested classes/enums/etc. -// If not generating Java code, this option has no effect. -option java_multiple_files = true; - -service Queries { - // Return a stream of blocks that arrive from the time the query is made onward. - // This can be used to listen for incoming blocks. - rpc GetBlocks (Empty) returns (stream ArrivedBlockInfo); - - // Return a stream of blocks that are finalized from the time the query is - // made onward. This can be used to listen for newly finalized blocks. Note - // that there is no guarantee that blocks will not be skipped if the client is - // too slow in processing the stream, however blocks will always be sent by - // increasing block height. - rpc GetFinalizedBlocks (Empty) returns (stream FinalizedBlockInfo); - - // Retrieve the information about the given account in the given block. - rpc GetAccountInfo (AccountInfoRequest) returns (AccountInfo); - - // Retrieve the list of accounts that exist at the end of the given block. - rpc GetAccountList (BlockHashInput) returns (stream AccountAddress); - - // Get a list of all smart contract modules. The stream will end - // when all modules that exist in the state at the end of the given - // block have been returned. - rpc GetModuleList (BlockHashInput) returns (stream ModuleRef); - - // Get a stream of ancestors for the provided block. - // Starting with the provided block itself, moving backwards until no more - // ancestors or the requested number of ancestors has been returned. - rpc GetAncestors (AncestorsRequest) returns (stream BlockHash); - - // Get the source of a smart contract module. - rpc GetModuleSource (ModuleSourceRequest) returns (VersionedModuleSource); - - // Get a list of addresses for all smart contract instances. The stream - // will end when all instances that exist in the state at the end of the - // given block has been returned. - rpc GetInstanceList (BlockHashInput) returns (stream ContractAddress); - - // Get info about a smart contract instance as it appears at the end of the - // given block. - rpc GetInstanceInfo (InstanceInfoRequest) returns (InstanceInfo); - - // Get the exact state of a specific contract instance, streamed as a list of - // key-value pairs. The list is streamed in lexicographic order of keys. - rpc GetInstanceState (InstanceInfoRequest) returns (stream InstanceStateKVPair); - - // Get the value at a specific key of a contract state. In contrast to - // `GetInstanceState` this is more efficient, but requires the user to know - // the specific key to look for. - rpc InstanceStateLookup(InstanceStateLookupRequest) returns (InstanceStateValueAtKey); - - // Get the best guess as to what the next account sequence number should be. - // If all account transactions are finalized then this information is reliable. - // Otherwise this is the best guess, assuming all other transactions will be - // committed to blocks and eventually finalized. - rpc GetNextAccountSequenceNumber (AccountAddress) returns (NextAccountSequenceNumber); - - // Get information about the current state of consensus. - rpc GetConsensusInfo (Empty) returns (ConsensusInfo); - - // Get the status of and information about a specific block item (transaction). - rpc GetBlockItemStatus (TransactionHash) returns (BlockItemStatus); - - // Get the cryptographic parameters in a given block. - rpc GetCryptographicParameters (BlockHashInput) returns (CryptographicParameters); - - // Get information, such as height, timings, and transaction counts for the given block. - rpc GetBlockInfo (BlockHashInput) returns (BlockInfo); - - // Get all the bakers at the end of the given block. - rpc GetBakerList (BlockHashInput) returns (stream BakerId); - - // Get information about a given pool at the end of a given block. - rpc GetPoolInfo (PoolInfoRequest) returns (PoolInfoResponse); - - // Get information about the passive delegators at the end of a given block. - rpc GetPassiveDelegationInfo (BlockHashInput) returns (PassiveDelegationInfo); - - // Get a list of live blocks at a given height. - rpc GetBlocksAtHeight (BlocksAtHeightRequest) returns (BlocksAtHeightResponse); - - // Get information about tokenomics at the end of a given block. - rpc GetTokenomicsInfo (BlockHashInput) returns (TokenomicsInfo); - - // Run the smart contract entrypoint in a given context and in the state at - // the end of the given block. - rpc InvokeInstance (InvokeInstanceRequest) returns (InvokeInstanceResponse); - - // Get the registered delegators of a given pool at the end of a given block. - // In contrast to the `GetPoolDelegatorsRewardPeriod` which returns delegators - // that are fixed for the reward period of the block, this endpoint returns the - // list of delegators that are registered in the block. Any changes to delegators - // are immediately visible in this list. - // The stream will end when all the delegators has been returned. - rpc GetPoolDelegators (GetPoolDelegatorsRequest) returns (stream DelegatorInfo); - - // Get the fixed delegators of a given pool for the reward period of the given block. - // In contracts to the `GetPoolDelegators` which returns delegators registered - // for the given block, this endpoint returns the fixed delegators contributing - // stake in the reward period containing the given block. - // The stream will end when all the delegators has been returned. - rpc GetPoolDelegatorsRewardPeriod (GetPoolDelegatorsRequest) returns (stream DelegatorRewardPeriodInfo); - - // Get the registered passive delegators at the end of a given block. - // In contrast to the `GetPassiveDelegatorsRewardPeriod` which returns delegators - // that are fixed for the reward period of the block, this endpoint returns the - // list of delegators that are registered in the block. Any changes to delegators - // are immediately visible in this list. - // The stream will end when all the delegators has been returned. - rpc GetPassiveDelegators (BlockHashInput) returns (stream DelegatorInfo); - - // Get the fixed passive delegators for the reward period of the given block. - // In contracts to the `GetPassiveDelegators` which returns delegators registered - // for the given block, this endpoint returns the fixed delegators contributing - // stake in the reward period containing the given block. - // The stream will end when all the delegators has been returned. - rpc GetPassiveDelegatorsRewardPeriod (BlockHashInput) returns (stream DelegatorRewardPeriodInfo); - - // Get the current branches of blocks starting from and including the last finalized block. - rpc GetBranches (Empty) returns (Branch); - - // Get information related to the baker election for a particular block. - rpc GetElectionInfo (BlockHashInput) returns (ElectionInfo); - - // Get the identity providers registered as of the end of a given block. - // The stream will end when all the identity providers have been returned. - rpc GetIdentityProviders (BlockHashInput) returns (stream IpInfo); - - // Get the anonymity revokers registered as of the end of a given block. - // The stream will end when all the anonymity revokers have been returned. - rpc GetAnonymityRevokers (BlockHashInput) returns (stream ArInfo); - - // Get a list of non-finalized transaction hashes for a given account. This - // endpoint is not expected to return a large amount of data in most cases, - // but in bad network condtions it might. The stream will end when all the - // non-finalized transaction hashes have been returned. - rpc GetAccountNonFinalizedTransactions (AccountAddress) returns (stream TransactionHash); - - // Get a list of transaction events in a given block. - // The stream will end when all the transaction events for a given block have been returned. - rpc GetBlockTransactionEvents (BlockHashInput) returns (stream BlockItemSummary); - - // Get a list of special events in a given block. These are events generated - // by the protocol, such as minting and reward payouts. They are not directly - // generated by any transaction. The stream will end when all the special - // events for a given block have been returned. - rpc GetBlockSpecialEvents (BlockHashInput) returns (stream BlockSpecialEvent); - - // Get the pending updates to chain parameters at the end of a given block. - // The stream will end when all the pending updates for a given block have been returned. - rpc GetBlockPendingUpdates (BlockHashInput) returns (stream PendingUpdate); - - // Get next available sequence numbers for updating chain parameters after a given block. - rpc GetNextUpdateSequenceNumbers (BlockHashInput) returns (NextUpdateSequenceNumbers); - - // Shut down the node. - // Return a GRPC error if the shutdown failed. - rpc Shutdown(Empty) returns (Empty); - - // Suggest to a peer to connect to the submitted peer details. - // This, if successful, adds the peer to the list of given addresses. - // Otherwise return a GRPC error. - // Note. The peer might not be connected to instantly, in that case - // the node will try to establish the connection in near future. This - // function returns a GRPC status 'Ok' in this case. - rpc PeerConnect (IpSocketAddress) returns (Empty); - - // Disconnect from the peer and remove them from the given addresses list - // if they are on it. Return if the request was processed successfully. - // Otherwise return a GRPC error. - rpc PeerDisconnect (IpSocketAddress) returns (Empty); - - // Get a list of banned peers. - rpc GetBannedPeers(Empty) returns (BannedPeers); - - // Ban the given peer. - // Returns a GRPC error if the action failed. - rpc BanPeer(PeerToBan) returns (Empty); - - // Unban the banned peer. - // Returns a GRPC error if the action failed. - rpc UnbanPeer(BannedPeer) returns (Empty); - - // Start dumping packages into the specified file. - // Only enabled if the node was built with the `network_dump` feature. - // Returns a GRPC error if the network dump failed to start. - rpc DumpStart(DumpRequest) returns (Empty); - - // Stop dumping packages. - // Only enabled if the node was built with the `network_dump` feature. - // Returns a GRPC error if the network dump failed to be stopped. - rpc DumpStop(Empty) returns (Empty); - - /// Get a list of the peers that the node is connected to - /// and assoicated network related information for each peer. - rpc GetPeersInfo(Empty) returns (PeersInfo); - - // Get information about the node. - // The `NodeInfo` includes information of - // * Meta information such as the, version of the node, type of the node, uptime and the local time of the node. - // * NetworkInfo which yields data such as the node id, packets sent/received, - // average bytes per second sent/received. - // * ConsensusInfo. The `ConsensusInfo` returned depends on if the node supports - // the protocol on chain and whether the node is configured as a baker or not. - rpc GetNodeInfo(Empty) returns (NodeInfo); - - // Send a block item. A block item is either an `AccountTransaction`, which is - // a transaction signed and paid for by an account, a `CredentialDeployment`, - // which creates a new account, or `UpdateInstruction`, which is an - // instruction to change some parameters of the chain. Update instructions can - // only be sent by the governance committee. - // - // Returns a hash of the block item, which can be used with - // `GetBlockItemStatus`. - rpc SendBlockItem (SendBlockItemRequest) returns (TransactionHash); - - // Get the hash to be signed for an account transaction. The hash returned - // should be signed and the signatures included as an - // AccountTransactionSignature when calling `SendBlockItem`. This is provided as - // a convenience to support cases where the right SDK is not available for - // interacting with the node. If an SDK is available then it is strongly - // recommended to compute this hash off-line using it. That reduces the trust - // in the node, removes networking failure modes, and will perform better. - rpc GetAccountTransactionSignHash (PreAccountTransaction) returns (AccountTransactionSignHash); - - // Get the values of chain parameters in effect in the given block. - rpc GetBlockChainParameters(BlockHashInput) returns (ChainParameters); - - // Get the summary of the finalization data in a given block. - rpc GetBlockFinalizationSummary(BlockHashInput) returns (BlockFinalizationSummary); - - // Get the items of a block. - rpc GetBlockItems(BlockHashInput) returns (stream BlockItem); -} diff --git a/v2/pb/types.proto b/v2/pb/types.proto deleted file mode 100644 index 32370d8..0000000 --- a/v2/pb/types.proto +++ /dev/null @@ -1,3089 +0,0 @@ -syntax = "proto3"; - -option go_package = "concordium-go-sdk/proto"; - -package concordium.v2; - -// This specifies the package we want to use for our generated Java classes. -// Has no effect on code generated on other languages. -option java_package = "com.concordium.grpc.v2"; - -// This specifies that separate .java files will be generated for each of the Java classes/enums/etc. generated for the top-level messages, services, and enumerations, -// and the wrapper Java class generated for this .proto file won't contain any nested classes/enums/etc. -// If not generating Java code, this option has no effect. -option java_multiple_files = true; - -// This specifies the package we want to use for our generated C# classes. -// Has no effect on code generated on other languages. -option csharp_namespace = "Concordium.Grpc.V2"; - -// A message that contains no information. -message Empty { -} - -// Hash of a block. This is always 32 bytes long. -message BlockHash { - bytes value = 1; -} - -// A SHA256 hash. This is always 32 bytes long. -message Sha256Hash { - bytes value = 1; -} - -// Hash of a transaction. This is always 32 bytes long. -message TransactionHash { - bytes value = 1; -} - -// Hash of the state after some block. This is always 32 bytes long. -message StateHash { - bytes value = 1; -} - -// The absolute height of a block. This is the number of ancestors of a block -// since the genesis block. In particular, the chain genesis block has absolute -// height 0. -message AbsoluteBlockHeight { - uint64 value = 1; -} - -// The height of a block relative to the last genesis. This differs from the -// absolute block height in that it counts height from the last protocol update. -message BlockHeight { - uint64 value = 1; -} - -// The ID of a baker, which is the index of its account. -message BakerId { - uint64 value = 1; -} - -// Index of the account in the account table. These are assigned sequentially -// in the order of creation of accounts. The first account has index 0. -message AccountIndex { - uint64 value = 1; -} - -// A smart contract module reference. This is always 32 bytes long. -message ModuleRef { - bytes value = 1; -} - -// Source bytes of a versioned smart contract module. -message VersionedModuleSource { - // Source bytes of a smart contract v0 module. - message ModuleSourceV0 { - bytes value = 1; - } - - // Source bytes of a smart contract v1 module. - message ModuleSourceV1 { - bytes value = 1; - } - - oneof module { - ModuleSourceV0 v0 = 1; - ModuleSourceV1 v1 = 2; - } -} - -// Unix timestamp in milliseconds. -message Timestamp { - uint64 value = 1; -} - -// An individual release of a locked balance. -message Release { - // Effective time of the release in milliseconds since unix epoch. - Timestamp timestamp = 1; - // Amount to be released. - Amount amount = 2; - // List of transaction hashes that contribute a balance to this release. - repeated TransactionHash transactions = 3; -} - -// A new individual release. Part of a single transfer with schedule transaction. -message NewRelease { - // Effective time of the release in milliseconds since unix epoch. - Timestamp timestamp = 1; - // Amount to be released. - Amount amount = 2; -} - -// State of the account's release schedule. This is the balance of the account -// that is owned by the account, but cannot be used until the release point. -message ReleaseSchedule { - // Total amount locked in the release schedule. - Amount total = 1; - // A list of releases, ordered by increasing timestamp. - repeated Release schedules = 2; -} - -// An encrypted amount, in two chunks in "little endian limbs". That is, the -// first chunk represents the low 32 bits of an amount, and the second chunk -// represents the high 32 bits. The chunks are serialized in order and -// represented as a byte array. -// Always 192 bytes. -message EncryptedAmount { - bytes value = 1; -} - -message EncryptedBalance { - // Encrypted amount that is a result of this account's actions. - // In particular this list includes the aggregate of - // - // - remaining amounts that result when transferring to public balance - // - remaining amounts when transferring to another account - // - encrypted amounts that are transferred from public balance - // - // When a transfer is made all of these must always be used. - EncryptedAmount self_amount = 1; - // Starting index for incoming encrypted amounts. If an aggregated amount - // is present then this index is associated with such an amount and the - // list of incoming encrypted amounts starts at the index `start_index - // + 1`. - uint64 start_index = 2; - // If present, the amount that has resulted from aggregating other amounts - // If this field is present so is `num_aggregated`. - optional EncryptedAmount aggregated_amount = 3; - // The number of aggregated amounts (must be at least 2 if present). This - // field is present if and only if `aggregated_amount` is present. - optional uint32 num_aggregated = 4; - // Amounts starting at `start_index` (or at `start_index + 1` if there is - // an aggregated amount present). They are assumed to be numbered - // sequentially. The length of this list is bounded by the maximum number - // of incoming amounts on the accounts, which is currently 32. After - // that aggregation kicks in. - repeated EncryptedAmount incoming_amounts = 5; -} - -// Entity to which the account delegates a portion of its stake. -message DelegationTarget { - oneof target { - // Delegate passively, i.e., to no specific baker. - Empty passive = 1; - // Delegate to a specific baker. - BakerId baker = 2; - } -} - -// Baker's public key used to check whether they won the lottery or not. -message BakerElectionVerifyKey { - bytes value = 1; -} - -// Baker's public key used to check that they are indeed the ones who -// produced the block. -message BakerSignatureVerifyKey { - bytes value = 1; -} - -// Baker's public key used to check signatures on finalization records. -// This is only used if the baker has sufficient stake to participate in -// finalization. -message BakerAggregationVerifyKey { - bytes value = 1; -} - -// Information about a baker. -message BakerInfo { - // Identity of the baker. This is actually the account index of - // the account controlling the baker. - BakerId baker_id = 1; - // Baker's public key used to check whether they won the lottery or not. - BakerElectionVerifyKey election_key = 2; - // Baker's public key used to check that they are indeed the ones who - // produced the block. - BakerSignatureVerifyKey signature_key = 3; - // Baker's public key used to check signatures on finalization records. - // This is only used if the baker has sufficient stake to participate in - // finalization. - BakerAggregationVerifyKey aggregation_key = 4; -} - -// Pending change to the stake either of a baker or delegator. -message StakePendingChange { - message Reduce { - Amount new_stake = 1; - // Unix timestamp in milliseconds when the change takes effect. - Timestamp effective_time = 2; - } - - oneof change { - Reduce reduce = 1; - // Remove the stake. The value is a Unix timestamp of the effective time in - // milliseconds. - Timestamp remove = 2; - } -} - -// Information about how open the pool is to new delegators. -enum OpenStatus { - OPEN_STATUS_OPEN_FOR_ALL = 0; - OPEN_STATUS_CLOSED_FOR_NEW = 1; - OPEN_STATUS_CLOSED_FOR_ALL = 2; -} - -// A fraction of an amount with a precision of `1/100_000`. -message AmountFraction { - // Must not exceed 100000. - uint32 parts_per_hundred_thousand = 1; -} - -// Distribution of the rewards for the particular pool. -message CommissionRates { - // Fraction of finalization rewards charged by the pool owner. - AmountFraction finalization = 1; - // Fraction of baking rewards charged by the pool owner. - AmountFraction baking = 2; - // Fraction of transaction rewards charged by the pool owner. - AmountFraction transaction = 3; -} - -// Additional information about a baking pool. -// This information is added with the introduction of delegation. -message BakerPoolInfo { - // Whether the pool allows delegators. - OpenStatus open_status = 1; - // The URL that links to the metadata about the pool. - string url = 2; - // The commission rates charged by the pool owner. - CommissionRates commission_rates = 3; -} - -// Information about the account stake, if the account is either a baker or a -// delegator. -message AccountStakingInfo { - message Baker { - // Amount staked at present. - Amount staked_amount = 1; - // A flag indicating whether rewards paid to the baker are automatically - // restaked or not. - bool restake_earnings = 2; - // Information about the baker that is staking. - BakerInfo baker_info = 3; - // If present, any pending change to the delegated stake. - optional StakePendingChange pending_change = 4; - // Present if the account is currently a baker, i.e., it is in the baking - // committee of the current epoch. - optional BakerPoolInfo pool_info = 5; - } - - message Delegator { - // The amount that the account delegates. - Amount staked_amount = 1; - // Whether the earnings are automatically added to the staked amount. - bool restake_earnings = 2; - // The entity to which the account delegates. - DelegationTarget target = 3; - // If present, any pending change to the delegated stake. - optional StakePendingChange pending_change = 4; - } - - oneof staking_info { - // The account is a baker. - Baker baker = 1; - // The account is a delegator. - Delegator delegator = 2; - } -} - -// A sequence number that determines the ordering of transactions from the -// account. The minimum sequence number is 1. -message SequenceNumber { - // The sequence number. - uint64 value = 1; -} - -// A sequence number that determines the ordering of update transactions. -// Equivalent to `SequenceNumber` for account transactions. -// Update sequence numbers are per update type and the minimum value is 1. -message UpdateSequenceNumber { - // The sequence number. - uint64 value = 1; -} - -// An amount of microCCD. -message Amount { - uint64 value = 1; -} - -// Index of a credential on an account. -message CredentialIndex { - uint32 value = 1; -} - -// The number of signatures required to sign. -message SignatureThreshold { - uint32 value = 1; -} - -// The number of credentials required to sign an account transaction. -message AccountThreshold { - uint32 value = 1; -} - -// An account encryption key. Always 96 bytes. -message EncryptionKey { - bytes value = 1; -} - -// An address of an account. Always 32 bytes. -message AccountAddress { - bytes value = 1; -} - -// An address of either a contract or an account. -message Address { - oneof type { - AccountAddress account = 1; - ContractAddress contract = 2; - } -} - -// A public key used to verify transaction signatures from an account. -message AccountVerifyKey { - oneof key { - bytes ed25519_key = 1; - } -} - -// Public keys of a single credential. -message CredentialPublicKeys { - map keys = 1; - SignatureThreshold threshold = 2; -} - -// A registration ID of a credential, derived from the secret PRF key and a -// nonce. This is always 48 bytes long. -message CredentialRegistrationId { - bytes value = 1; -} - -// An index of the identity provider that identifies them uniquely in the -// context of a specific chain. -message IdentityProviderIdentity { - uint32 value = 1; -} - -// Representation of the pair of a year and month. -message YearMonth { - uint32 year = 1; - uint32 month = 2; -} - -// Policy on a credential. -message Policy { - // The year and month when the identity object from which the credential is - // derived was created. - YearMonth created_at = 1; - // The last year and month when the credential is still valid. After this - // expires an account can no longer be created from the credential. - YearMonth valid_to = 2; - // Mapping from attribute tags to attribute values. Attribute tags are always - // representable in a single `u8`, attribute values are never more than 31 - // bytes in length. - map attributes = 3; -} - -// Values contained in an initial credential. -message InitialCredentialValues { - // Public keys of the credential. - CredentialPublicKeys keys = 1; - // Its registration ID. - CredentialRegistrationId cred_id = 2; - // The identity provider who signed the identity object from which this - // credential is derived. - IdentityProviderIdentity ip_id = 3; - // Policy of this credential. - Policy policy = 4; -} - -// Data relating to a single anonymity revoker sent by the account holder to -// the chain. -message ChainArData { - // Share of the encryption of IdCredPub. - bytes enc_id_cred_pub_share = 1; -} - -// The number of anonymity revokers needed to revoke anonymity of a credential -// holder. -message ArThreshold { - uint32 value = 1; -} - -// A single commitment in the G1 group of the BLS curve. This is always 48 bytes -// in length. -message Commitment { - bytes value = 1; -} - -// Commitments that are part of a normal credential. -message CredentialCommitments { - // Commitment to the PRF key. - Commitment prf = 1; - // Commitment to the counter used to generate the credential registration id. - Commitment cred_counter = 2; - // Commitment to the `max_accounts` value, which determines the maximum number - // of credentials that may be created from the identity object. - Commitment max_accounts = 3; - // Commitments to the attributes which have not been revealed in the policy. - map attributes = 4; - // List of commitments to the coefficients of the sharing polynomial. This - // polynomial is used in a shared encryption of `id_cred_pub` among the - // anonymity revokers. - repeated Commitment id_cred_sec_sharing_coeff = 5; -} - -// Values contained in a normal (non-initial) credential. -message NormalCredentialValues { - // Public keys of the credential. - CredentialPublicKeys keys = 1; - // Its registration ID. - CredentialRegistrationId cred_id = 2; - // The identity provider who signed the identity object from which this - // credential is derived. - IdentityProviderIdentity ip_id = 3; - // Policy of this credential. - Policy policy = 4; - // The number of anonymity revokers that must work together to revoke the - // anonymity of the credential holder. - ArThreshold ar_threshold = 5; - // Mapping from anonymity revoker identities to revocation data for the given anonymity revoker. - map ar_data = 6; - // Commitments to attributes which have not been revealed. - CredentialCommitments commitments = 7; -} - -// Credential that is part of an account. -message AccountCredential { - oneof credential_values { - InitialCredentialValues initial = 1; - NormalCredentialValues normal = 2; - } -} - -// Information about the account at a particular point in time. -message AccountInfo { - // Next sequence number to be used for transactions signed from this account. - SequenceNumber sequence_number = 1; - // Current (unencrypted) balance of the account. - Amount amount = 2; - // Release schedule for any locked up amount. This could be an empty - // release schedule. - ReleaseSchedule schedule = 3; - // Map of all currently active credentials on the account. - // This includes public keys that can sign for the given credentials, as - // well as any revealed attributes. This map always contains a credential - // with index 0. - map creds = 4; - // Lower bound on how many credentials must sign any given transaction from - // this account. - AccountThreshold threshold = 5; - // The encrypted balance of the account. - EncryptedBalance encrypted_balance = 6; - // The public key for sending encrypted balances to the account. - EncryptionKey encryption_key = 7; - // Internal index of the account. Accounts on the chain get sequential - // indices. These should generally not be used outside of the chain, - // the account address is meant to be used to refer to accounts, - // however the account index serves the role of the baker id, if the - // account is a baker. Hence it is exposed here as well. - AccountIndex index = 8; - // Present if the account is a baker or delegator. In that case - // it is the information about the baker or delegator. - optional AccountStakingInfo stake = 9; - // Canonical address of the account. This is derived from the first credential - // that created the account. - AccountAddress address = 10; -} - -// Input to queries which take a block as a parameter. -message BlockHashInput { - // Request using a relative block height. - message RelativeHeight { - // Genesis index to start from. - GenesisIndex genesis_index = 1; - // Height starting from the genesis block at the genesis index. - BlockHeight height = 2; - // Whether to return results only from the specified genesis index (`true`), - // or allow results from more recent genesis indices as well (`false`). - bool restrict = 3; - } - oneof block_hash_input { - // Query for the best block. - Empty best = 1; - // Query for the last finalized block. - Empty last_final = 2; - // Query for the block specified by the hash. This hash should always be 32 bytes. - BlockHash given = 3; - // Query for a block at absolute height, if a unique block can be identified at that height. - AbsoluteBlockHeight absolute_height = 4; - // Query for a block at height relative to a genesis index. - RelativeHeight relative_height = 5; - } -} - -// Input to queries which take an account as a parameter. -message AccountIdentifierInput { - oneof account_identifier_input { - // Identify the account by the address of the account. - AccountAddress address = 1; - // Identify the account by the credential that belongs or has belonged to it. - CredentialRegistrationId cred_id = 2; - // Identify the account via its index. - AccountIndex account_index = 3; - } -} - -// Request for account information. -message AccountInfoRequest { - // Block in which to query the account information. - BlockHashInput block_hash = 1; - // Specification of the account. - AccountIdentifierInput account_identifier = 2; -} - -// Information about a finalized block that is part of the streaming response. -message FinalizedBlockInfo { - // Hash of the block. - BlockHash hash = 1; - // Absolute height of the block, height 0 is the genesis block. - AbsoluteBlockHeight height = 2; -} - -// Request the ancestors for the given block. -message AncestorsRequest { - // The block to get ancestors of. - BlockHashInput block_hash = 1; - // The maximum number of ancestors returned. - uint64 amount = 2; -} - -// Request for getting the source of a smart contract module. -message ModuleSourceRequest { - // The block to be used for the query. - BlockHashInput block_hash = 1; - // The reference of the module. - ModuleRef module_ref = 2; -} - -// Address of a smart contract instance. -message ContractAddress { - // The index of the smart contract. - uint64 index = 1; - // The subindex of the smart contract instance. - // Currently not used, so it is always 0. - uint64 subindex = 2; -} - -// Request for getting information about a smart contract instance. -message InstanceInfoRequest { - // The block to be used for the query. - BlockHashInput block_hash = 1; - // The address of the smart contract instance. - ContractAddress address = 2; -} - -// Information about a smart contract instance. -message InstanceInfo { - - // Version 0 smart contract instance information. - message V0 { - // The state of the instance. - ContractStateV0 model = 1; - // The account address which deployed the instance. - AccountAddress owner = 2; - // The amount of CCD tokens in the balance of the instance. - Amount amount = 3; - // A list of endpoints exposed by the instance. - repeated ReceiveName methods = 4; - // The name of the smart contract of the instance. - InitName name = 5; - // The module reference for the smart contract module of the instance. - ModuleRef source_module = 6; - } - - // Version 1 smart contract instance information. - message V1 { - // The account address which deployed the instance. - AccountAddress owner = 2; - // The amount of CCD tokens in the balance of the instance. - Amount amount = 3; - // A list of endpoints exposed by the instance. - repeated ReceiveName methods = 4; - // The name of the smart contract of the instance. - InitName name = 5; - // The module reference for the smart contract module of the instance. - ModuleRef source_module = 6; - } - - // The information depends on the smart contract version used by the instance. - oneof version { - V0 v0 = 1; - V1 v1 = 2; - } -} - -// A smart contract instance key-value pair. -message InstanceStateKVPair { - bytes key = 1; - bytes value = 2; -} - -// Request for a specific key of a smart contract instance state. -message InstanceStateLookupRequest { - // The block to be used for the query. - BlockHashInput block_hash = 1; - // The address of the smart contract instance. - ContractAddress address = 2; - // Key to look up. If the instance is a V0 instance then this will not be used. - bytes key = 3; -} - -// Value at the requested key of a smart contract instance state. For V0 -// contracts this will always be the entire state of the contract. -message InstanceStateValueAtKey { - bytes value = 1; -} - -// The receive name of a smart contract function. Expected format: -// `.`. It must only consist of atmost 100 ASCII -// alphanumeric or punctuation characters, and must contain a '.'. -message ReceiveName { - string value = 1; -} - -// The init name of a smart contract function. Expected format: -// `init_`. It must only consist of atmost 100 ASCII alphanumeric -// or punctuation characters, must not contain a '.' and must start with -// 'init_'. -message InitName { - string value = 1; -} - -// Parameter to a smart contract initialization or invocation. -message Parameter { - bytes value = 1; -} - -// A smart contract v0 state. -message ContractStateV0 { - bytes value = 1; -} - -// Status of a block item known to the node. -message BlockItemStatus { - - message Committed { - repeated BlockItemSummaryInBlock outcomes = 1; - } - - message Finalized { - BlockItemSummaryInBlock outcome = 1; - } - - oneof status { - // Block item is received, but not yet in any blocks. - Empty received = 1; - // Block item is committed to one or more blocks. The outcomes are listed - // for each block. Note that in the vast majority of cases the outcome of a - // transaction should not be dependent on the block it is in, but this - // can in principle happen. - Committed committed = 2; - // Block item is finalized in the given block, with the given summary. - Finalized finalized = 3; - } -} - -// A block item summary together with a block hash. Used in BlockItemStatus. -message BlockItemSummaryInBlock { - // The block hash. - BlockHash block_hash = 1; - // The block item summary. - BlockItemSummary outcome = 2; -} - -// Energy is used to count exact execution cost. -// This cost is then converted to CCD amounts. -message Energy { - uint64 value = 1; -} - -// A number representing a slot for baking a block. -message Slot { - uint64 value = 1; -} - -// The response for getNextAccountSequenceNumber. -message NextAccountSequenceNumber { - // The best guess for the available account sequence number. - SequenceNumber sequence_number = 1; - // Whether the guess relies on any non-finalized transactions. If true all of the relevant transactions are finalized. - bool all_final = 2; -} - -// A duration of milliseconds. -message Duration { - uint64 value = 1; -} - -// A reason for why a transaction was rejected. Rejected means included in a -// block, but the desired action was not achieved. The only effect of a -// rejected transaction is payment. -message RejectReason { - - message InvalidInitMethod { - ModuleRef module_ref = 1; - InitName init_name = 2; - } - - message InvalidReceiveMethod { - ModuleRef module_ref = 1; - ReceiveName receive_name = 2; - } - - message AmountTooLarge { - Address address = 1; - Amount amount = 2; - } - - message RejectedInit { - int32 reject_reason = 1; - } - - message RejectedReceive { - int32 reject_reason = 1; - ContractAddress contract_address = 2; - ReceiveName receive_name = 3; - Parameter parameter = 4; - } - - message DuplicateCredIds { - repeated CredentialRegistrationId ids = 1; - } - - message NonExistentCredIds { - repeated CredentialRegistrationId ids = 1; - } - - oneof reason { - // Raised while validating a Wasm module that is not well formed. - Empty module_not_wf = 1; - // The smart contract module hash already exists. - ModuleRef module_hash_already_exists = 2; - // Account does not exist. - AccountAddress invalid_account_reference = 3; - // Reference to a non-existing contract init method. - InvalidInitMethod invalid_init_method = 4; - // Reference to a non-existing contract receive method. - InvalidReceiveMethod invalid_receive_method = 5; - // Reference to a non-existing smart contract module. - ModuleRef invalid_module_reference = 6; - // Contract instance does not exist. - ContractAddress invalid_contract_address = 7; - // Runtime exception occurred when running either the init or receive - // method. - Empty runtime_failure = 8; - // When one wishes to transfer an amount from A to B but there - // are not enough funds on account/contract A to make this - // possible. The data are the from address and the amount to transfer. - AmountTooLarge amount_too_large = 9; - // Serialization of the body failed. - Empty serialization_failure = 10; - // We ran of out energy to process this transaction. - Empty out_of_energy = 11; - // Rejected due to contract logic in init function of a contract. - RejectedInit rejected_init = 12; - // Rejected due to contract logic in receive function of a contract. - RejectedReceive rejected_receive = 13; - // Proof that the baker owns relevant private keys is not valid. - Empty invalid_proof = 14; - // Tried to add baker for an account that already has a baker. - BakerId already_a_baker = 15; - // Tried to remove a baker for an account that has no baker. - AccountAddress not_a_baker = 16; - // The amount on the account was insufficient to cover the proposed stake. - Empty insufficient_balance_for_baker_stake = 17; - // The amount provided is under the threshold required for becoming a baker. - Empty stake_under_minimum_threshold_for_baking = 18; - // The change could not be made because the baker is in cooldown for - // another change. - Empty baker_in_cooldown = 19; - // A baker with the given aggregation key already exists. - BakerAggregationVerifyKey duplicate_aggregation_key = 20; - // Encountered credential ID that does not exist. - Empty non_existent_credential_id = 21; - // Attempted to add an account key to a key index already in use. - Empty key_index_already_in_use = 22; - // When the account threshold is updated, it must not exceed the amount of - // existing keys. - Empty invalid_account_threshold = 23; - // When the credential key threshold is updated, it must not exceed the - // amount of existing keys. - Empty invalid_credential_key_sign_threshold = 24; - // Proof for an encrypted amount transfer did not validate. - Empty invalid_encrypted_amount_transfer_proof = 25; - // Proof for a secret to public transfer did not validate. - Empty invalid_transfer_to_public_proof = 26; - // Account tried to transfer an encrypted amount to itself, that's not - // allowed. - AccountAddress encrypted_amount_self_transfer = 27; - // The provided index is below the start index or above `startIndex + - // length incomingAmounts`. - Empty invalid_index_on_encrypted_transfer = 28; - // The transfer with schedule is going to send 0 tokens. - Empty zero_scheduledAmount = 29; - // The transfer with schedule has a non strictly increasing schedule. - Empty non_increasing_schedule = 30; - // The first scheduled release in a transfer with schedule has already - // expired. - Empty first_scheduled_release_expired = 31; - // Account tried to transfer with schedule to itself, that's not allowed. - AccountAddress scheduled_self_transfer = 32; - // At least one of the credentials was either malformed or its proof was - // incorrect. - Empty invalid_credentials = 33; - // Some of the credential IDs already exist or are duplicated in the - // transaction. - DuplicateCredIds duplicate_cred_ids = 34; - // A credential id that was to be removed is not part of the account. - NonExistentCredIds non_existent_cred_ids = 35; - // Attemp to remove the first credential. - Empty remove_first_credential = 36; - // The credential holder of the keys to be updated did not sign the - // transaction. - Empty credential_holder_did_not_sign = 37; - // Account is not allowed to have multiple credentials because it contains - // a non-zero encrypted transfer. - Empty not_allowed_multiple_credentials = 38; - // The account is not allowed to receive encrypted transfers because it has - // multiple credentials. - Empty not_allowed_to_receive_encrypted = 39; - // The account is not allowed to send encrypted transfers (or transfer - // from/to public to/from encrypted). - Empty not_allowed_to_handle_encrypted = 40; - // A configure baker transaction is missing one or more arguments in order - // to add a baker. - Empty missing_baker_add_parameters = 41; - // Finalization reward commission is not in the valid range for a baker. - Empty finalization_reward_commission_not_in_range = 42; - // Baking reward commission is not in the valid range for a baker. - Empty baking_reward_commission_not_in_range = 43; - // Transaction fee commission is not in the valid range for a baker. - Empty transaction_fee_commission_not_in_range = 44; - // Tried to add baker for an account that already has a delegator. - Empty already_a_delegator = 45; - // The amount on the account was insufficient to cover the proposed stake. - Empty insufficient_balance_for_delegation_stake = 46; - // A configure delegation transaction is missing one or more arguments in - // order to add a delegator. - Empty missing_delegation_add_parameters = 47; - // Delegation stake when adding a delegator was 0. - Empty insufficient_delegation_stake = 48; - // Account is not a delegation account. - Empty delegator_in_cooldown = 49; - // Account is not a delegation account. - AccountAddress not_a_delegator = 50; - // Delegation target is not a baker - BakerId delegation_target_not_a_baker = 51; - // The amount would result in pool capital higher than the maximum - // threshold. - Empty stake_over_maximum_threshold_for_pool = 52; - // The amount would result in pool with a too high fraction of delegated - // capital. - Empty pool_would_become_over_delegated = 53; - // The pool is not open to delegators. - Empty pool_closed = 54; - } -} - -// Version of smart contract. -enum ContractVersion { - V0 = 0; - V1 = 1; -} - - -// Data generated as part of initializing a single contract instance. -message ContractInitializedEvent { - // Contract version. - ContractVersion contract_version = 1; - // Module with the source code of the contract. - ModuleRef origin_ref = 2; - // The newly assigned address of the contract. - ContractAddress address = 3; - // The amount the instance was initialized with. - Amount amount = 4; - // The name of the contract. - InitName init_name = 5; - // Any contract events that might have been genereated by the contract initialization. - repeated ContractEvent events = 6; -} - -// An event generated by a smart contract. -message ContractEvent { - bytes value = 1; -} - -// Data generated as part of updating a single contract instance. -// In general a single Update transaction will -// generate one or more of these events, together with possibly some transfers. -message InstanceUpdatedEvent { - // Contract version. - ContractVersion contract_version = 1; - // Address of the affected instance. - ContractAddress address = 2; - // The origin of the message to the smart contract. This can be - // either an account or a smart contract. - Address instigator = 3; - // The amount the method was invoked with. - Amount amount = 4; - // The parameter passed to the method. - Parameter parameter = 5; - // The name of the method that was executed. - ReceiveName receive_name = 6; - // Any contract events that might have been generated by the contract execution. - repeated ContractEvent events = 7; -} - -// Effects produced by successful smart contract invocations. -// A single invocation will produce a sequence of these effects. -message ContractTraceElement { - // A contract transferred an amount to an account. - message Transferred { - // Sender contract. - ContractAddress sender = 1; - // Amount transferred. - Amount amount = 2; - // Receiver account. - AccountAddress receiver = 3; - } - // A contract was interrupted. - // This occurs when a contract invokes another contract or makes a transfer to an account. - message Interrupted { - // The contract interrupted. - ContractAddress address = 1; - // The events generated up until the interruption. - repeated ContractEvent events = 2; - } - // A previously interrupted contract was resumed. - message Resumed { - // The contract resumed. - ContractAddress address = 1; - // Whether the action that caused the interruption (invoke contract or make transfer) was successful or not. - bool success = 2; - } - - // A previously interrupted contract was resumed. - message Upgraded { - // The that was upgraded. - ContractAddress address = 1; - // The module from which the contract was upgraded. - ModuleRef from = 2; - // The module to which it was upgraded. - ModuleRef to = 3; - } - - oneof element { - // A contract instance was updated. - InstanceUpdatedEvent updated = 1; - // A contract transferred an amount to an account. - Transferred transferred = 2; - // A contract was interrupted. - // This occurs when a contract invokes another contract or makes a transfer to an account. - Interrupted interrupted = 3; - // A previously interrupted contract was resumed. - Resumed resumed = 4; - // A contract was upgraded. - Upgraded upgraded = 5; - } -} - -// Result of a successful change of baker keys. -message BakerKeysEvent { - // ID of the baker whose keys were changed. - BakerId baker_id = 1; - // Account address of the baker. - AccountAddress account = 2; - // The new public key for verifying block signatures. - BakerSignatureVerifyKey sign_key = 3; - // The new public key for verifying whether the baker won the block - // lottery. - BakerElectionVerifyKey election_key = 4; - // The new public key for verifying finalization records. - BakerAggregationVerifyKey aggregation_key = 5; -} - -// A memo which can be included as part of a transfer. Max size is 256 bytes. -message Memo { - bytes value = 1; -} - -message BakerStakeUpdatedData { - // Affected baker. - BakerId baker_id = 1; - // New stake. - Amount new_stake = 2; - // A boolean which indicates whether it increased - // (`true`) or decreased (`false`). - bool increased = 3; -} - -// Event generated when one or more encrypted amounts are consumed from the account. -message EncryptedAmountRemovedEvent { - // The affected account. - AccountAddress account = 1; - // The new self encrypted amount on the affected account. - EncryptedAmount new_amount = 2; - // The input encrypted amount that was removed. - EncryptedAmount input_amount = 3; - // The index indicating which amounts were used. - uint64 up_to_index = 4; -} - -// Event generated when an account receives a new encrypted amount. -message NewEncryptedAmountEvent { - // The account onto which the amount was added. - AccountAddress receiver = 1; - // The index the amount was assigned. - uint64 new_index = 2; - // The encrypted amount that was added. - EncryptedAmount encrypted_amount = 3; -} - -message EncryptedSelfAmountAddedEvent { - // The affected account. - AccountAddress account = 1; - // The new self encrypted amount of the account. - EncryptedAmount new_amount = 2; - // The amount that was transferred from public to encrypted balance. - Amount amount = 3; -} - -// Data registered on the chain with a register data transaction. -message RegisteredData { - bytes value = 1; -} - -// Events that may result from the ConfigureBaker transaction. -message BakerEvent { - // A baker was added. - message BakerAdded { - // The keys with which the baker registered. - BakerKeysEvent keys_event = 1; - // The amount the account staked to become a baker. This amount is - // locked. - Amount stake = 2; - // Whether the baker will automatically add earnings to their stake or - // not. - bool restake_earnings = 3; - } - // Baker stake increased. - message BakerStakeIncreased { - // Baker's id. - BakerId baker_id = 1; - // The new stake. - Amount new_stake = 2; - } - message BakerStakeDecreased { - // Baker's id. - BakerId baker_id = 1; - // The new stake. - Amount new_stake = 2; - } - message BakerRestakeEarningsUpdated { - // Baker's id. - BakerId baker_id = 1; - // The new value of the flag. - bool restake_earnings = 2; - } - // Updated open status for a baker pool. - message BakerSetOpenStatus { - // Baker's id. - BakerId baker_id = 1; - // The new open status. - OpenStatus open_status = 2; - } - // Updated metadata url for a baker pool. - message BakerSetMetadataUrl { - // Baker's id. - BakerId baker_id = 1; - // The URL. - string url = 2; - } - // Updated transaction fee commission for a baker pool. - message BakerSetTransactionFeeCommission { - // Baker's id. - BakerId baker_id = 1; - // The transaction fee commission. - AmountFraction transaction_fee_commission = 2; - } - // Updated baking reward commission for baker pool - message BakerSetBakingRewardCommission { - // Baker's id - BakerId baker_id = 1; - // The baking reward commission - AmountFraction baking_reward_commission = 2; - } - // Updated finalization reward commission for baker pool - message BakerSetFinalizationRewardCommission { - // Baker's id - BakerId baker_id = 1; - // The finalization reward commission - AmountFraction finalization_reward_commission = 2; - } - oneof event { - // A baker was added. - BakerAdded baker_added = 1; - // A baker was removed. - BakerId baker_removed = 2; - // The baker's stake was increased. - BakerStakeIncreased baker_stake_increased = 3; - // The baker's stake was decreased. - BakerStakeDecreased baker_stake_decreased = 4; - // The baker's setting for restaking earnings was updated. - BakerRestakeEarningsUpdated baker_restake_earnings_updated = 5; - // Baker keys were updated. - BakerKeysEvent baker_keys_updated = 6; - // The baker's open status was updated. - BakerSetOpenStatus baker_set_open_status = 7; - // The baker's metadata URL was updated. - BakerSetMetadataUrl baker_set_metadata_url = 8; - // The baker's transaction fee commission was updated. - BakerSetTransactionFeeCommission baker_set_transaction_fee_commission = 9; - // The baker's baking reward commission was updated. - BakerSetBakingRewardCommission baker_set_baking_reward_commission = 10; - // The baker's finalization reward commission was updated. - BakerSetFinalizationRewardCommission baker_set_finalization_reward_commission = 11; - } -} - -// The identifier for a delegator. -message DelegatorId { - AccountIndex id = 1; -} - -message DelegationEvent { - message DelegationStakeIncreased { - // Delegator's id - DelegatorId delegator_id = 1; - // New stake - Amount new_stake = 2; - } - message DelegationStakeDecreased { - // Delegator's id - DelegatorId delegator_id = 1; - // New stake - Amount new_stake = 2; - } - message DelegationSetRestakeEarnings { - // Delegator's id - DelegatorId delegator_id = 1; - // Whether earnings will be restaked - bool restake_earnings = 2; - } - message DelegationSetDelegationTarget { - // Delegator's id - DelegatorId delegator_id = 1; - // New delegation target - DelegationTarget delegation_target = 2; - } - oneof event { - // The delegator's stake increased. - DelegationStakeIncreased delegation_stake_increased = 1; - // The delegator's stake decreased. - DelegationStakeDecreased delegation_stake_decreased = 2; - // The delegator's restaking setting was updated. - DelegationSetRestakeEarnings delegation_set_restake_earnings = 3; - // The delegator's delegation target was updated. - DelegationSetDelegationTarget delegation_set_delegation_target = 4; - // A delegator was added. - DelegatorId delegation_added = 5; - // A delegator was removed. - DelegatorId delegation_removed = 6; - } -} - -// Effects of an account transaction. All variants except `None` -// correspond to a unique transaction that was successful. -message AccountTransactionEffects { - // No effects other than payment from this transaction. - // The rejection reason indicates why the transaction failed. - message None { - // Transaction type of a failed transaction, if known. - // In case of serialization failure this will not be set. - optional TransactionType transaction_type = 1; - // Reason for rejection of the transaction. - RejectReason reject_reason = 2; - } - // A contract update transaction was issued and produced the given trace. - // This is the result of Update transaction. - message ContractUpdateIssued { - repeated ContractTraceElement effects = 1; - } - // A simple account to account transfer occurred. This is the result of a - // successful Transfer transaction. - message AccountTransfer { - // Amount that was transferred. - Amount amount = 1; - // Receiver account. - AccountAddress receiver = 2; - // Memo. - optional Memo memo = 3; - } - // An account was deregistered as a baker. This is the result of a - // successful UpdateBakerStake transaction. - message BakerStakeUpdated { - // If the stake was updated (that is, it changed and did not stay the - // same) then this is present, otherwise it is not present. - optional BakerStakeUpdatedData update = 1; - } - // An encrypted amount was transferred. This is the result of a successful - // EncryptedAmountTransfer transaction. - message EncryptedAmountTransferred { - EncryptedAmountRemovedEvent removed = 1; - NewEncryptedAmountEvent added = 2; - optional Memo memo = 3; - } - // An account transferred part of its encrypted balance to its public - // balance. This is the result of a successful TransferToPublic transaction. - message TransferredToPublic { - EncryptedAmountRemovedEvent removed = 1; - Amount amount = 2; - } - // A transfer with schedule was performed. This is the result of a - // successful TransferWithSchedule transaction. - message TransferredWithSchedule { - // Receiver account. - AccountAddress receiver = 1; - // The list of releases. Ordered by increasing timestamp. - repeated NewRelease amount = 2; - // Optional memo. - optional Memo memo = 3; - } - // Account's credentials were updated. This is the result of a - // successful UpdateCredentials transaction. - message CredentialsUpdated { - // The credential ids that were added. - repeated CredentialRegistrationId new_cred_ids = 1; - // The credentials that were removed. - repeated CredentialRegistrationId removed_cred_ids = 2; - // The (possibly) updated account threshold. - AccountThreshold new_threshold = 3; - } - // A baker was configured. The details of what happened are contained in - // the list of BakerEvents. - message BakerConfigured { - repeated BakerEvent events = 1; - } - // An account configured delegation. The details of what happened are - // contained in the list of DelegationEvents. - message DelegationConfigured { - repeated DelegationEvent events = 1; - } - - oneof effect { - // No effects other than payment from this transaction. - // The rejection reason indicates why the transaction failed. - None none = 1; - // A smart contract module with the attached reference was deployed. - ModuleRef module_deployed = 2; - // A smart contract was initialized. - ContractInitializedEvent contract_initialized = 3; - // A smart contract instance updated was issued. - ContractUpdateIssued contract_update_issued = 4; - // A simple account to account transfer occurred. - AccountTransfer account_transfer = 5; - // A baker was added. - BakerEvent.BakerAdded baker_added = 6; - // A baker was removed. - BakerId baker_removed = 7; - // A baker's stake was updated. - BakerStakeUpdated baker_stake_updated = 8; - // A baker's restake earnings setting was updated. - BakerEvent.BakerRestakeEarningsUpdated baker_restake_earnings_updated = 9; - // A baker's keys were updated. - BakerKeysEvent baker_keys_updated = 10; - // An encrypted amount was transferred. - EncryptedAmountTransferred encrypted_amount_transferred = 11; - // An account transferred part of its public balance to its encrypted - // balance. - EncryptedSelfAmountAddedEvent transferred_to_encrypted = 12; - // An account transferred part of its encrypted balance to its public balance. - TransferredToPublic transferred_to_public = 13; - // A transfer with a release schedule was made. - TransferredWithSchedule transferred_with_schedule = 14; - // Keys of a specific credential were updated. - CredentialRegistrationId credential_keys_updated = 15; - // Account credentials were updated. - CredentialsUpdated credentials_updated = 16; - // Some data was registered on the chain. - RegisteredData data_registered = 17; - // A baker was configured. The details of what happened are contained in a list of BakerEvents. - BakerConfigured baker_configured = 18; - // A delegator was configured. The details of what happened are contained in a list of DelegatorEvents. - DelegationConfigured delegation_configured = 19; - } -} - -// Election difficulty parameter. -message ElectionDifficulty { - AmountFraction value = 1; -} - -// Parameters that determine timeouts in the consensus protocol used from protocol version 6. -message TimeoutParameters { - // The base value for triggering a timeout - Duration timeout_base = 1; - // Factor for increasing the timeout. Must be greater than 1. - Ratio timeout_increase = 2; - // Factor for decreasing the timeout. Must be between 0 and 1. - Ratio timeout_decrease = 3; -} - -// Finalization committee parameters used from protocol version 6 -message FinalizationCommitteeParameters { - // The minimum size of a finalization committee before `finalizer_relative_stake_threshold` takes effect. - uint32 minimum_finalizers = 1; - // The maximum size of a finalization committee. - uint32 maximum_finalizers = 2; - // The threshold for determining the stake required for being eligible the finalization committee. - // The amount is given by `total stake in pools * finalizer_relative_stake_threshold` - AmountFraction finalizer_relative_stake_threshold = 3; -} - -// Parameters for the consensus protocol used from protocol version 6. -message ConsensusParametersV1 { - // Parameters controlling round timeouts. - TimeoutParameters timeout_parameters = 1; - // Minimum time interval between blocks. - Duration min_block_time = 2; - // Maximum energy allowed per block. - Energy block_energy_limit = 3; -} - -// Represents an exchange rate. -message ExchangeRate { - Ratio value = 1; -} - -// Represents a ratio, i.e., 'numerator / denominator'. -message Ratio { - // The numerator. - uint64 numerator = 1; - // The denominator. - uint64 denominator = 2; -} - -// A public key used for chain updates. -message UpdatePublicKey { - bytes value = 1; -} - -// The threshold for how many UpdatePublicKeys are need to make a certain chain update. -message UpdateKeysThreshold { - // Is ensured to be within between 1 and 2^16. - uint32 value = 1; -} - -// Index of a key in an authorizations update payload. -message UpdateKeysIndex { - uint32 value = 1; -} - -// Represents root or level 1 keys. -message HigherLevelKeys { - // The keys. - repeated UpdatePublicKey keys = 1; - // The number of keys needed to make a chain update. - UpdateKeysThreshold threshold = 2; -} - -// An access structure which specifies which UpdatePublicKeys in a HigherLevelKeys that are allowed -// to make chain update of a specific type. The threshold defines the minimum number of allowed keys needed -// to make the actual update. -message AccessStructure { - // Unique indexes into the set of keys in AuthorizationV0. - repeated UpdateKeysIndex access_public_keys = 1; - // Number of keys requred to authorize an update. - UpdateKeysThreshold access_threshold = 2; -} - -// The set of keys authorized for chain updates, together with access structures -// determining which keys are authorized for which update types. -// This is the payload of an update to authorization. -message AuthorizationsV0 { - // The set of keys authorized for chain updates. - repeated UpdatePublicKey keys = 1; - // New emergency keys. - AccessStructure emergency = 2; - // New protocol update keys. - AccessStructure protocol = 3; - // Access structure for updating the consensus parameters. - // Previously, this was the election difficulty. - AccessStructure parameter_consensus = 4; - // Access structure for updating the euro per energy. - AccessStructure parameter_euro_per_energy = 5; - // Access structure for updating the micro CCD per euro. - AccessStructure parameter_micro_CCD_per_euro = 6; - // Access structure for updating the foundation account. - AccessStructure parameter_foundation_account = 7; - // Access structure for updating the mint distribution. - AccessStructure parameter_mint_distribution = 8; - // Access structure for updating the transaction fee distribution. - AccessStructure parameter_transaction_fee_distribution = 9; - // Access structure for updating the gas rewards. - AccessStructure parameter_gas_rewards = 10; - // Access structure for updating the pool parameters. For V0 this is only - // the baker stake threshold, for V1 there are more. - AccessStructure pool_parameters = 11; - // Access structure for adding new anonymity revokers. - AccessStructure add_anonymity_revoker = 12; - // Access structure for adding new identity providers. - AccessStructure add_identity_provider = 13; -} - -// The set of keys authorized for chain updates, together with access structures -// determining which keys are authorized for which update types. -// This is the payload of an update to authorization. -message AuthorizationsV1 { - AuthorizationsV0 v0 = 1; - // Access structure for updating the cooldown periods related to baking and delegation. - AccessStructure parameter_cooldown = 2; - // Access structure for updating the length of the reward period. - AccessStructure parameter_time = 3; -} - -// Description either of an anonymity revoker or identity provider. -// Metadata that should be visible on the chain. -message Description { - // The name. - string name = 1; - // A link to more information about the anonymity revoker or identity provider. - string url = 2; - // A free form description of the revoker or provider. - string description = 3; -} - -// Information on a single anonymity revoker help by the identity provider. -// Typically an identity provider will hold more than one. -message ArInfo { - // Identity of the anonymity revoker on the chain. This defines their - // evaluateion point for secret sharing, and thus it cannot be 0. - message ArIdentity { - uint32 value = 1; - } - // Public key of an anonymity revoker. - message ArPublicKey { - bytes value = 1; - } - // Unique identifier of the anonymity revoker. - ArIdentity identity = 1; - // Description of the anonymity revoker. - Description description = 2; - // Elgamal encryption key of the anonymity revoker. - ArPublicKey public_key = 3; -} - -// A succinct identifier of an identity provider on the chain. -// In credential deployments, and other interactions with the chain this is -// used to identify which identity provider is meant. -message IpIdentity { - uint32 value = 1; -} - -// Public information about an identity provider. -message IpInfo { - // Pointcheval-Sanders public key of the identity provider. - message IpVerifyKey { - bytes value = 1; - } - // Ed25519 public key of the identity provider. - message IpCdiVerifyKey { - bytes value = 1; - } - // Unique identifier of the identity provider. - IpIdentity identity = 1; - // Description of the identity provider. - Description description = 2; - // Pointcheval-Sanders public key of the identity provider. - IpVerifyKey verify_key = 3; - // Ed25519 public key of the identity provider. - IpCdiVerifyKey cdi_verify_key = 4; -} - -// A duration in seconds. -message DurationSeconds { - uint64 value = 1; -} - -// Inclusive range of amount fractions. -message InclusiveRangeAmountFraction { - AmountFraction min = 1; - AmountFraction max_ = 2; -} - -// Ranges of allowed commission values that pools may choose from. -message CommissionRanges { - // The range of allowed finalization commissions. - InclusiveRangeAmountFraction finalization = 1; - // The range of allowed baker commissions. - InclusiveRangeAmountFraction baking = 2; - // The range of allowed transaction commissions. - InclusiveRangeAmountFraction transaction = 3; -} - -// A bound on the relative share of the total staked capital that a baker can -// have as its stake. This is required to be greater than 0. -message CapitalBound { - AmountFraction value = 1; -} - -// A leverage factor. -message LeverageFactor { - Ratio value = 1; -} - -// A chain epoch. -message Epoch { - uint64 value = 1; -} - -// Length of a reward period in epochs. -// Must always be a strictly positive number. -message RewardPeriodLength { - Epoch value = 1; -} - -// A minting rate of CCD. -// The value is `mantissa * 10^(-exponent)`. -message MintRate { - uint32 mantissa = 1; - // This will never exceed 255 and can thus be stored in a single byte. - uint32 exponent = 2; -} - -message CooldownParametersCpv1 { - // Number of seconds that pool owners must cooldown - // when reducing their equity capital or closing the pool. - DurationSeconds pool_owner_cooldown = 1; - // Number of seconds that a delegator must cooldown - // when reducing their delegated stake. - DurationSeconds delegator_cooldown = 2; -} - -// Parameters related to staking pools. -message PoolParametersCpv1 { - // Fraction of finalization rewards charged by the passive delegation. - AmountFraction passive_finalization_commission = 1; - // Fraction of baking rewards charged by the passive delegation. - AmountFraction passive_baking_commission = 2; - // Fraction of transaction rewards charged by the L-pool. - AmountFraction passive_transaction_commission = 3; - // Bounds on the commission rates that may be charged by bakers. - CommissionRanges commission_bounds = 4; - // Minimum equity capital required for a new baker. - Amount minimum_equity_capital = 5; - // Maximum fraction of the total staked capital of that a new baker can - // have. - CapitalBound capital_bound = 6; - // The maximum leverage that a baker can have as a ratio of total stake - // to equity capital. - LeverageFactor leverage_bound = 7; -} - -// The time parameters are introduced as of protocol version 4, and consist of -// the reward period length and the mint rate per payday. These are coupled as -// a change to either affects the overall rate of minting. -message TimeParametersCpv1 { - RewardPeriodLength reward_period_length = 1; - MintRate mint_per_payday = 2; -} - -// Mint distribution payload as it looks in protocol version 4 and onward. -message MintDistributionCpv1 { - AmountFraction baking_reward = 1; - AmountFraction finalization_reward = 2; -} - -message ProtocolUpdate { - // A brief message about the update. - string message_ = 1; - // A URL of a document describing the update. - string specification_url = 2; - // SHA256 hash of the specification document. - Sha256Hash specificationHash = 3; - // Auxiliary data whose interpretation is defined by the new specification. - bytes specification_auxiliary_data = 4; -} -// The minting rate and the distribution of newly-minted CCD among bakers, -// finalizers, and the foundation account. It must be the case that -// baking_reward + finalization_reward <= 1. The remaining amount is the -// platform development charge. -message MintDistributionCpv0 { - // Mint rate per slot. - MintRate mint_per_slot = 1; - // The fraction of newly created CCD allocated to baker rewards. - AmountFraction baking_reward = 2; - // The fraction of newly created CCD allocated to finalization rewards. - AmountFraction finalization_reward = 3; -} - -// Parameters determining the distribution of transaction fees. -message TransactionFeeDistribution { - // The fraction allocated to the baker. - AmountFraction baker = 1; - // The fraction allocated to the GAS account. - AmountFraction gas_account = 2; -} - -// Distribution of gas rewards for chain parameters version 0 and 1. -message GasRewards { - // The fraction paid to the baker. - AmountFraction baker = 1; - // Fraction paid for including a finalization proof in a block. - AmountFraction finalization_proof = 2; - // Fraction paid for including each account creation transaction in a block. - AmountFraction account_creation = 3; - // Fraction paid for including an update transaction in a block. - AmountFraction chain_update = 4; -} - -// Distribution of gas rewards for chain parameters version 2. -message GasRewardsCpv2 { - // The fraction paid to the baker. - AmountFraction baker = 1; - // Fraction paid for including each account creation transaction in a block. - AmountFraction account_creation = 3; - // Fraction paid for including an update transaction in a block. - AmountFraction chain_update = 4; -} - -// Minimum stake needed to become a baker. This only applies to protocol version -// 1-3. -message BakerStakeThreshold { - // Minimum threshold required for registering as a baker. - Amount baker_stake_threshold = 1; -} - -// Root updates are the highest kind of key updates. They can update every other set of keys, -// even themselves. They can only be performed by Root level keys. -message RootUpdate { - oneof update_type { - // The root keys were updated. - HigherLevelKeys root_keys_update = 1; - // The level 1 keys were updated. - HigherLevelKeys level_1_keys_update = 2; - // The level 2 keys were updated. - AuthorizationsV0 level_2_keys_update_v0 = 3; - // The level 2 keys were updated. This is similar to `level_2_keys_update_v0` except that a few more keys can be updated. - AuthorizationsV1 level_2_keys_update_v1 = 4; - } -} -// Level 1 updates are the intermediate update kind. -// They can update themselves or level 2 keys. They can only be performed by level 1 keys. -message Level1Update { - oneof update_type { - // The level 1 keys were updated. - HigherLevelKeys level_1_keys_update = 1; - // The level 2 keys were updated. - AuthorizationsV0 level_2_keys_update_v0 = 2; - // The level 2 keys were updated. This is similar to `level_2_keys_update_v0` except that a few more keys can be updated. - AuthorizationsV1 level_2_keys_update_v1 = 3; - } -} - -// The payload of a chain update. -message UpdatePayload { - oneof payload { - // The protocol version was updated. - ProtocolUpdate protocol_update = 1; - // The election difficulty was updated. - ElectionDifficulty election_difficulty_update = 2; - // The euro per energy exchange rate was updated. - ExchangeRate euro_per_energy_update = 3; - // The microCCD per euro exchange rate was updated. - ExchangeRate micro_ccd_per_euro_update = 4; - // The foundation account address was updated. - AccountAddress foundation_account_update = 5; - // The mint distribution was updated. - MintDistributionCpv0 mint_distribution_update = 6; - // The transaction fee distribtuion was updated. - TransactionFeeDistribution transaction_fee_distribution_update = 7; - // The gas rewards were updated. - GasRewards gas_rewards_update = 8; - // The minimum amount of CCD needed to be come a baker was updated. - BakerStakeThreshold baker_stake_threshold_update = 9; - // The root keys were updated. - RootUpdate root_update = 10; - // The level 1 keys were updated. - Level1Update level_1_update = 11; - // An anonymity revoker was added. - ArInfo add_anonymity_revoker_update = 12; - // An identity provider was added. - IpInfo add_identity_provider_update = 13; - // The cooldown parameters were updated. - CooldownParametersCpv1 cooldown_parameters_cpv_1_update = 14; - // The pool parameters were updated. - PoolParametersCpv1 pool_parameters_cpv_1_update = 15; - // The time parameters were updated. - TimeParametersCpv1 time_parameters_cpv_1_update = 16; - // The mint distribution was updated. - MintDistributionCpv1 mint_distribution_cpv_1_update = 17; - // The gas rewards were updated (chain parameters version 2). - GasRewardsCpv2 gas_rewards_cpv_2_update = 18; - // The consensus timeouts were updated (chain parameters version 2). - TimeoutParameters timeout_parameters_update = 19; - // The minimum time between blocks was updated (chain parameters version 2). - Duration min_block_time_update = 20; - // The block energy limit was updated (chain parameters version 2). - Energy block_energy_limit_update = 21; - // Finalization committee parameters (chain parameters version 2). - FinalizationCommitteeParameters finalization_committee_parameters_update = 22; - } -} - -// Details about an account transaction. -message AccountTransactionDetails { - // The cost of the transaction. Paid by the sender. - Amount cost = 1; - // The sender of the transaction. - AccountAddress sender = 2; - // The effects of the transaction. - AccountTransactionEffects effects = 3; -} - -// Details of an account creation. These transactions are free, and we only -// ever get a response for them if the account is created, hence no failure -// cases. -message AccountCreationDetails { - // Whether this is an initial or normal account. - CredentialType credential_type = 1; - // Address of the newly created account. - AccountAddress address = 2; - // Credential registration ID of the first credential. - CredentialRegistrationId reg_id = 3; -} - -// The type of a credential. -enum CredentialType { - // An initial credential created by the identity provider. - CREDENTIAL_TYPE_INITIAL = 0; - // A normal credential type created by the account. - CREDENTIAL_TYPE_NORMAL = 1; -} - -// Transaction time specified as seconds since unix epoch. -message TransactionTime { - uint64 value = 1; -} - -// Details of an update instruction. These are free, and we only ever get a -// response for them if the update is successfully enqueued, hence no failure -// cases. -message UpdateDetails { - // The time at which the update will be effective. - TransactionTime effective_time = 1; - // The paylaod for the update. - UpdatePayload payload = 2; -} - -// Summary of the outcome of a block item in structured form. -// The summary determines which transaction type it was. -message BlockItemSummary { - message TransactionIndex { - uint64 value = 1; - } - - // Index of the transaction in the block where it is included. - TransactionIndex index = 1; - // The amount of NRG the transaction cost. - Energy energy_cost = 2; - // Hash of the transaction. - TransactionHash hash = 3; - // Details that are specific to different transaction types. - oneof details { - // Detailsa about an account transaction. - AccountTransactionDetails account_transaction = 4; - // Details about an account creation. - AccountCreationDetails account_creation = 5; - // Details about a chain update. - UpdateDetails update = 6; - } -} - -// The type of chain update. -enum UpdateType { - UPDATE_PROTOCOL = 0; - UPDATE_ELECTION_DIFFICULTY = 1; - UPDATE_EURO_PER_ENERGY = 2; - UPDATE_MICRO_CCD_PER_EURO = 3; - UPDATE_FOUNDATION_ACCOUNT = 4; - UPDATE_MINT_DISTRIBUTION = 5; - UPDATE_TRANSACTION_FEE_DISTRIBUTION = 6; - UPDATE_GAS_REWARDS = 7; - UPDATE_POOL_PARAMETERS = 8; - ADD_ANONYMITY_REVOKER = 9; - ADD_IDENTITY_PROVIDER = 10; - UPDATE_ROOT_KEYS = 11; - UPDATE_LEVEL1_KEYS = 12; - UPDATE_LEVEL2_KEYS = 13; - UPDATE_COOLDOWN_PARAMETERS = 14; - UPDATE_TIME_PARAMETERS = 15; - UPDATE_TIMEOUT_PARAMETERS = 16; - UPDATE_MIN_BLOCK_TIME = 17; - UPDATE_BLOCK_ENERGY_LIMIT = 18; - UPDATE_FINALIZATION_COMMITTEE_PARAMETERS = 19; -} - -// The type of transaction. -enum TransactionType { - DEPLOY_MODULE = 0; - INIT_CONTRACT = 1; - UPDATE = 2; - TRANSFER = 3; - ADD_BAKER = 4; - REMOVE_BAKER = 5; - UPDATE_BAKER_STAKE = 6; - UPDATE_BAKER_RESTAKE_EARNINGS = 7; - UPDATE_BAKER_KEYS = 8; - UPDATE_CREDENTIAL_KEYS = 9; - ENCRYPTED_AMOUNT_TRANSFER = 10; - TRANSFER_TO_ENCRYPTED = 11; - TRANSFER_TO_PUBLIC = 12; - TRANSFER_WITH_SCHEDULE = 13; - UPDATE_CREDENTIALS = 14; - REGISTER_DATA = 15; - TRANSFER_WITH_MEMO = 16; - ENCRYPTED_AMOUNT_TRANSFER_WITH_MEMO = 17; - TRANSFER_WITH_SCHEDULE_AND_MEMO = 18; - CONFIGURE_BAKER = 19; - CONFIGURE_DELEGATION = 20; -} - -// The different versions of the protocol. -enum ProtocolVersion { - PROTOCOL_VERSION_1 = 0; - PROTOCOL_VERSION_2 = 1; - PROTOCOL_VERSION_3 = 2; - PROTOCOL_VERSION_4 = 3; - PROTOCOL_VERSION_5 = 4; - PROTOCOL_VERSION_6 = 5; -} - -// The number of chain restarts via a protocol update. An effected -// protocol update instruction might not change the protocol version -// specified in the previous field, but it always increments the genesis -// index. -message GenesisIndex { - uint32 value = 1; -} - -// The response for GetConsensusInfo. -message ConsensusInfo { - // Hash of the current best block. - BlockHash best_block = 1; - // Hash of the (original) genesis block. - BlockHash genesis_block = 2; - // Time of the (original) genesis block. - Timestamp genesis_time = 3; - // (Current) slot duration in milliseconds. - Duration slot_duration = 4; - // (Current) epoch duration in milliseconds. - Duration epoch_duration = 5; - // Hash of the last finalized block. - BlockHash last_finalized_block = 6; - // Absolute height of the best block. - AbsoluteBlockHeight best_block_height = 7; - // Absolute height of the last finalized block. - AbsoluteBlockHeight last_finalized_block_height = 8; - // Total number of blocks received. - uint32 blocks_received_count = 9; - // The last time a block was received. - optional Timestamp block_last_received_time = 10; - // Exponential moving average latency between a block's slot time and received time. - double block_receive_latency_ema = 11; - // Standard deviation of exponential moving average latency between a block's slot time and received time. - double block_receive_latency_emsd = 12; - // Exponential moving average time between receiving blocks. - optional double block_receive_period_ema = 13; - // Standard deviation of exponential moving average time between receiving blocks. - optional double block_receive_period_emsd = 14; - // Total number of blocks received and verified. - uint32 blocks_verified_count = 15; - // The last time a block was verified (added to the tree). - optional Timestamp block_last_arrived_time = 16; - // Exponential moving average latency between a block's slot time and its arrival. - double block_arrive_latency_ema = 17; - // Standard deviation of exponential moving average latency between a block's slot time and its arrival. - double block_arrive_latency_emsd = 18; - // Exponential moving average time between block arrivals. - optional double block_arrive_period_ema = 19; - // Standard deviation of exponential moving average time between block arrivals. - optional double block_arrive_period_emsd = 20; - // Exponential moving average number of transactions per block. - double transactions_per_block_ema = 21; - // Standard deviation of exponential moving average number of transactions per block. - double transactions_per_block_emsd = 22; - // Number of finalizations. - uint32 finalization_count = 23; - // Time of last verified finalization. - optional Timestamp last_finalized_time = 24; - // Exponential moving average time between finalizations. - optional double finalization_period_ema = 25; - // Standard deviation of exponential moving average time between finalizations. - optional double finalization_period_emsd = 26; - // Currently active protocol version. - ProtocolVersion protocol_version = 27; - // The number of chain restarts via a protocol update. A completed - // protocol update instruction might not change the protocol version - // specified in the previous field, but it always increments the genesis - // index. - GenesisIndex genesis_index = 28; - // Block hash of the genesis block of current era, i.e., since the last protocol update. - // Initially this is equal to 'genesis_block'. - BlockHash current_era_genesis_block = 29; - // Time when the current era started. - Timestamp current_era_genesis_time = 30; -} - -// Information about an arrived block that is part of the streaming response. -message ArrivedBlockInfo { - // Hash of the block. - BlockHash hash = 1; - // Absolute height of the block, height 0 is the genesis block. - AbsoluteBlockHeight height = 2; -} - -// The response for GetCryptographicParameters. -message CryptographicParameters { - // A free-form string used to distinguish between different chains even if they share other parameters. - string genesis_string = 1; - // Generators for the bulletproofs. - // It is a serialized list of 256 group elements in the G1 group of the BLS12-381 curve. - bytes bulletproof_generators = 2; - // A shared commitment key known to the chain and the account holder (and therefore it is public). - // The account holder uses this commitment key to generate commitments to values in the attribute list. - // It is a serialized pair of group elements in the G1 group of the BLS12-381 curve. - bytes on_chain_commitment_key = 3; -} - -// The response for GetBlockInfo. -message BlockInfo { - // Hash of the block. - BlockHash hash = 1; - // Absolute height of the block, height 0 is the genesis block. - AbsoluteBlockHeight height = 2; - // The parent block hash. For a re-genesis block, this will be the terminal block of the - // previous chain. For the initial genesis block, this will be the hash of the block itself. - BlockHash parent_block = 3; - // The last finalized block when this block was baked. - BlockHash last_finalized_block = 4; - // The genesis index for this block. This counts the number of protocol updates that have - // preceded this block, and defines the era of the block. - GenesisIndex genesis_index = 5; - // The height of this block relative to the (re)genesis block of its era. - BlockHeight era_block_height = 6; - // The time the block was received. - Timestamp receive_time = 7; - // The time the block was verified. - Timestamp arrive_time = 8; - // The slot number in which the block was baked. - Slot slot_number = 9; - // The time of the slot in which the block was baked. - Timestamp slot_time = 10; - // The baker id of account baking this block. Not provided for a genesis block. - optional BakerId baker = 11; - // Whether the block is finalized. - bool finalized = 12; - // The number of transactions in the block. - uint32 transaction_count = 13; - // The energy cost of the transactions in the block. - Energy transactions_energy_cost = 14; - // The total byte size of all transactions in the block. - uint32 transactions_size = 15; - // The hash of the block state after this block. - StateHash state_hash = 16; - // Protocol version to which the block belongs. - ProtocolVersion protocol_version = 17; -} - -// Request for GetPoolInfo. -message PoolInfoRequest { - // Block in which to query the pool information. - BlockHashInput block_hash = 1; - // The 'BakerId' of the pool owner. - BakerId baker = 2; -} - -// A pending change to a baker pool. -message PoolPendingChange { - // A reduction in baker equity capital is pending. - message Reduce { - // New baker equity capital. - Amount reduced_equity_capital = 1; - // Timestamp when the change takes effect. - Timestamp effective_time = 2; - } - - // Removal of the pool is pending. - message Remove { - // Timestamp when the change takes effect. - Timestamp effective_time = 1; - } - - oneof change { - Reduce reduce = 1; - Remove remove = 2; - } -} - -// Information about a baker pool in the current reward period. -message PoolCurrentPaydayInfo { - // The number of blocks baked in the current reward period. - uint64 blocks_baked = 1; - // Whether the baker has contributed a finalization proof in the current reward period. - bool finalization_live = 2; - // The transaction fees accruing to the pool in the current reward period. - Amount transaction_fees_earned = 3; - // The effective stake of the baker in the current reward period. - Amount effective_stake = 4; - // The lottery power of the baker in the current reward period. - double lottery_power = 5; - // The effective equity capital of the baker for the current reward period. - Amount baker_equity_capital = 6; - // The effective delegated capital to the pool for the current reward period. - Amount delegated_capital = 7; -} - -// Type for the response of GetPoolInfo. -// Contains information about a given pool at the end of a given block. -message PoolInfoResponse { - // The 'BakerId' of the pool owner. - BakerId baker = 1; - // The account address of the pool owner. - AccountAddress address = 2; - // The equity capital provided by the pool owner. - Amount equity_capital = 3; - // The capital delegated to the pool by other accounts. - Amount delegated_capital = 4; - // The maximum amount that may be delegated to the pool, accounting for leverage and stake limits. - Amount delegated_capital_cap = 5; - // The pool info associated with the pool: open status, metadata URL and commission rates. - BakerPoolInfo pool_info = 6; - // Any pending change to the equity carpital. - optional PoolPendingChange equity_pending_change = 7; - // Information of the pool in the current reward period. - optional PoolCurrentPaydayInfo current_payday_info = 8; - // Total capital staked across all pools, including passive delegation. - Amount all_pool_total_capital = 9; -} - -// Type for the response of GetPassiveDelegationInfo. -// Contains information about passive delegators at the end of a given block. -message PassiveDelegationInfo { - // The total capital delegated passively. - Amount delegated_capital = 1; - // The passive delegation commission rates. - CommissionRates commission_rates = 2; - // The transaction fees accruing to the passive delegators in the current reward period. - Amount current_payday_transaction_fees_earned = 3; - // The effective delegated capital of passive delegators for the current reward period. - Amount current_payday_delegated_capital = 4; - // Total capital staked across all pools, including passive delegation. - Amount all_pool_total_capital = 5; -} - -// Request for GetBlocksAtHeight. -message BlocksAtHeightRequest { - // Request using an absolute block height. - message Absolute { - // The absolute block height. - AbsoluteBlockHeight height = 1; - } - - // Request using a relative block height. - message Relative { - // Genesis index to start from. - GenesisIndex genesis_index = 1; - // Height starting from the genesis block at the genesis index. - BlockHeight height = 2; - // Whether to return results only from the specified genesis index (`true`), - // or allow results from more recent genesis indices as well (`false`). - bool restrict = 3; - } - - oneof blocks_at_height { - Absolute absolute = 1; - Relative relative = 2; - } -} - -// Response for GetBlocksAtHeight. -message BlocksAtHeightResponse { - // Live blocks at the given height. - repeated BlockHash blocks = 1; -} - -// Type for the response of GetTokenomicsInfo. -// Contains information related to tokenomics at the end of a given block. -message TokenomicsInfo { - // Version 0 tokenomics. - message V0 { - // The total CCD in existence. - Amount total_amount = 1; - // The total CCD in encrypted balances. - Amount total_encrypted_amount = 2; - // The amount in the baking reward account. - Amount baking_reward_account = 3; - // The amount in the finalization reward account. - Amount finalization_reward_account = 4; - // The amount in the GAS account. - Amount gas_account = 5; - // The protocol version. - ProtocolVersion protocol_version = 6; - } - // Version 1 tokenomics. - message V1 { - // The total CCD in existence. - Amount total_amount = 1; - // The total CCD in encrypted balances. - Amount total_encrypted_amount = 2; - // The amount in the baking reward account. - Amount baking_reward_account = 3; - // The amount in the finalization reward account. - Amount finalization_reward_account = 4; - // The amount in the GAS account. - Amount gas_account = 5; - // The transaction reward fraction accruing to the foundation (to be paid at next payday). - Amount foundation_transaction_rewards = 6; - // The time of the next payday. - Timestamp next_payday_time = 7; - // The rate at which CCD will be minted (as a proportion of the total supply) at the next payday. - MintRate next_payday_mint_rate = 8; - // The total capital put up as stake by bakers and delegators. - Amount total_staked_capital = 9; - // The protocol version. - ProtocolVersion protocol_version = 10; - } - - oneof tokenomics { - V0 v0 = 1; - V1 v1 = 2; - } -} - -// Request for InvokeInstance. -message InvokeInstanceRequest { - // Block to invoke the contract. The invocation will be at the end of the given block. - BlockHashInput block_hash = 1; - // Invoker of the contract. If this is not supplied then the contract will be - // invoked by an account with address 0, no credentials and sufficient amount - // of CCD to cover the transfer amount. If given, the relevant address (either - // account or contract) must exist in the blockstate. - optional Address invoker = 2; - // Address of the contract instance to invoke. - ContractAddress instance = 3; - // Amount to invoke the smart contract instance with. - Amount amount = 4; - // The entrypoint of the smart contract instance to invoke. - ReceiveName entrypoint = 5; - // The parameter bytes to include in the invocation of the entrypoint. - Parameter parameter = 6; - // And what amount of energy to allow for execution. This cannot exceed - // `100_000_000_000`, but in practice it should be much less. The maximum - // block energy is typically in the range of a few million. - Energy energy = 7; -} - -// Response type for InvokeInstance. -message InvokeInstanceResponse { - // Contract execution failed. - message Failure { - // If invoking a V0 contract this is not provided, otherwise it is - // potentially return value produced by the call unless the call failed with - // out of energy or runtime error. If the V1 contract terminated with a - // logic error then the return value is present. - optional bytes return_value = 1; - // Energy used by the execution. - Energy used_energy = 2; - // Contract execution failed for the given reason. - RejectReason reason = 3; - } - - // Contract execution succeeded. - message Success { - // If invoking a V0 contract this is absent. Otherwise it is the return - // value produced by the contract. - optional bytes return_value = 1; - // Energy used by the execution. - Energy used_energy = 2; - // Effects produced by contract execution. - repeated ContractTraceElement effects = 3; - } - - oneof result { - Success success = 1; - Failure failure = 2; - } -} - -// Request for GetPoolDelegators and GetPoolDelegatorsRewardPeriod. -message GetPoolDelegatorsRequest { - // Block in which to query the delegators. - BlockHashInput block_hash = 1; - // The 'BakerId' of the pool owner. - BakerId baker = 2; -} - -// Stream item for GetPoolDelegators and GetPassiveDelegators. -message DelegatorInfo { - // The delegator account address. - AccountAddress account = 1; - // The amount of stake currently staked to the pool. - Amount stake = 2; - // Pending change to the current stake of the delegator. - optional StakePendingChange pending_change = 3; -} - -// Stream item for GetPoolDelegatorsRewardPeriod and GetPassiveDelegatorsRewardPeriod. -message DelegatorRewardPeriodInfo { - // The delegator account address. - AccountAddress account = 1; - // The amount of stake currently staked to the pool. - Amount stake = 2; -} - -// Response type for GetBranches. -message Branch { - // The hash of the block. - BlockHash block_hash = 1; - // Further blocks branching of this block. - repeated Branch children = 2; -} - -// The leadership election nonce is an unpredictable value updated once an -// epoch to make sure that bakers cannot predict too far in the future when -// they will win the right to bake blocks. -message LeadershipElectionNonce { - bytes value = 1; -} - -// Response type for GetElectionInfo. -// Contains information related to baker election for a perticular block. -message ElectionInfo { - message Baker { - // The ID of the baker. - BakerId baker = 1; - // The account address of the baker. - AccountAddress account = 2; - // The lottery power of the baker, rounded to the nearest representable "double". - double lottery_power = 3; - } - - // Baking lottery election difficulty. - ElectionDifficulty election_difficulty = 1; - // Current leadership election nonce for the lottery. - LeadershipElectionNonce election_nonce = 2; - // List of the currently eligible bakers. - repeated Baker baker_election_info = 3; -} - -// A protocol generated event that is not directly caused by a transaction. This -// includes minting new CCD, rewarding different bakers and delegators, etc. -message BlockSpecialEvent { - // A representation of a mapping from an account address to an amount. - message AccountAmounts { - // The entry for the map. - message Entry { - // The key type - AccountAddress account = 1; - // The value type - Amount amount = 2; - } - - repeated Entry entries = 1; - } - - // Payment to each baker of a previous epoch, in proportion to the number - // of blocks they contributed. - message BakingRewards { - // The amount awarded to each baker. - AccountAmounts baker_rewards = 1; - // The remaining balance of the baker reward account. - Amount remainder = 2; - } - - // Minting of new CCD. - message Mint { - // The amount allocated to the banking reward account. - Amount mint_baking_reward = 1; - // The amount allocated to the finalization reward account. - Amount mint_finalization_reward = 2; - // The amount allocated as the platform development charge. - Amount mint_platform_development_charge = 3; - // The account to which the platform development charge is paid. - AccountAddress foundation_account = 4; - } - - // Payment to each finalizer on inclusion of a finalization record in a block. - message FinalizationRewards { - // The amount awarded to each finalizer. - AccountAmounts finalization_rewards = 1; - // The remaining balance of the finalization reward account. - Amount remainder = 2; - } - - // Disbursement of fees from a block between the GAS account, - // the baker, and the foundation. It should always be that: - // - // ```transaction_fees + old_gas_account = new_gas_account + baker_reward + foundation_charge``` - message BlockReward { - // The total fees paid for transactions in the block. - Amount transaction_fees = 1; - // The old balance of the GAS account. - Amount old_gas_account = 2; - // The new balance of the GAS account. - Amount new_gas_account = 3; - // The amount awarded to the baker. - Amount baker_reward = 4; - // The amount awarded to the foundation. - Amount foundation_charge = 5; - // The baker of the block, who receives the award. - AccountAddress baker = 6; - // The foundation account. - AccountAddress foundation_account = 7; - } - - // Foundation tax. - message PaydayFoundationReward { - // The account that got rewarded. - AccountAddress foundation_account = 1; - // The transaction fee reward at payday to the account. - Amount development_charge = 2; - } - - // Reward payment to the given account. - message PaydayAccountReward { - // The account that got rewarded. - AccountAddress account = 1; - // The transaction fee reward at payday to the account. - Amount transaction_fees = 2; - // The baking reward at payday to the account. - Amount baker_reward = 3; - // The finalization reward at payday to the account. - Amount finalization_reward = 4; - } - - // Amounts accrued to accounts for each baked block. - message BlockAccrueReward { - // The total fees paid for transactions in the block. - Amount transaction_fees = 1; - // The old balance of the GAS account. - Amount old_gas_account = 2; - // The new balance of the GAS account. - Amount new_gas_account = 3; - // The amount awarded to the baker. - Amount baker_reward = 4; - // The amount awarded to the passive delegators. - Amount passive_reward = 5; - // The amount awarded to the foundation. - Amount foundation_charge = 6; - // The baker of the block, who will receive the award. - BakerId baker = 7; - } - - // Payment distributed to a pool or passive delegators. - message PaydayPoolReward { - // The pool owner (passive delegators when not present). - optional BakerId pool_owner = 1; - // Accrued transaction fees for pool. - Amount transaction_fees = 2; - // Accrued baking rewards for pool. - Amount baker_reward = 3; - // Accrued finalization rewards for pool. - Amount finalization_reward = 4; - } - - oneof event { - BakingRewards baking_rewards = 1; - Mint mint = 2; - FinalizationRewards finalization_rewards = 3; - BlockReward block_reward = 4; - PaydayFoundationReward payday_foundation_reward = 5; - PaydayAccountReward payday_account_reward = 6; - BlockAccrueReward block_accrue_reward = 7; - PaydayPoolReward payday_pool_reward = 8; - } -} - -// A pending update. -message PendingUpdate { - // The effective time of the update. - TransactionTime effective_time = 1; - // The effect of the update. - oneof effect { - // Updates to the root keys. - HigherLevelKeys root_keys = 2; - // Updates to the level 1 keys. - HigherLevelKeys level1_keys = 3; - // Updates to the level 2 keys. - AuthorizationsV0 level2_keys_cpv_0 = 4; - // Updates to the level 2 keys. - AuthorizationsV1 level2_keys_cpv_1 = 5; - // Protocol updates. - ProtocolUpdate protocol = 6; - // Updates to the election difficulty parameter. - ElectionDifficulty election_difficulty = 7; - // Updates to the euro:energy exchange rate. - ExchangeRate euro_per_energy = 8; - // Updates to the CCD:EUR exchange rate. - ExchangeRate micro_ccd_per_euro = 9; - // Updates to the foundation account. - AccountAddress foundation_account = 10; - // Updates to the mint distribution. Is only relevant prior to protocol version 4. - MintDistributionCpv0 mint_distribution_cpv_0 = 11; - // The mint distribution was updated. Introduced in protocol version 4. - MintDistributionCpv1 mint_distribution_cpv_1 = 12; - // Updates to the transaction fee distribution. - TransactionFeeDistribution transaction_fee_distribution = 13; - // Updates to the GAS rewards. - GasRewards gas_rewards = 14; - // Updates baker stake threshold. Is only relevant prior to protocol version 4. - BakerStakeThreshold pool_parameters_cpv_0 = 15; - // Updates pool parameters. Introduced in protocol version 4. - PoolParametersCpv1 pool_parameters_cpv_1 = 16; - // Adds a new anonymity revoker. - ArInfo add_anonymity_revoker = 17; - // Adds a new identity provider. - IpInfo add_identity_provider = 18; - // Updates to cooldown parameters for chain parameters version 1 introduced in protocol version 4. - CooldownParametersCpv1 cooldown_parameters = 19; - // Updates to time parameters for chain parameters version 1 introduced in protocol version 4. - TimeParametersCpv1 time_parameters = 20; - // Updates to the GAS rewards effective from protocol version 6 (chain parameters version 2). - GasRewardsCpv2 gas_rewards_cpv_2 = 21; - // Updates to the consensus timeouts for chain parameters version 2. - TimeoutParameters timeout_parameters = 22; - // Updates to the the minimum time between blocks for chain parameters version 2. - Duration min_block_time = 23; - // Updates to the block energy limit for chain parameters version 2. - Energy block_energy_limit = 24; - // Updates to the finalization committee for for chain parameters version 2. - FinalizationCommitteeParameters finalization_committee_parameters = 25; - } -} - -// The response for `GetNextUpdateSequenceNumbers`. -message NextUpdateSequenceNumbers { - // Updates to the root keys. - SequenceNumber root_keys = 1; - // Updates to the level 1 keys. - SequenceNumber level1_keys = 2; - // Updates to the level 2 keys. - SequenceNumber level2_keys = 3; - // Protocol updates. - SequenceNumber protocol = 4; - // Updates to the election difficulty parameter. - SequenceNumber election_difficulty = 5; - // Updates to the euro:energy exchange rate. - SequenceNumber euro_per_energy = 6; - // Updates to the CCD:EUR exchange rate. - SequenceNumber micro_ccd_per_euro = 7; - // Updates to the foundation account. - SequenceNumber foundation_account = 8; - // Updates to the mint distribution. - SequenceNumber mint_distribution = 9; - // Updates to the transaction fee distribution. - SequenceNumber transaction_fee_distribution = 10; - // Updates to the GAS rewards. - SequenceNumber gas_rewards = 11; - // Updates pool parameters. - SequenceNumber pool_parameters = 12; - // Adds a new anonymity revoker. - SequenceNumber add_anonymity_revoker = 13; - // Adds a new identity provider. - SequenceNumber add_identity_provider = 14; - // Updates to cooldown parameters for chain parameters version 1 introduced in protocol version 4. - SequenceNumber cooldown_parameters = 15; - // Updates to time parameters for chain parameters version 1 introduced in protocol version 4. - SequenceNumber time_parameters = 16; - // Updates to the timeout parameters - SequenceNumber timeout_parameters = 17; - // Updates to the the minimum time between blocks for chain parameters version 2. - SequenceNumber min_block_time = 18; - // Updates to the block energy limit for chain parameters version 2. - SequenceNumber block_energy_limit = 19; - // Updates to the finalization committee parameters - SequenceNumber finalization_committee_parameters = 20; -} - -// A request to send a new block item to the chain. -// An IP address -message IpAddress { - string value = 1; -} - -// A port -// Valid port numbers are expected thus -// the value is expected to be in the range (0..u16::MAX). -message Port { - uint32 value = 1; -} - -// A socket address consisting of -// an IP + port. -message IpSocketAddress { - IpAddress ip = 1; - Port port = 2; -} - -// A peer id -// An identifier that the peer wants to be -// be recoknized by. -// The underlying value is simply a u64. -// Note. There is no authenticity of the peer id and -// as such it is only used for logging purposes. -message PeerId { - string value = 1; -} - -// A banned peer -message BannedPeer { - // The IP address of the banned peer. - IpAddress ip_address = 1; -} - -// The banned peers given by -// their IP addresses. -message BannedPeers { - repeated BannedPeer peers = 1; -} - -// A peer to ban specified by its IP. -// Note. This will ban all peers located behind the -// specified IP even though they are using different ports. -message PeerToBan { - IpAddress ip_address = 1; -} - -// Request to enable dumping of network packages. -message DumpRequest { - // Which file to dump the packages into. - // Requires a valid path. - string file = 1; - - // Whether the node should dump raw packages. - bool raw = 2; -} - -// Peers and their associated network related statistics -message PeersInfo { - // A peer that the node is connected to. - message Peer { - enum CatchupStatus { - // The peer does not have any data unknown to us. If we receive a message from the - // peer that refers to unknown data (e.g., an unknown block) the peer is marked as pending. - UPTODATE = 0; - // The peer might have some data unknown to us. A peer can be in this state either because - // it sent a message that refers to data unknown to us, or before we have established a baseline with it. - // The latter happens during node startup, as well as upon protocol updates until the initial catchup handshake - // completes. - PENDING = 1; - // The node is currently catching up by requesting blocks from this peer. - // There will be at most one peer with this status at a time. - // Once the peer has responded to the request, its status will be changed to: - // - 'UPTODATE' if the peer has no more data that is not known to us - // - 'PENDING' if the node has more data that is unknown to us. - CATCHINGUP = 2; - } - // Network statistics for the peer - message NetworkStats { - // The number of messages sent to the peer. - // Packets are blocks, transactions, catchup messages, finalization records - // and network messages such as pings and peer requests. - uint64 packets_sent = 2; - - // The number of messages received from the peer. - // Packets are blocks, transactions, catchup messages, finalization records - // and network messages such as pings and peer requests. - uint64 packets_received = 3; - - // The connection latency (i.e., ping time) in milliseconds. - uint64 latency = 4; - } - - // The identifier of the peer that it - // wishes to be identified by. - PeerId peer_id = 1; - // The port of the peer. - IpSocketAddress socket_address = 2; - // Network related statistics for the peer. - NetworkStats network_stats = 3; - // consensus related information of the peer. - oneof consensus_info { - // The peer is of type `Bootstrapper` is not participating in consensus - // and thus has no catchup status. - Empty bootstrapper = 4; - // The peer is a regular node and have - // an associated catchup status. - CatchupStatus node_catchup_status = 5; - } - } - - repeated Peer peers = 1; -} - -// Node info response -// Contains various information of the -// enquired node. -message NodeInfo { - // Network related information of the node. - message NetworkInfo { - // The node id. - PeerId node_id = 1; - // Total number of packets sent by the node. - uint64 peer_total_sent = 2; - // Total number of packets received by the node. - uint64 peer_total_received = 3; - // Average outbound throughput in bytes per second. - uint64 avg_bps_in = 4; - // Average inbound throughput in bytes per second. - uint64 avg_bps_out = 5; - } - - // Consensus info for a node configured with baker keys. - message BakerConsensusInfo { - // The committee information of a node configured with - // baker keys but somehow the node is _not_ part of the - // current baking committee. - enum PassiveCommitteeInfo { - // The node is started with baker keys however it is currently not in the baking committee. - // The node is __not__ baking. - NOT_IN_COMMITTEE = 0; - // The account is registered as a baker but not in the current `Epoch`. - // The node is __not__ baking. - ADDED_BUT_NOT_ACTIVE_IN_COMMITTEE = 1; - // The node has configured invalid baker keys i.e., the configured - // baker keys do not match the current keys on the baker account. - // The node is __not__ baking. - ADDED_BUT_WRONG_KEYS = 2; - } - - // Tagging message type for a node that - // is configured with baker keys and active in - // the current baking committee - message ActiveBakerCommitteeInfo { - } - - // Tagging message type for a node that - // is configured with baker keys and active in - // the current finalizer committee (and also baking committee). - message ActiveFinalizerCommitteeInfo { - } - - BakerId baker_id = 1; - - // Status of the baker configured node. - oneof status { - // The node is currently not baking. - PassiveCommitteeInfo passive_committee_info = 2; - // The node is configured with baker keys and - // is member of the baking committee. - ActiveBakerCommitteeInfo active_baker_committee_info = 3; - // The node is configured with baker keys and - // is member of the baking and finalization committees. - ActiveFinalizerCommitteeInfo active_finalizer_committee_info = 4; - } - } - - // The node is a regular node. - message Node { - oneof consensus_status { - // The node is not running consensus. - // This is the case only when the node is - // not supporting the protocol on the chain. - // The node does not process blocks. - Empty not_running = 1; - // Consensus info for a node that is - // not configured with baker keys. - // The node is only processing blocks and - // relaying blocks and transactions and responding to - // catchup messages. - Empty passive = 2; - // The node is configured with baker credentials and consensus is running. - BakerConsensusInfo active = 3; - } - } - - // The version of the node. - string peer_version = 1; - // local time of the node. - Timestamp local_time = 3; - // Number of milliseconds that the node - // has been alive. - Duration peer_uptime = 4; - // Information related to the p2p protocol. - NetworkInfo network_info = 5; - // Details of the node. - oneof details { - // The node is a bootstrapper and is not running consensus. - Empty bootstrapper = 6; - // The node is a regular node and runs the consensus - // protocol. - Node node = 7; - } -} - -message SendBlockItemRequest { - oneof block_item { - // Account transactions are messages which are signed and paid for by an account. - AccountTransaction account_transaction = 1; - // Credential deployments create new accounts. They are not paid for - // directly by the sender. Instead, bakers are rewarded by the protocol for - // including them. - CredentialDeployment credential_deployment = 2; - // Update instructions are messages which can update the chain parameters. Including which keys are allowed - // to make future update instructions. - UpdateInstruction update_instruction = 3; - } -} - -// Credential deployments create new accounts. They are not paid for -// directly by the sender. Instead, bakers are rewarded by the protocol for -// including them. -message CredentialDeployment { - TransactionTime message_expiry = 1; - // The credential to be added. - oneof payload { - // A raw payload, which is just the encoded payload. - // A typed variant might be added in the future. - bytes raw_payload = 2; - } -} - -// A single signature. Used when sending block items to a node with -// `SendBlockItem`. -message Signature { - bytes value = 1; -} - -// Wrapper for a map from indexes to signatures. -// Needed because protobuf doesn't allow nested maps directly. -message SignatureMap { - map signatures = 1; -} - -// Wrapper for a map from indexes to signatures. -// Needed because protobuf doesn't allow nested maps directly. -// The keys in the SignatureMap must not exceed 2^8. -message AccountSignatureMap { - map signatures = 1; -} - -message AccountTransactionSignature { - // A map from `CredentialIndex` to `SignatureMap`s. - // The type `CredentialIndex` is not used directly, as messages cannot be keys in maps. - // The map cannot contain more than 2^8 signatures. - map signatures = 1; -} - -// Header of an account transaction that contains basic data to check whether -// the sender and the transaction are valid. The header is shared by all transaction types. -message AccountTransactionHeader { - // Sender of the transaction. - AccountAddress sender = 1; - // Sequence number of the transaction. - SequenceNumber sequence_number = 2; - // Maximum amount of nergy the transaction can take to execute. - Energy energy_amount = 3; - // Latest time the transaction can included in a block. - TransactionTime expiry = 5; -} - -// Data required to initialize a new contract instance. -message InitContractPayload { - // Amount of CCD to send to the instance. - Amount amount = 1; - // Reference to the module from which the instance will be created. - ModuleRef module_ref = 2; - // Name of the contract to initialize. This is expected to be in the format - // `init_name`. - InitName init_name = 3; - // Parameter to call the `init` of the contract with. - Parameter parameter = 4; -} - -// Data required to update a contract instance. -message UpdateContractPayload { - // Amount of CCD to send to the instance. - Amount amount = 1; - // Address of the instance to update. - ContractAddress address = 2; - // Name of the entrypoint to call to update the instance. - // This is expected to be in the format `contractName.entrypointName`. - ReceiveName receive_name = 3; - // Parameter to pass to the entrypoint. - Parameter parameter = 4; -} - -// Payload of a transfer between two accounts. -message TransferPayload { - // Amount of CCD to send. - Amount amount = 1; - // Receiver address. - AccountAddress receiver = 2; -} - -// Payload of a transfer between two accounts with a memo. -message TransferWithMemoPayload { - // Amount of CCD to send. - Amount amount = 1; - // Receiver address. - AccountAddress receiver = 2; - // Memo to include with the transfer. - Memo memo = 3; -} - -// The payload for an account transaction. -message AccountTransactionPayload { - oneof payload { - // A pre-serialized payload in the binary serialization format defined - // by the protocol. - bytes raw_payload = 1; - // A transfer between two accounts. With an optional memo. - VersionedModuleSource deploy_module = 2; - InitContractPayload init_contract = 3; - UpdateContractPayload update_contract = 4; - TransferPayload transfer = 5; - TransferWithMemoPayload transfer_with_memo = 6; - RegisteredData register_data = 7; - } -} - -// An unsigned account transaction. This is used with the -// `GetTransactionSignHash` endpoint to obtain the message to sign. -message PreAccountTransaction { - AccountTransactionHeader header = 1; - AccountTransactionPayload payload = 2; -} - -// Account transactions are messages which are signed and paid for by the sender -// account. -message AccountTransaction { - AccountTransactionSignature signature = 1; - AccountTransactionHeader header = 2; - AccountTransactionPayload payload = 3; -} - -message UpdateInstructionSignature { - // A map from `UpdateKeysIndex` to `Signature`. - // The type `UpdateKeysIndex`is not used directly, as messages cannot be keys in maps. - map signatures = 1; -} - -message UpdateInstructionHeader { - UpdateSequenceNumber sequence_number = 1; - TransactionTime effective_time = 2; - TransactionTime timeout = 3; -} - -// The payload for an UpdateInstruction. -message UpdateInstructionPayload { - oneof payload { - // A raw payload encoded according to the format defined by the protocol. - bytes raw_payload = 3; - } -} - -message UpdateInstruction { - // A map from `UpdateKeysIndex` to `Signature`. Keys must not exceed 2^16. - SignatureMap signatures = 1; - UpdateInstructionHeader header = 2; - UpdateInstructionPayload payload = 3; -} - -// Signature on an account transaction is defined to be the signature on the -// hash of the `PreAccountTransaction`. -message AccountTransactionSignHash { - bytes value = 1; -} - -// The number of credential deployments allowed in a block. This in effect -// determines the number of accounts that can be created in a block. -message CredentialsPerBlockLimit { - uint32 value = 1; -} - -// Updatable chain parameters that apply to protocol versions 1-3. -message ChainParametersV0 { - // Election difficulty for consensus lottery. - ElectionDifficulty election_difficulty = 1; - // Euro per energy exchange rate. - ExchangeRate euro_per_energy = 2; - // Micro CCD per euro exchange rate. - ExchangeRate micro_ccd_per_euro = 3; - // Extra number of epochs before reduction in stake, or baker - // deregistration is completed. - Epoch baker_cooldown_epochs = 4; - // The limit for the number of account creations in a block. - CredentialsPerBlockLimit account_creation_limit = 5; - // Current mint distribution - MintDistributionCpv0 mint_distribution = 6; - // Current transaction fee distribution. - TransactionFeeDistribution transaction_fee_distribution = 7; - // Current gas reward parameters. - GasRewards gas_rewards = 8; - // The foundation account. - AccountAddress foundation_account = 9; - // Minimum threshold for becoming a baker. - Amount minimum_threshold_for_baking = 10; - // Keys allowed to do root updates. - HigherLevelKeys root_keys = 11; - // Keys allowed to do level1 updates; - HigherLevelKeys level1_keys = 12; - // Keys allowed to do parameter updates. - AuthorizationsV0 level2_keys = 13; -} - -// Updatable chain parameters that apply to protocol versions 4-5. -message ChainParametersV1 { - // Election difficulty for consensus lottery. - ElectionDifficulty election_difficulty = 1; - // Euro per energy exchange rate. - ExchangeRate euro_per_energy = 2; - // Micro CCD per euro exchange rate. - ExchangeRate micro_ccd_per_euro = 3; - // Extra number of epochs before reduction in stake, or baker - // deregistration is completed. - CooldownParametersCpv1 cooldown_parameters = 4; - // Current time parameters. - // The time parameters indicates the mint rate and the - // reward period length, i.e. the time between paydays. - TimeParametersCpv1 time_parameters = 5; - // The limit for the number of account creations in a block. - CredentialsPerBlockLimit account_creation_limit = 6; - // Current mint distribution - MintDistributionCpv1 mint_distribution = 7; - // Current transaction fee distribution. - TransactionFeeDistribution transaction_fee_distribution = 8; - // Current gas reward parameters. - GasRewards gas_rewards = 9; - // The foundation account. - AccountAddress foundation_account = 10; - // Parameters governing baking pools and their commissions. - PoolParametersCpv1 pool_parameters = 11; - // Keys allowed to do root updates. - HigherLevelKeys root_keys = 12; - // Keys allowed to do level1 updates; - HigherLevelKeys level1_keys = 13; - // Keys allowed to do parameter updates. - AuthorizationsV1 level2_keys = 14; -} - -// Updatable chain parameters that apply to protocol versions 6. -message ChainParametersV2 { - // Consensus parameters. - ConsensusParametersV1 consensus_parameters = 1; - // Euro per energy exchange rate. - ExchangeRate euro_per_energy = 2; - // Micro CCD per euro exchange rate. - ExchangeRate micro_ccd_per_euro = 3; - // Extra number of epochs before reduction in stake, or baker - // deregistration is completed. - CooldownParametersCpv1 cooldown_parameters = 4; - // Current time parameters. - // The time parameters indicates the mint rate and the - // reward period length, i.e. the time between paydays. - TimeParametersCpv1 time_parameters = 5; - // The limit for the number of account creations in a block. - CredentialsPerBlockLimit account_creation_limit = 6; - // Current mint distribution - MintDistributionCpv1 mint_distribution = 7; - // Current transaction fee distribution. - TransactionFeeDistribution transaction_fee_distribution = 8; - // Current gas reward parameters. - GasRewardsCpv2 gas_rewards = 9; - // The foundation account. - AccountAddress foundation_account = 10; - // Parameters governing baking pools and their commissions. - PoolParametersCpv1 pool_parameters = 11; - // Keys allowed to do root updates. - HigherLevelKeys root_keys = 12; - // Keys allowed to do level1 updates; - HigherLevelKeys level1_keys = 13; - // Keys allowed to do parameter updates. - AuthorizationsV1 level2_keys = 14; - // Finalization committee parameters - FinalizationCommitteeParameters finalization_committee_parameters = 15; -} - -// Chain parameters. -message ChainParameters { - oneof parameters { - // Chain parameters that apply when the block is a protocol version 1-3 block. - ChainParametersV0 v0 = 1; - // Chain parameters that apply when the block is a protocol version 4-5 block. - ChainParametersV1 v1 = 2; - // Chain parameters that apply when the block is a protocol version 6- block. - ChainParametersV2 v2 = 3; - } -} - -// Details about a finalizer for the finalization round. -message FinalizationSummaryParty { - // Baker ID. Every finalizer is in particular a baker. - BakerId baker = 1; - // The weight of the finalizer in the committee. This is an "absolute" weight. - uint64 weight = 2; - // Whether the finalizer's signature was present on the particular finalization record. - bool signed = 3; -} - -// Index of the finalization round. This increases on each successfully -// completed finalization. -message FinalizationIndex { - uint64 value = 1; -} - -// Details about a finalization record included in a block. -message FinalizationSummary { - // Block that was finalized by the finalization record. - BlockHash block = 1; - // Index of the finalization round that finalized the block. - FinalizationIndex index = 2; - // Finalization delay used for the finalization round. - BlockHeight delay = 3; - // List of all finalizers with information about whether they signed the - // finalization record or not. - repeated FinalizationSummaryParty finalizers = 4; -} - -// Finalization summary that may or may not be part of the block. -message BlockFinalizationSummary { - oneof summary { - // There is no finalization data in the block. - Empty none = 1; - // There is a single finalization record with the block. - FinalizationSummary record = 2; - } -} - -message BlockItem { - // The hash of the block item that identifies it to the chain. - TransactionHash hash = 1; - - oneof block_item { - // Account transactions are messages which are signed and paid for by an account. - AccountTransaction account_transaction = 2; - // Credential deployments create new accounts. They are not paid for - // directly by the sender. Instead, bakers are rewarded by the protocol for - // including them. - CredentialDeployment credential_deployment = 3; - // Update instructions are messages which can update the chain parameters. Including which keys are allowed - // to make future update instructions. - UpdateInstruction update_instruction = 4; - } -} From f3b2c5f198a78e2ef545e87350b841a6aec1e030 Mon Sep 17 00:00:00 2001 From: magnusbechwind Date: Mon, 11 Dec 2023 13:42:59 +0100 Subject: [PATCH 02/12] Updated grpc api --- v2/pb/health.pb.go | 98 +- v2/pb/health_grpc.pb.go | 10 +- v2/pb/service.pb.go | 824 +- v2/pb/service_grpc.pb.go | 494 +- v2/pb/types.pb.go | 19603 ++++++++++++++++++++++--------------- 5 files changed, 12630 insertions(+), 8399 deletions(-) diff --git a/v2/pb/health.pb.go b/v2/pb/health.pb.go index 0f0b995..618f7d7 100644 --- a/v2/pb/health.pb.go +++ b/v2/pb/health.pb.go @@ -1,8 +1,8 @@ -// Code generated by protoc-pb-go. DO NOT EDIT. +// Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-pb-go v1.28.1 -// protoc v3.17.3 -// source: health.proto +// protoc-gen-go v1.28.1 +// protoc v4.25.1 +// source: v2/concordium/health.proto package pb @@ -31,7 +31,7 @@ type NodeHealthRequest struct { func (x *NodeHealthRequest) Reset() { *x = NodeHealthRequest{} if protoimpl.UnsafeEnabled { - mi := &file_health_proto_msgTypes[0] + mi := &file_v2_concordium_health_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -44,7 +44,7 @@ func (x *NodeHealthRequest) String() string { func (*NodeHealthRequest) ProtoMessage() {} func (x *NodeHealthRequest) ProtoReflect() protoreflect.Message { - mi := &file_health_proto_msgTypes[0] + mi := &file_v2_concordium_health_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -57,7 +57,7 @@ func (x *NodeHealthRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use NodeHealthRequest.ProtoReflect.Descriptor instead. func (*NodeHealthRequest) Descriptor() ([]byte, []int) { - return file_health_proto_rawDescGZIP(), []int{0} + return file_v2_concordium_health_proto_rawDescGZIP(), []int{0} } // Response to the health check. A return code of "OK" is used for success, and @@ -71,7 +71,7 @@ type NodeHealthResponse struct { func (x *NodeHealthResponse) Reset() { *x = NodeHealthResponse{} if protoimpl.UnsafeEnabled { - mi := &file_health_proto_msgTypes[1] + mi := &file_v2_concordium_health_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -84,7 +84,7 @@ func (x *NodeHealthResponse) String() string { func (*NodeHealthResponse) ProtoMessage() {} func (x *NodeHealthResponse) ProtoReflect() protoreflect.Message { - mi := &file_health_proto_msgTypes[1] + mi := &file_v2_concordium_health_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -97,48 +97,48 @@ func (x *NodeHealthResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use NodeHealthResponse.ProtoReflect.Descriptor instead. func (*NodeHealthResponse) Descriptor() ([]byte, []int) { - return file_health_proto_rawDescGZIP(), []int{1} + return file_v2_concordium_health_proto_rawDescGZIP(), []int{1} } -var File_health_proto protoreflect.FileDescriptor +var File_v2_concordium_health_proto protoreflect.FileDescriptor -var file_health_proto_rawDesc = []byte{ - 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, +var file_v2_concordium_health_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2f, + 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x22, + 0x13, 0x0a, 0x11, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x5e, 0x0a, 0x06, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x12, 0x54, 0x0a, 0x05, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x22, 0x13, 0x0a, 0x11, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x5e, 0x0a, 0x06, - 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x54, 0x0a, 0x05, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, - 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x68, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x48, 0x0a, 0x16, - 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x67, - 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x50, 0x01, 0x5a, 0x17, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2d, 0x67, 0x6f, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0xaa, 0x02, 0x12, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x47, - 0x72, 0x70, 0x63, 0x2e, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x68, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x33, 0x0a, 0x15, 0x63, 0x6f, + 0x6d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x68, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x50, 0x01, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0xaa, 0x02, 0x11, 0x43, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_health_proto_rawDescOnce sync.Once - file_health_proto_rawDescData = file_health_proto_rawDesc + file_v2_concordium_health_proto_rawDescOnce sync.Once + file_v2_concordium_health_proto_rawDescData = file_v2_concordium_health_proto_rawDesc ) -func file_health_proto_rawDescGZIP() []byte { - file_health_proto_rawDescOnce.Do(func() { - file_health_proto_rawDescData = protoimpl.X.CompressGZIP(file_health_proto_rawDescData) +func file_v2_concordium_health_proto_rawDescGZIP() []byte { + file_v2_concordium_health_proto_rawDescOnce.Do(func() { + file_v2_concordium_health_proto_rawDescData = protoimpl.X.CompressGZIP(file_v2_concordium_health_proto_rawDescData) }) - return file_health_proto_rawDescData + return file_v2_concordium_health_proto_rawDescData } -var file_health_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_health_proto_goTypes = []interface{}{ +var file_v2_concordium_health_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_v2_concordium_health_proto_goTypes = []interface{}{ (*NodeHealthRequest)(nil), // 0: concordium.health.NodeHealthRequest (*NodeHealthResponse)(nil), // 1: concordium.health.NodeHealthResponse } -var file_health_proto_depIdxs = []int32{ +var file_v2_concordium_health_proto_depIdxs = []int32{ 0, // 0: concordium.health.Health.Check:input_type -> concordium.health.NodeHealthRequest 1, // 1: concordium.health.Health.Check:output_type -> concordium.health.NodeHealthResponse 1, // [1:2] is the sub-list for method output_type @@ -148,13 +148,13 @@ var file_health_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for field type_name } -func init() { file_health_proto_init() } -func file_health_proto_init() { - if File_health_proto != nil { +func init() { file_v2_concordium_health_proto_init() } +func file_v2_concordium_health_proto_init() { + if File_v2_concordium_health_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_health_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_health_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeHealthRequest); i { case 0: return &v.state @@ -166,7 +166,7 @@ func file_health_proto_init() { return nil } } - file_health_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_health_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeHealthResponse); i { case 0: return &v.state @@ -183,18 +183,18 @@ func file_health_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_health_proto_rawDesc, + RawDescriptor: file_v2_concordium_health_proto_rawDesc, NumEnums: 0, NumMessages: 2, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_health_proto_goTypes, - DependencyIndexes: file_health_proto_depIdxs, - MessageInfos: file_health_proto_msgTypes, + GoTypes: file_v2_concordium_health_proto_goTypes, + DependencyIndexes: file_v2_concordium_health_proto_depIdxs, + MessageInfos: file_v2_concordium_health_proto_msgTypes, }.Build() - File_health_proto = out.File - file_health_proto_rawDesc = nil - file_health_proto_goTypes = nil - file_health_proto_depIdxs = nil + File_v2_concordium_health_proto = out.File + file_v2_concordium_health_proto_rawDesc = nil + file_v2_concordium_health_proto_goTypes = nil + file_v2_concordium_health_proto_depIdxs = nil } diff --git a/v2/pb/health_grpc.pb.go b/v2/pb/health_grpc.pb.go index ff791bf..17e2336 100644 --- a/v2/pb/health_grpc.pb.go +++ b/v2/pb/health_grpc.pb.go @@ -1,8 +1,8 @@ -// Code generated by protoc-pb-go-grpc. DO NOT EDIT. +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-pb-go-grpc v1.2.0 -// - protoc v3.17.3 -// source: health.proto +// - protoc-gen-go-grpc v1.2.0 +// - protoc v4.25.1 +// source: v2/concordium/health.proto package pb @@ -125,5 +125,5 @@ var Health_ServiceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "health.proto", + Metadata: "v2/concordium/health.proto", } diff --git a/v2/pb/service.pb.go b/v2/pb/service.pb.go index 01117b6..f589dec 100644 --- a/v2/pb/service.pb.go +++ b/v2/pb/service.pb.go @@ -1,8 +1,8 @@ -// Code generated by protoc-pb-go. DO NOT EDIT. +// Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-pb-go v1.28.1 -// protoc v3.17.3 -// source: service.proto +// protoc-gen-go v1.28.1 +// protoc v4.25.1 +// source: v2/concordium/service.proto package pb @@ -19,283 +19,314 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -var File_service_proto protoreflect.FileDescriptor +var File_v2_concordium_service_proto protoreflect.FileDescriptor -var file_service_proto_rawDesc = []byte{ - 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, - 0x0d, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x1a, 0x0b, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xe1, 0x20, 0x0a, 0x07, - 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x72, 0x72, 0x69, 0x76, - 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x30, 0x01, 0x12, 0x4f, 0x0a, - 0x12, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x73, 0x12, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x30, 0x01, 0x12, 0x4f, - 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x50, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, - 0x1a, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x30, - 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x1a, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x30, 0x01, 0x12, 0x4b, 0x0a, - 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x1f, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, - 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, +var file_v2_concordium_service_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2f, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x1a, 0x19, 0x76, 0x32, + 0x2f, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2f, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xd4, 0x24, 0x0a, 0x07, 0x51, 0x75, 0x65, 0x72, + 0x69, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, + 0x12, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x72, 0x72, 0x69, 0x76, 0x65, 0x64, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x30, 0x01, 0x12, 0x4f, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, + 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x30, 0x01, 0x12, 0x4f, 0x0a, 0x0e, 0x47, 0x65, + 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x50, 0x0a, 0x0e, 0x47, + 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x1d, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x30, 0x01, 0x12, 0x4a, 0x0a, + 0x0d, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x30, 0x01, 0x12, 0x5b, 0x0a, 0x0f, 0x47, 0x65, - 0x74, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x2e, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, - 0x64, 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, + 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x30, 0x01, 0x12, 0x4b, 0x0a, 0x0c, 0x47, 0x65, 0x74, + 0x41, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x63, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x30, 0x01, 0x12, 0x52, 0x0a, 0x0f, 0x47, - 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, + 0x48, 0x61, 0x73, 0x68, 0x30, 0x01, 0x12, 0x5b, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x30, 0x01, 0x12, 0x52, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x5c, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x4b, 0x56, 0x50, 0x61, 0x69, 0x72, 0x30, 0x01, 0x12, 0x68, 0x0a, - 0x13, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4c, 0x6f, - 0x6f, 0x6b, 0x75, 0x70, 0x12, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x26, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x41, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x67, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4e, 0x65, - 0x78, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x46, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, - 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x54, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x1e, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5c, 0x0a, 0x10, 0x47, + 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x4b, 0x56, 0x50, 0x61, 0x69, 0x72, 0x30, 0x01, 0x12, 0x68, 0x0a, 0x13, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, + 0x12, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4c, 0x6f, + 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x74, + 0x4b, 0x65, 0x79, 0x12, 0x67, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x54, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x63, 0x0a, 0x1a, 0x47, 0x65, + 0x74, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, + 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x26, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, + 0x61, 0x70, 0x68, 0x69, 0x63, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, + 0x47, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x63, - 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, - 0x69, 0x63, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1d, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x26, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x79, 0x70, - 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x12, 0x47, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x1a, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x0c, - 0x47, 0x65, 0x74, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x16, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, - 0x72, 0x49, 0x64, 0x30, 0x01, 0x12, 0x4e, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6f, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, - 0x69, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, - 0x1a, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x50, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x60, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x24, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, + 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x42, + 0x61, 0x6b, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, + 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x30, + 0x01, 0x12, 0x4e, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x5f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x1d, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5d, 0x0a, 0x0e, 0x49, - 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x24, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, - 0x76, 0x6f, 0x6b, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x11, 0x47, 0x65, - 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, - 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x30, 0x01, 0x12, 0x74, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, - 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6f, - 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x30, 0x01, 0x12, 0x55, - 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, - 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x30, 0x01, 0x12, 0x6d, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, - 0x69, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x24, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x73, + 0x73, 0x69, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x60, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x41, + 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x41, 0x74, + 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x49, 0x6e, - 0x66, 0x6f, 0x30, 0x01, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, - 0x68, 0x65, 0x73, 0x12, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, - 0x12, 0x4d, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5d, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x6f, 0x6b, + 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6f, + 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x27, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x50, + 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x30, 0x01, 0x12, 0x74, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, + 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, + 0x72, 0x69, 0x6f, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x30, 0x01, 0x12, 0x55, 0x0a, 0x14, 0x47, 0x65, + 0x74, 0x50, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, + 0x72, 0x73, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, + 0x74, 0x1a, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x30, + 0x01, 0x12, 0x6d, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x50, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, + 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, + 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x30, 0x01, + 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x12, + 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x4d, 0x0a, 0x0f, + 0x47, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x1b, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4e, 0x0a, 0x14, 0x47, + 0x65, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x73, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x1a, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x4e, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, - 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x30, 0x01, 0x12, - 0x4e, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x52, - 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, - 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x30, 0x01, 0x12, - 0x65, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x6e, - 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x1a, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x48, 0x61, 0x73, 0x68, 0x30, 0x01, 0x12, 0x5d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x75, 0x74, 0x1a, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x49, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x30, 0x01, 0x12, 0x4e, 0x0a, 0x14, 0x47, + 0x65, 0x74, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x52, 0x65, 0x76, 0x6f, 0x6b, + 0x65, 0x72, 0x73, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x1a, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x79, 0x30, 0x01, 0x12, 0x5a, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1d, + 0x75, 0x74, 0x1a, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x41, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x30, 0x01, 0x12, 0x65, 0x0a, 0x22, 0x47, + 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x6e, 0x46, 0x69, 0x6e, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x1a, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, + 0x30, 0x01, 0x12, 0x5d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x20, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, - 0x01, 0x12, 0x57, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x30, 0x01, 0x12, 0x67, 0x0a, 0x1c, 0x47, 0x65, - 0x74, 0x4e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, + 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x30, + 0x01, 0x12, 0x5a, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x70, 0x65, + 0x63, 0x69, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x12, - 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0b, 0x50, - 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x70, 0x53, 0x6f, 0x63, - 0x6b, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x14, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x12, 0x46, 0x0a, 0x0e, 0x50, 0x65, 0x65, 0x72, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x12, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x49, 0x70, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x1a, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x42, - 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x1a, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x07, - 0x42, 0x61, 0x6e, 0x50, 0x65, 0x65, 0x72, 0x12, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x54, 0x6f, 0x42, 0x61, - 0x6e, 0x1a, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x09, 0x55, 0x6e, 0x62, 0x61, 0x6e, - 0x50, 0x65, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x50, 0x65, 0x65, 0x72, 0x1a, - 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x09, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x12, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, + 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x12, 0x57, 0x0a, + 0x16, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, + 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x30, 0x01, 0x12, 0x67, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, + 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, + 0x4b, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x61, 0x72, 0x6c, 0x69, + 0x65, 0x73, 0x74, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, + 0x49, 0x64, 0x1a, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x36, 0x0a, 0x08, + 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x08, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x6f, 0x70, - 0x12, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x0c, - 0x47, 0x65, 0x74, 0x50, 0x65, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x0b, - 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x63, 0x6f, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x12, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x70, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x1a, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x0e, 0x50, 0x65, 0x65, + 0x72, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x1e, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x70, 0x53, 0x6f, + 0x63, 0x6b, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x54, 0x0a, 0x0d, 0x53, 0x65, - 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x23, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x6e, 0x64, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, - 0x12, 0x70, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x50, 0x72, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x58, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x68, - 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1d, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x1e, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x61, - 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x65, 0x0a, 0x1b, - 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1d, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x27, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x79, 0x12, 0x4a, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, - 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x79, 0x12, 0x42, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x50, 0x65, + 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, + 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x42, 0x61, 0x6e, 0x50, 0x65, 0x65, 0x72, + 0x12, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x50, 0x65, 0x65, 0x72, 0x54, 0x6f, 0x42, 0x61, 0x6e, 0x1a, 0x14, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x12, 0x3c, 0x0a, 0x09, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x50, 0x65, 0x65, 0x72, 0x12, 0x19, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, + 0x6e, 0x6e, 0x65, 0x64, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, + 0x0a, 0x09, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x75, 0x6d, 0x70, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x36, 0x0a, + 0x08, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, + 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50, 0x65, 0x65, 0x72, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x65, 0x72, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x54, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x49, 0x74, 0x65, 0x6d, 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, + 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x12, 0x70, 0x0a, 0x1d, 0x47, 0x65, 0x74, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x65, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x12, 0x58, 0x0a, 0x17, 0x47, + 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x65, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, - 0x70, 0x75, 0x74, 0x1a, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x30, 0x01, 0x42, - 0x48, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x50, 0x01, 0x5a, 0x17, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2d, 0x67, 0x6f, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0xaa, 0x02, 0x12, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x70, 0x75, 0x74, 0x1a, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x4a, 0x0a, 0x0d, + 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1d, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, 0x18, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x30, 0x01, 0x12, 0x5e, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x42, + 0x61, 0x6b, 0x65, 0x72, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x72, 0x69, 0x6f, + 0x64, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x1a, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x72, 0x69, + 0x6f, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x30, 0x01, 0x12, 0x57, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, + 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x1a, + 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x73, 0x12, 0x53, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x57, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x42, + 0x61, 0x6b, 0x65, 0x72, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x57, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x42, + 0x61, 0x6b, 0x65, 0x72, 0x30, 0x01, 0x12, 0x4b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x69, 0x72, + 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1b, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, + 0x61, 0x73, 0x68, 0x12, 0x49, 0x0a, 0x06, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x1c, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x72, + 0x79, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x72, 0x79, 0x52, + 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x42, 0x35, + 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x50, 0x01, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, + 0xaa, 0x02, 0x12, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x47, 0x72, + 0x70, 0x63, 0x2e, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } -var file_service_proto_goTypes = []interface{}{ +var file_v2_concordium_service_proto_goTypes = []interface{}{ (*Empty)(nil), // 0: concordium.v2.Empty (*AccountInfoRequest)(nil), // 1: concordium.v2.AccountInfoRequest (*BlockHashInput)(nil), // 2: concordium.v2.BlockHashInput @@ -309,52 +340,59 @@ var file_service_proto_goTypes = []interface{}{ (*BlocksAtHeightRequest)(nil), // 10: concordium.v2.BlocksAtHeightRequest (*InvokeInstanceRequest)(nil), // 11: concordium.v2.InvokeInstanceRequest (*GetPoolDelegatorsRequest)(nil), // 12: concordium.v2.GetPoolDelegatorsRequest - (*IpSocketAddress)(nil), // 13: concordium.v2.IpSocketAddress - (*PeerToBan)(nil), // 14: concordium.v2.PeerToBan - (*BannedPeer)(nil), // 15: concordium.v2.BannedPeer - (*DumpRequest)(nil), // 16: concordium.v2.DumpRequest - (*SendBlockItemRequest)(nil), // 17: concordium.v2.SendBlockItemRequest - (*PreAccountTransaction)(nil), // 18: concordium.v2.PreAccountTransaction - (*ArrivedBlockInfo)(nil), // 19: concordium.v2.ArrivedBlockInfo - (*FinalizedBlockInfo)(nil), // 20: concordium.v2.FinalizedBlockInfo - (*AccountInfo)(nil), // 21: concordium.v2.AccountInfo - (*ModuleRef)(nil), // 22: concordium.v2.ModuleRef - (*BlockHash)(nil), // 23: concordium.v2.BlockHash - (*VersionedModuleSource)(nil), // 24: concordium.v2.VersionedModuleSource - (*ContractAddress)(nil), // 25: concordium.v2.ContractAddress - (*InstanceInfo)(nil), // 26: concordium.v2.InstanceInfo - (*InstanceStateKVPair)(nil), // 27: concordium.v2.InstanceStateKVPair - (*InstanceStateValueAtKey)(nil), // 28: concordium.v2.InstanceStateValueAtKey - (*NextAccountSequenceNumber)(nil), // 29: concordium.v2.NextAccountSequenceNumber - (*ConsensusInfo)(nil), // 30: concordium.v2.ConsensusInfo - (*BlockItemStatus)(nil), // 31: concordium.v2.BlockItemStatus - (*CryptographicParameters)(nil), // 32: concordium.v2.CryptographicParameters - (*BlockInfo)(nil), // 33: concordium.v2.BlockInfo - (*BakerId)(nil), // 34: concordium.v2.BakerId - (*PoolInfoResponse)(nil), // 35: concordium.v2.PoolInfoResponse - (*PassiveDelegationInfo)(nil), // 36: concordium.v2.PassiveDelegationInfo - (*BlocksAtHeightResponse)(nil), // 37: concordium.v2.BlocksAtHeightResponse - (*TokenomicsInfo)(nil), // 38: concordium.v2.TokenomicsInfo - (*InvokeInstanceResponse)(nil), // 39: concordium.v2.InvokeInstanceResponse - (*DelegatorInfo)(nil), // 40: concordium.v2.DelegatorInfo - (*DelegatorRewardPeriodInfo)(nil), // 41: concordium.v2.DelegatorRewardPeriodInfo - (*Branch)(nil), // 42: concordium.v2.Branch - (*ElectionInfo)(nil), // 43: concordium.v2.ElectionInfo - (*IpInfo)(nil), // 44: concordium.v2.IpInfo - (*ArInfo)(nil), // 45: concordium.v2.ArInfo - (*BlockItemSummary)(nil), // 46: concordium.v2.BlockItemSummary - (*BlockSpecialEvent)(nil), // 47: concordium.v2.BlockSpecialEvent - (*PendingUpdate)(nil), // 48: concordium.v2.PendingUpdate - (*NextUpdateSequenceNumbers)(nil), // 49: concordium.v2.NextUpdateSequenceNumbers - (*BannedPeers)(nil), // 50: concordium.v2.BannedPeers - (*PeersInfo)(nil), // 51: concordium.v2.PeersInfo - (*NodeInfo)(nil), // 52: concordium.v2.NodeInfo - (*AccountTransactionSignHash)(nil), // 53: concordium.v2.AccountTransactionSignHash - (*ChainParameters)(nil), // 54: concordium.v2.ChainParameters - (*BlockFinalizationSummary)(nil), // 55: concordium.v2.BlockFinalizationSummary - (*BlockItem)(nil), // 56: concordium.v2.BlockItem + (*BakerId)(nil), // 13: concordium.v2.BakerId + (*IpSocketAddress)(nil), // 14: concordium.v2.IpSocketAddress + (*PeerToBan)(nil), // 15: concordium.v2.PeerToBan + (*BannedPeer)(nil), // 16: concordium.v2.BannedPeer + (*DumpRequest)(nil), // 17: concordium.v2.DumpRequest + (*SendBlockItemRequest)(nil), // 18: concordium.v2.SendBlockItemRequest + (*PreAccountTransaction)(nil), // 19: concordium.v2.PreAccountTransaction + (*EpochRequest)(nil), // 20: concordium.v2.EpochRequest + (*DryRunRequest)(nil), // 21: concordium.v2.DryRunRequest + (*ArrivedBlockInfo)(nil), // 22: concordium.v2.ArrivedBlockInfo + (*FinalizedBlockInfo)(nil), // 23: concordium.v2.FinalizedBlockInfo + (*AccountInfo)(nil), // 24: concordium.v2.AccountInfo + (*ModuleRef)(nil), // 25: concordium.v2.ModuleRef + (*BlockHash)(nil), // 26: concordium.v2.BlockHash + (*VersionedModuleSource)(nil), // 27: concordium.v2.VersionedModuleSource + (*ContractAddress)(nil), // 28: concordium.v2.ContractAddress + (*InstanceInfo)(nil), // 29: concordium.v2.InstanceInfo + (*InstanceStateKVPair)(nil), // 30: concordium.v2.InstanceStateKVPair + (*InstanceStateValueAtKey)(nil), // 31: concordium.v2.InstanceStateValueAtKey + (*NextAccountSequenceNumber)(nil), // 32: concordium.v2.NextAccountSequenceNumber + (*ConsensusInfo)(nil), // 33: concordium.v2.ConsensusInfo + (*BlockItemStatus)(nil), // 34: concordium.v2.BlockItemStatus + (*CryptographicParameters)(nil), // 35: concordium.v2.CryptographicParameters + (*BlockInfo)(nil), // 36: concordium.v2.BlockInfo + (*PoolInfoResponse)(nil), // 37: concordium.v2.PoolInfoResponse + (*PassiveDelegationInfo)(nil), // 38: concordium.v2.PassiveDelegationInfo + (*BlocksAtHeightResponse)(nil), // 39: concordium.v2.BlocksAtHeightResponse + (*TokenomicsInfo)(nil), // 40: concordium.v2.TokenomicsInfo + (*InvokeInstanceResponse)(nil), // 41: concordium.v2.InvokeInstanceResponse + (*DelegatorInfo)(nil), // 42: concordium.v2.DelegatorInfo + (*DelegatorRewardPeriodInfo)(nil), // 43: concordium.v2.DelegatorRewardPeriodInfo + (*Branch)(nil), // 44: concordium.v2.Branch + (*ElectionInfo)(nil), // 45: concordium.v2.ElectionInfo + (*IpInfo)(nil), // 46: concordium.v2.IpInfo + (*ArInfo)(nil), // 47: concordium.v2.ArInfo + (*BlockItemSummary)(nil), // 48: concordium.v2.BlockItemSummary + (*BlockSpecialEvent)(nil), // 49: concordium.v2.BlockSpecialEvent + (*PendingUpdate)(nil), // 50: concordium.v2.PendingUpdate + (*NextUpdateSequenceNumbers)(nil), // 51: concordium.v2.NextUpdateSequenceNumbers + (*Timestamp)(nil), // 52: concordium.v2.Timestamp + (*BannedPeers)(nil), // 53: concordium.v2.BannedPeers + (*PeersInfo)(nil), // 54: concordium.v2.PeersInfo + (*NodeInfo)(nil), // 55: concordium.v2.NodeInfo + (*AccountTransactionSignHash)(nil), // 56: concordium.v2.AccountTransactionSignHash + (*ChainParameters)(nil), // 57: concordium.v2.ChainParameters + (*BlockFinalizationSummary)(nil), // 58: concordium.v2.BlockFinalizationSummary + (*BlockItem)(nil), // 59: concordium.v2.BlockItem + (*BakerRewardPeriodInfo)(nil), // 60: concordium.v2.BakerRewardPeriodInfo + (*BlockCertificates)(nil), // 61: concordium.v2.BlockCertificates + (*WinningBaker)(nil), // 62: concordium.v2.WinningBaker + (*DryRunResponse)(nil), // 63: concordium.v2.DryRunResponse } -var file_service_proto_depIdxs = []int32{ +var file_v2_concordium_service_proto_depIdxs = []int32{ 0, // 0: concordium.v2.Queries.GetBlocks:input_type -> concordium.v2.Empty 0, // 1: concordium.v2.Queries.GetFinalizedBlocks:input_type -> concordium.v2.Empty 1, // 2: concordium.v2.Queries.GetAccountInfo:input_type -> concordium.v2.AccountInfoRequest @@ -390,99 +428,111 @@ var file_service_proto_depIdxs = []int32{ 2, // 32: concordium.v2.Queries.GetBlockSpecialEvents:input_type -> concordium.v2.BlockHashInput 2, // 33: concordium.v2.Queries.GetBlockPendingUpdates:input_type -> concordium.v2.BlockHashInput 2, // 34: concordium.v2.Queries.GetNextUpdateSequenceNumbers:input_type -> concordium.v2.BlockHashInput - 0, // 35: concordium.v2.Queries.Shutdown:input_type -> concordium.v2.Empty - 13, // 36: concordium.v2.Queries.PeerConnect:input_type -> concordium.v2.IpSocketAddress - 13, // 37: concordium.v2.Queries.PeerDisconnect:input_type -> concordium.v2.IpSocketAddress - 0, // 38: concordium.v2.Queries.GetBannedPeers:input_type -> concordium.v2.Empty - 14, // 39: concordium.v2.Queries.BanPeer:input_type -> concordium.v2.PeerToBan - 15, // 40: concordium.v2.Queries.UnbanPeer:input_type -> concordium.v2.BannedPeer - 16, // 41: concordium.v2.Queries.DumpStart:input_type -> concordium.v2.DumpRequest - 0, // 42: concordium.v2.Queries.DumpStop:input_type -> concordium.v2.Empty - 0, // 43: concordium.v2.Queries.GetPeersInfo:input_type -> concordium.v2.Empty - 0, // 44: concordium.v2.Queries.GetNodeInfo:input_type -> concordium.v2.Empty - 17, // 45: concordium.v2.Queries.SendBlockItem:input_type -> concordium.v2.SendBlockItemRequest - 18, // 46: concordium.v2.Queries.GetAccountTransactionSignHash:input_type -> concordium.v2.PreAccountTransaction - 2, // 47: concordium.v2.Queries.GetBlockChainParameters:input_type -> concordium.v2.BlockHashInput - 2, // 48: concordium.v2.Queries.GetBlockFinalizationSummary:input_type -> concordium.v2.BlockHashInput - 2, // 49: concordium.v2.Queries.GetBlockItems:input_type -> concordium.v2.BlockHashInput - 19, // 50: concordium.v2.Queries.GetBlocks:output_type -> concordium.v2.ArrivedBlockInfo - 20, // 51: concordium.v2.Queries.GetFinalizedBlocks:output_type -> concordium.v2.FinalizedBlockInfo - 21, // 52: concordium.v2.Queries.GetAccountInfo:output_type -> concordium.v2.AccountInfo - 7, // 53: concordium.v2.Queries.GetAccountList:output_type -> concordium.v2.AccountAddress - 22, // 54: concordium.v2.Queries.GetModuleList:output_type -> concordium.v2.ModuleRef - 23, // 55: concordium.v2.Queries.GetAncestors:output_type -> concordium.v2.BlockHash - 24, // 56: concordium.v2.Queries.GetModuleSource:output_type -> concordium.v2.VersionedModuleSource - 25, // 57: concordium.v2.Queries.GetInstanceList:output_type -> concordium.v2.ContractAddress - 26, // 58: concordium.v2.Queries.GetInstanceInfo:output_type -> concordium.v2.InstanceInfo - 27, // 59: concordium.v2.Queries.GetInstanceState:output_type -> concordium.v2.InstanceStateKVPair - 28, // 60: concordium.v2.Queries.InstanceStateLookup:output_type -> concordium.v2.InstanceStateValueAtKey - 29, // 61: concordium.v2.Queries.GetNextAccountSequenceNumber:output_type -> concordium.v2.NextAccountSequenceNumber - 30, // 62: concordium.v2.Queries.GetConsensusInfo:output_type -> concordium.v2.ConsensusInfo - 31, // 63: concordium.v2.Queries.GetBlockItemStatus:output_type -> concordium.v2.BlockItemStatus - 32, // 64: concordium.v2.Queries.GetCryptographicParameters:output_type -> concordium.v2.CryptographicParameters - 33, // 65: concordium.v2.Queries.GetBlockInfo:output_type -> concordium.v2.BlockInfo - 34, // 66: concordium.v2.Queries.GetBakerList:output_type -> concordium.v2.BakerId - 35, // 67: concordium.v2.Queries.GetPoolInfo:output_type -> concordium.v2.PoolInfoResponse - 36, // 68: concordium.v2.Queries.GetPassiveDelegationInfo:output_type -> concordium.v2.PassiveDelegationInfo - 37, // 69: concordium.v2.Queries.GetBlocksAtHeight:output_type -> concordium.v2.BlocksAtHeightResponse - 38, // 70: concordium.v2.Queries.GetTokenomicsInfo:output_type -> concordium.v2.TokenomicsInfo - 39, // 71: concordium.v2.Queries.InvokeInstance:output_type -> concordium.v2.InvokeInstanceResponse - 40, // 72: concordium.v2.Queries.GetPoolDelegators:output_type -> concordium.v2.DelegatorInfo - 41, // 73: concordium.v2.Queries.GetPoolDelegatorsRewardPeriod:output_type -> concordium.v2.DelegatorRewardPeriodInfo - 40, // 74: concordium.v2.Queries.GetPassiveDelegators:output_type -> concordium.v2.DelegatorInfo - 41, // 75: concordium.v2.Queries.GetPassiveDelegatorsRewardPeriod:output_type -> concordium.v2.DelegatorRewardPeriodInfo - 42, // 76: concordium.v2.Queries.GetBranches:output_type -> concordium.v2.Branch - 43, // 77: concordium.v2.Queries.GetElectionInfo:output_type -> concordium.v2.ElectionInfo - 44, // 78: concordium.v2.Queries.GetIdentityProviders:output_type -> concordium.v2.IpInfo - 45, // 79: concordium.v2.Queries.GetAnonymityRevokers:output_type -> concordium.v2.ArInfo - 8, // 80: concordium.v2.Queries.GetAccountNonFinalizedTransactions:output_type -> concordium.v2.TransactionHash - 46, // 81: concordium.v2.Queries.GetBlockTransactionEvents:output_type -> concordium.v2.BlockItemSummary - 47, // 82: concordium.v2.Queries.GetBlockSpecialEvents:output_type -> concordium.v2.BlockSpecialEvent - 48, // 83: concordium.v2.Queries.GetBlockPendingUpdates:output_type -> concordium.v2.PendingUpdate - 49, // 84: concordium.v2.Queries.GetNextUpdateSequenceNumbers:output_type -> concordium.v2.NextUpdateSequenceNumbers - 0, // 85: concordium.v2.Queries.Shutdown:output_type -> concordium.v2.Empty - 0, // 86: concordium.v2.Queries.PeerConnect:output_type -> concordium.v2.Empty - 0, // 87: concordium.v2.Queries.PeerDisconnect:output_type -> concordium.v2.Empty - 50, // 88: concordium.v2.Queries.GetBannedPeers:output_type -> concordium.v2.BannedPeers - 0, // 89: concordium.v2.Queries.BanPeer:output_type -> concordium.v2.Empty - 0, // 90: concordium.v2.Queries.UnbanPeer:output_type -> concordium.v2.Empty - 0, // 91: concordium.v2.Queries.DumpStart:output_type -> concordium.v2.Empty - 0, // 92: concordium.v2.Queries.DumpStop:output_type -> concordium.v2.Empty - 51, // 93: concordium.v2.Queries.GetPeersInfo:output_type -> concordium.v2.PeersInfo - 52, // 94: concordium.v2.Queries.GetNodeInfo:output_type -> concordium.v2.NodeInfo - 8, // 95: concordium.v2.Queries.SendBlockItem:output_type -> concordium.v2.TransactionHash - 53, // 96: concordium.v2.Queries.GetAccountTransactionSignHash:output_type -> concordium.v2.AccountTransactionSignHash - 54, // 97: concordium.v2.Queries.GetBlockChainParameters:output_type -> concordium.v2.ChainParameters - 55, // 98: concordium.v2.Queries.GetBlockFinalizationSummary:output_type -> concordium.v2.BlockFinalizationSummary - 56, // 99: concordium.v2.Queries.GetBlockItems:output_type -> concordium.v2.BlockItem - 50, // [50:100] is the sub-list for method output_type - 0, // [0:50] is the sub-list for method input_type + 13, // 35: concordium.v2.Queries.GetBakerEarliestWinTime:input_type -> concordium.v2.BakerId + 0, // 36: concordium.v2.Queries.Shutdown:input_type -> concordium.v2.Empty + 14, // 37: concordium.v2.Queries.PeerConnect:input_type -> concordium.v2.IpSocketAddress + 14, // 38: concordium.v2.Queries.PeerDisconnect:input_type -> concordium.v2.IpSocketAddress + 0, // 39: concordium.v2.Queries.GetBannedPeers:input_type -> concordium.v2.Empty + 15, // 40: concordium.v2.Queries.BanPeer:input_type -> concordium.v2.PeerToBan + 16, // 41: concordium.v2.Queries.UnbanPeer:input_type -> concordium.v2.BannedPeer + 17, // 42: concordium.v2.Queries.DumpStart:input_type -> concordium.v2.DumpRequest + 0, // 43: concordium.v2.Queries.DumpStop:input_type -> concordium.v2.Empty + 0, // 44: concordium.v2.Queries.GetPeersInfo:input_type -> concordium.v2.Empty + 0, // 45: concordium.v2.Queries.GetNodeInfo:input_type -> concordium.v2.Empty + 18, // 46: concordium.v2.Queries.SendBlockItem:input_type -> concordium.v2.SendBlockItemRequest + 19, // 47: concordium.v2.Queries.GetAccountTransactionSignHash:input_type -> concordium.v2.PreAccountTransaction + 2, // 48: concordium.v2.Queries.GetBlockChainParameters:input_type -> concordium.v2.BlockHashInput + 2, // 49: concordium.v2.Queries.GetBlockFinalizationSummary:input_type -> concordium.v2.BlockHashInput + 2, // 50: concordium.v2.Queries.GetBlockItems:input_type -> concordium.v2.BlockHashInput + 2, // 51: concordium.v2.Queries.GetBakersRewardPeriod:input_type -> concordium.v2.BlockHashInput + 2, // 52: concordium.v2.Queries.GetBlockCertificates:input_type -> concordium.v2.BlockHashInput + 20, // 53: concordium.v2.Queries.GetWinningBakersEpoch:input_type -> concordium.v2.EpochRequest + 20, // 54: concordium.v2.Queries.GetFirstBlockEpoch:input_type -> concordium.v2.EpochRequest + 21, // 55: concordium.v2.Queries.DryRun:input_type -> concordium.v2.DryRunRequest + 22, // 56: concordium.v2.Queries.GetBlocks:output_type -> concordium.v2.ArrivedBlockInfo + 23, // 57: concordium.v2.Queries.GetFinalizedBlocks:output_type -> concordium.v2.FinalizedBlockInfo + 24, // 58: concordium.v2.Queries.GetAccountInfo:output_type -> concordium.v2.AccountInfo + 7, // 59: concordium.v2.Queries.GetAccountList:output_type -> concordium.v2.AccountAddress + 25, // 60: concordium.v2.Queries.GetModuleList:output_type -> concordium.v2.ModuleRef + 26, // 61: concordium.v2.Queries.GetAncestors:output_type -> concordium.v2.BlockHash + 27, // 62: concordium.v2.Queries.GetModuleSource:output_type -> concordium.v2.VersionedModuleSource + 28, // 63: concordium.v2.Queries.GetInstanceList:output_type -> concordium.v2.ContractAddress + 29, // 64: concordium.v2.Queries.GetInstanceInfo:output_type -> concordium.v2.InstanceInfo + 30, // 65: concordium.v2.Queries.GetInstanceState:output_type -> concordium.v2.InstanceStateKVPair + 31, // 66: concordium.v2.Queries.InstanceStateLookup:output_type -> concordium.v2.InstanceStateValueAtKey + 32, // 67: concordium.v2.Queries.GetNextAccountSequenceNumber:output_type -> concordium.v2.NextAccountSequenceNumber + 33, // 68: concordium.v2.Queries.GetConsensusInfo:output_type -> concordium.v2.ConsensusInfo + 34, // 69: concordium.v2.Queries.GetBlockItemStatus:output_type -> concordium.v2.BlockItemStatus + 35, // 70: concordium.v2.Queries.GetCryptographicParameters:output_type -> concordium.v2.CryptographicParameters + 36, // 71: concordium.v2.Queries.GetBlockInfo:output_type -> concordium.v2.BlockInfo + 13, // 72: concordium.v2.Queries.GetBakerList:output_type -> concordium.v2.BakerId + 37, // 73: concordium.v2.Queries.GetPoolInfo:output_type -> concordium.v2.PoolInfoResponse + 38, // 74: concordium.v2.Queries.GetPassiveDelegationInfo:output_type -> concordium.v2.PassiveDelegationInfo + 39, // 75: concordium.v2.Queries.GetBlocksAtHeight:output_type -> concordium.v2.BlocksAtHeightResponse + 40, // 76: concordium.v2.Queries.GetTokenomicsInfo:output_type -> concordium.v2.TokenomicsInfo + 41, // 77: concordium.v2.Queries.InvokeInstance:output_type -> concordium.v2.InvokeInstanceResponse + 42, // 78: concordium.v2.Queries.GetPoolDelegators:output_type -> concordium.v2.DelegatorInfo + 43, // 79: concordium.v2.Queries.GetPoolDelegatorsRewardPeriod:output_type -> concordium.v2.DelegatorRewardPeriodInfo + 42, // 80: concordium.v2.Queries.GetPassiveDelegators:output_type -> concordium.v2.DelegatorInfo + 43, // 81: concordium.v2.Queries.GetPassiveDelegatorsRewardPeriod:output_type -> concordium.v2.DelegatorRewardPeriodInfo + 44, // 82: concordium.v2.Queries.GetBranches:output_type -> concordium.v2.Branch + 45, // 83: concordium.v2.Queries.GetElectionInfo:output_type -> concordium.v2.ElectionInfo + 46, // 84: concordium.v2.Queries.GetIdentityProviders:output_type -> concordium.v2.IpInfo + 47, // 85: concordium.v2.Queries.GetAnonymityRevokers:output_type -> concordium.v2.ArInfo + 8, // 86: concordium.v2.Queries.GetAccountNonFinalizedTransactions:output_type -> concordium.v2.TransactionHash + 48, // 87: concordium.v2.Queries.GetBlockTransactionEvents:output_type -> concordium.v2.BlockItemSummary + 49, // 88: concordium.v2.Queries.GetBlockSpecialEvents:output_type -> concordium.v2.BlockSpecialEvent + 50, // 89: concordium.v2.Queries.GetBlockPendingUpdates:output_type -> concordium.v2.PendingUpdate + 51, // 90: concordium.v2.Queries.GetNextUpdateSequenceNumbers:output_type -> concordium.v2.NextUpdateSequenceNumbers + 52, // 91: concordium.v2.Queries.GetBakerEarliestWinTime:output_type -> concordium.v2.Timestamp + 0, // 92: concordium.v2.Queries.Shutdown:output_type -> concordium.v2.Empty + 0, // 93: concordium.v2.Queries.PeerConnect:output_type -> concordium.v2.Empty + 0, // 94: concordium.v2.Queries.PeerDisconnect:output_type -> concordium.v2.Empty + 53, // 95: concordium.v2.Queries.GetBannedPeers:output_type -> concordium.v2.BannedPeers + 0, // 96: concordium.v2.Queries.BanPeer:output_type -> concordium.v2.Empty + 0, // 97: concordium.v2.Queries.UnbanPeer:output_type -> concordium.v2.Empty + 0, // 98: concordium.v2.Queries.DumpStart:output_type -> concordium.v2.Empty + 0, // 99: concordium.v2.Queries.DumpStop:output_type -> concordium.v2.Empty + 54, // 100: concordium.v2.Queries.GetPeersInfo:output_type -> concordium.v2.PeersInfo + 55, // 101: concordium.v2.Queries.GetNodeInfo:output_type -> concordium.v2.NodeInfo + 8, // 102: concordium.v2.Queries.SendBlockItem:output_type -> concordium.v2.TransactionHash + 56, // 103: concordium.v2.Queries.GetAccountTransactionSignHash:output_type -> concordium.v2.AccountTransactionSignHash + 57, // 104: concordium.v2.Queries.GetBlockChainParameters:output_type -> concordium.v2.ChainParameters + 58, // 105: concordium.v2.Queries.GetBlockFinalizationSummary:output_type -> concordium.v2.BlockFinalizationSummary + 59, // 106: concordium.v2.Queries.GetBlockItems:output_type -> concordium.v2.BlockItem + 60, // 107: concordium.v2.Queries.GetBakersRewardPeriod:output_type -> concordium.v2.BakerRewardPeriodInfo + 61, // 108: concordium.v2.Queries.GetBlockCertificates:output_type -> concordium.v2.BlockCertificates + 62, // 109: concordium.v2.Queries.GetWinningBakersEpoch:output_type -> concordium.v2.WinningBaker + 26, // 110: concordium.v2.Queries.GetFirstBlockEpoch:output_type -> concordium.v2.BlockHash + 63, // 111: concordium.v2.Queries.DryRun:output_type -> concordium.v2.DryRunResponse + 56, // [56:112] is the sub-list for method output_type + 0, // [0:56] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } -func init() { file_service_proto_init() } -func file_service_proto_init() { - if File_service_proto != nil { +func init() { file_v2_concordium_service_proto_init() } +func file_v2_concordium_service_proto_init() { + if File_v2_concordium_service_proto != nil { return } - file_types_proto_init() + file_v2_concordium_types_proto_init() type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_service_proto_rawDesc, + RawDescriptor: file_v2_concordium_service_proto_rawDesc, NumEnums: 0, NumMessages: 0, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_service_proto_goTypes, - DependencyIndexes: file_service_proto_depIdxs, + GoTypes: file_v2_concordium_service_proto_goTypes, + DependencyIndexes: file_v2_concordium_service_proto_depIdxs, }.Build() - File_service_proto = out.File - file_service_proto_rawDesc = nil - file_service_proto_goTypes = nil - file_service_proto_depIdxs = nil + File_v2_concordium_service_proto = out.File + file_v2_concordium_service_proto_rawDesc = nil + file_v2_concordium_service_proto_goTypes = nil + file_v2_concordium_service_proto_depIdxs = nil } diff --git a/v2/pb/service_grpc.pb.go b/v2/pb/service_grpc.pb.go index 464e89d..8cc3195 100644 --- a/v2/pb/service_grpc.pb.go +++ b/v2/pb/service_grpc.pb.go @@ -1,8 +1,8 @@ -// Code generated by protoc-pb-go-grpc. DO NOT EDIT. +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-pb-go-grpc v1.2.0 -// - protoc v3.17.3 -// source: service.proto +// - protoc-gen-go-grpc v1.2.0 +// - protoc v4.25.1 +// source: v2/concordium/service.proto package pb @@ -139,6 +139,21 @@ type QueriesClient interface { GetBlockPendingUpdates(ctx context.Context, in *BlockHashInput, opts ...grpc.CallOption) (Queries_GetBlockPendingUpdatesClient, error) // Get next available sequence numbers for updating chain parameters after a given block. GetNextUpdateSequenceNumbers(ctx context.Context, in *BlockHashInput, opts ...grpc.CallOption) (*NextUpdateSequenceNumbers, error) + // Get the projected earliest time at which a particular baker will be required to bake a block. + // If the current consensus version is 0, this returns the status 'Unavailable', as the endpoint + // is only supported by consensus version 1. + // + // If the baker is not a baker for the current reward period, this returns a timestamp at the + // start of the next reward period. If the baker is a baker for the current reward period, the + // earliest win time is projected from the current round forward, assuming that each round after + // the last finalized round will take the minimum block time. (If blocks take longer, or timeouts + // occur, the actual time may be later, and the reported time in subsequent queries may reflect + // this.) At the end of an epoch (or if the baker is not projected to bake before the end of the + // epoch) the earliest win time for a (current) baker will be projected as the start of the next + // epoch. This is because the seed for the leader election is updated at the epoch boundary, and + // so the winners cannot be predicted beyond that. Note that in some circumstances the returned + // timestamp can be in the past, especially at the end of an epoch. + GetBakerEarliestWinTime(ctx context.Context, in *BakerId, opts ...grpc.CallOption) (*Timestamp, error) // Shut down the node. // Return a GRPC error if the shutdown failed. Shutdown(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error) @@ -169,16 +184,16 @@ type QueriesClient interface { // Only enabled if the node was built with the `network_dump` feature. // Returns a GRPC error if the network dump failed to be stopped. DumpStop(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error) - /// Get a list of the peers that the node is connected to - /// and assoicated network related information for each peer. + // / Get a list of the peers that the node is connected to + // / and assoicated network related information for each peer. GetPeersInfo(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*PeersInfo, error) // Get information about the node. // The `NodeInfo` includes information of - // * Meta information such as the, version of the node, type of the node, uptime and the local time of the node. - // * NetworkInfo which yields data such as the node id, packets sent/received, - // average bytes per second sent/received. - // * ConsensusInfo. The `ConsensusInfo` returned depends on if the node supports - // the protocol on chain and whether the node is configured as a baker or not. + // - Meta information such as the, version of the node, type of the node, uptime and the local time of the node. + // - NetworkInfo which yields data such as the node id, packets sent/received, + // average bytes per second sent/received. + // - ConsensusInfo. The `ConsensusInfo` returned depends on if the node supports + // the protocol on chain and whether the node is configured as a baker or not. GetNodeInfo(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*NodeInfo, error) // Send a block item. A block item is either an `AccountTransaction`, which is // a transaction signed and paid for by an account, a `CredentialDeployment`, @@ -203,6 +218,74 @@ type QueriesClient interface { GetBlockFinalizationSummary(ctx context.Context, in *BlockHashInput, opts ...grpc.CallOption) (*BlockFinalizationSummary, error) // Get the items of a block. GetBlockItems(ctx context.Context, in *BlockHashInput, opts ...grpc.CallOption) (Queries_GetBlockItemsClient, error) + // Get all bakers in the reward period of a block. + // This endpoint is only supported for protocol version 6 and onwards. + // If the protocol does not support the endpoint then an 'IllegalArgument' error is returned. + GetBakersRewardPeriod(ctx context.Context, in *BlockHashInput, opts ...grpc.CallOption) (Queries_GetBakersRewardPeriodClient, error) + // For a non-genesis block, this returns the quorum certificate, a timeout + // certificate (if present) and epoch finalization entry (if present). + // Note that, if the block being pointed to is not a product of ConcordiumBFT, + // then the response will be a grpc error (invalid argument). + // If the endpoint is not enabled by the node, then an 'unimplemented' error + // will be returned. + GetBlockCertificates(ctx context.Context, in *BlockHashInput, opts ...grpc.CallOption) (*BlockCertificates, error) + // Get the list of bakers that won the lottery in a particular historical epoch (i.e. the + // last finalized block is in a later epoch). This lists the winners for each round in the + // epoch, starting from the round after the last block in the previous epoch, running to + // the round before the first block in the next epoch. It also indicates if a block in each + // round was included in the finalized chain. + // + // The following error cases are possible: + // - `NOT_FOUND` if the query specifies an unknown block. + // - `UNAVAILABLE` if the query is for an epoch that is not finalized in the current genesis + // + // / index, or is for a future genesis index. + // - `INVALID_ARGUMENT` if the query is for an epoch that is not finalized for a past genesis + // index. + // - `INVALID_ARGUMENT` if the query is for a genesis index at consensus version 0. + // - `INVALID_ARGUMENT` if the input `EpochRequest` is malformed. + // - `UNIMPLEMENTED` if the endpoint is disabled on the node. + GetWinningBakersEpoch(ctx context.Context, in *EpochRequest, opts ...grpc.CallOption) (Queries_GetWinningBakersEpochClient, error) + // Get the block hash of the first finalized block in a specified epoch. + // + // The following error cases are possible: + // - `NOT_FOUND` if the query specifies an unknown block. + // - `UNAVAILABLE` if the query is for an epoch that is not finalized in the current genesis + // index, or is for a future genesis index. + // - `INVALID_ARGUMENT` if the query is for an epoch with no finalized blocks for a past genesis + // index. + // - `INVALID_ARGUMENT` if the input `EpochRequest` is malformed. + // - `UNIMPLEMENTED` if the endpoint is disabled on the node. + GetFirstBlockEpoch(ctx context.Context, in *EpochRequest, opts ...grpc.CallOption) (*BlockHash, error) + // Dry run a series of transactions and operations on a state derived from a specified block. + // The server should send a single `DryRunResponse` for each `DryRunRequest` received, unless + // the call fails with an error status code. If a request produces a `DryRunErrorResponse`, then + // the server will still process subsequent requests, just as if the request causing the error + // did not happen. + // + // The first request should be `load_block_at_state` to determine the block state that will be + // used for the dry run. + // + // The server associates each request with an energy cost, and limits the total energy that may + // be expended in a single invocation of `DryRun`. This limit is reported as `quota` in the + // initial metadata returned by the server. If executing an operation exceeds the limit, + // the server terminates the session with `RESOURCE_EXHAUSTED`. + // + // The server also imposes a timeout for a dry-run session to complete. The server reports + // the timeout duration in milliseconds in the initial metadata field `timeout`. If the session + // is not completed before the timeout elapses, the server terminates the session with + // `DEADLINE_EXCEEDED`. + // + // The following error cases are possible: + // - `INVALID_ARGUMENT` if any `DryRunRequest` is malformed. + // - `RESOURCE_EXHAUSTED` if the energy quota is exceeded. + // - `DEADLINE_EXCEEDED` if the session does not complete before the server-imposed timeout. + // - `RESOURCE_EXHAUSTED` if the server is not currently accepting new `DryRun` sessions. + // (The server may impose a limit on the number of concurrent sessions.) + // - `INTERNAL` if an interal server error occurs. This should not happen, and likely indicates + // a bug. + // - `UNIMPLEMENTED` if the endpoint is disabled on the node. + DryRun(ctx context.Context, opts ...grpc.CallOption) (Queries_DryRunClient, error) } type queriesClient struct { @@ -942,6 +1025,15 @@ func (c *queriesClient) GetNextUpdateSequenceNumbers(ctx context.Context, in *Bl return out, nil } +func (c *queriesClient) GetBakerEarliestWinTime(ctx context.Context, in *BakerId, opts ...grpc.CallOption) (*Timestamp, error) { + out := new(Timestamp) + err := c.cc.Invoke(ctx, "/concordium.v2.Queries/GetBakerEarliestWinTime", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *queriesClient) Shutdown(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error) { out := new(Empty) err := c.cc.Invoke(ctx, "/concordium.v2.Queries/Shutdown", in, out, opts...) @@ -1100,6 +1192,119 @@ func (x *queriesGetBlockItemsClient) Recv() (*BlockItem, error) { return m, nil } +func (c *queriesClient) GetBakersRewardPeriod(ctx context.Context, in *BlockHashInput, opts ...grpc.CallOption) (Queries_GetBakersRewardPeriodClient, error) { + stream, err := c.cc.NewStream(ctx, &Queries_ServiceDesc.Streams[19], "/concordium.v2.Queries/GetBakersRewardPeriod", opts...) + if err != nil { + return nil, err + } + x := &queriesGetBakersRewardPeriodClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type Queries_GetBakersRewardPeriodClient interface { + Recv() (*BakerRewardPeriodInfo, error) + grpc.ClientStream +} + +type queriesGetBakersRewardPeriodClient struct { + grpc.ClientStream +} + +func (x *queriesGetBakersRewardPeriodClient) Recv() (*BakerRewardPeriodInfo, error) { + m := new(BakerRewardPeriodInfo) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *queriesClient) GetBlockCertificates(ctx context.Context, in *BlockHashInput, opts ...grpc.CallOption) (*BlockCertificates, error) { + out := new(BlockCertificates) + err := c.cc.Invoke(ctx, "/concordium.v2.Queries/GetBlockCertificates", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queriesClient) GetWinningBakersEpoch(ctx context.Context, in *EpochRequest, opts ...grpc.CallOption) (Queries_GetWinningBakersEpochClient, error) { + stream, err := c.cc.NewStream(ctx, &Queries_ServiceDesc.Streams[20], "/concordium.v2.Queries/GetWinningBakersEpoch", opts...) + if err != nil { + return nil, err + } + x := &queriesGetWinningBakersEpochClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type Queries_GetWinningBakersEpochClient interface { + Recv() (*WinningBaker, error) + grpc.ClientStream +} + +type queriesGetWinningBakersEpochClient struct { + grpc.ClientStream +} + +func (x *queriesGetWinningBakersEpochClient) Recv() (*WinningBaker, error) { + m := new(WinningBaker) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *queriesClient) GetFirstBlockEpoch(ctx context.Context, in *EpochRequest, opts ...grpc.CallOption) (*BlockHash, error) { + out := new(BlockHash) + err := c.cc.Invoke(ctx, "/concordium.v2.Queries/GetFirstBlockEpoch", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queriesClient) DryRun(ctx context.Context, opts ...grpc.CallOption) (Queries_DryRunClient, error) { + stream, err := c.cc.NewStream(ctx, &Queries_ServiceDesc.Streams[21], "/concordium.v2.Queries/DryRun", opts...) + if err != nil { + return nil, err + } + x := &queriesDryRunClient{stream} + return x, nil +} + +type Queries_DryRunClient interface { + Send(*DryRunRequest) error + Recv() (*DryRunResponse, error) + grpc.ClientStream +} + +type queriesDryRunClient struct { + grpc.ClientStream +} + +func (x *queriesDryRunClient) Send(m *DryRunRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *queriesDryRunClient) Recv() (*DryRunResponse, error) { + m := new(DryRunResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + // QueriesServer is the server API for Queries service. // All implementations must embed UnimplementedQueriesServer // for forward compatibility @@ -1221,6 +1426,21 @@ type QueriesServer interface { GetBlockPendingUpdates(*BlockHashInput, Queries_GetBlockPendingUpdatesServer) error // Get next available sequence numbers for updating chain parameters after a given block. GetNextUpdateSequenceNumbers(context.Context, *BlockHashInput) (*NextUpdateSequenceNumbers, error) + // Get the projected earliest time at which a particular baker will be required to bake a block. + // If the current consensus version is 0, this returns the status 'Unavailable', as the endpoint + // is only supported by consensus version 1. + // + // If the baker is not a baker for the current reward period, this returns a timestamp at the + // start of the next reward period. If the baker is a baker for the current reward period, the + // earliest win time is projected from the current round forward, assuming that each round after + // the last finalized round will take the minimum block time. (If blocks take longer, or timeouts + // occur, the actual time may be later, and the reported time in subsequent queries may reflect + // this.) At the end of an epoch (or if the baker is not projected to bake before the end of the + // epoch) the earliest win time for a (current) baker will be projected as the start of the next + // epoch. This is because the seed for the leader election is updated at the epoch boundary, and + // so the winners cannot be predicted beyond that. Note that in some circumstances the returned + // timestamp can be in the past, especially at the end of an epoch. + GetBakerEarliestWinTime(context.Context, *BakerId) (*Timestamp, error) // Shut down the node. // Return a GRPC error if the shutdown failed. Shutdown(context.Context, *Empty) (*Empty, error) @@ -1251,16 +1471,16 @@ type QueriesServer interface { // Only enabled if the node was built with the `network_dump` feature. // Returns a GRPC error if the network dump failed to be stopped. DumpStop(context.Context, *Empty) (*Empty, error) - /// Get a list of the peers that the node is connected to - /// and assoicated network related information for each peer. + // / Get a list of the peers that the node is connected to + // / and assoicated network related information for each peer. GetPeersInfo(context.Context, *Empty) (*PeersInfo, error) // Get information about the node. // The `NodeInfo` includes information of - // * Meta information such as the, version of the node, type of the node, uptime and the local time of the node. - // * NetworkInfo which yields data such as the node id, packets sent/received, - // average bytes per second sent/received. - // * ConsensusInfo. The `ConsensusInfo` returned depends on if the node supports - // the protocol on chain and whether the node is configured as a baker or not. + // - Meta information such as the, version of the node, type of the node, uptime and the local time of the node. + // - NetworkInfo which yields data such as the node id, packets sent/received, + // average bytes per second sent/received. + // - ConsensusInfo. The `ConsensusInfo` returned depends on if the node supports + // the protocol on chain and whether the node is configured as a baker or not. GetNodeInfo(context.Context, *Empty) (*NodeInfo, error) // Send a block item. A block item is either an `AccountTransaction`, which is // a transaction signed and paid for by an account, a `CredentialDeployment`, @@ -1285,6 +1505,74 @@ type QueriesServer interface { GetBlockFinalizationSummary(context.Context, *BlockHashInput) (*BlockFinalizationSummary, error) // Get the items of a block. GetBlockItems(*BlockHashInput, Queries_GetBlockItemsServer) error + // Get all bakers in the reward period of a block. + // This endpoint is only supported for protocol version 6 and onwards. + // If the protocol does not support the endpoint then an 'IllegalArgument' error is returned. + GetBakersRewardPeriod(*BlockHashInput, Queries_GetBakersRewardPeriodServer) error + // For a non-genesis block, this returns the quorum certificate, a timeout + // certificate (if present) and epoch finalization entry (if present). + // Note that, if the block being pointed to is not a product of ConcordiumBFT, + // then the response will be a grpc error (invalid argument). + // If the endpoint is not enabled by the node, then an 'unimplemented' error + // will be returned. + GetBlockCertificates(context.Context, *BlockHashInput) (*BlockCertificates, error) + // Get the list of bakers that won the lottery in a particular historical epoch (i.e. the + // last finalized block is in a later epoch). This lists the winners for each round in the + // epoch, starting from the round after the last block in the previous epoch, running to + // the round before the first block in the next epoch. It also indicates if a block in each + // round was included in the finalized chain. + // + // The following error cases are possible: + // - `NOT_FOUND` if the query specifies an unknown block. + // - `UNAVAILABLE` if the query is for an epoch that is not finalized in the current genesis + // + // / index, or is for a future genesis index. + // - `INVALID_ARGUMENT` if the query is for an epoch that is not finalized for a past genesis + // index. + // - `INVALID_ARGUMENT` if the query is for a genesis index at consensus version 0. + // - `INVALID_ARGUMENT` if the input `EpochRequest` is malformed. + // - `UNIMPLEMENTED` if the endpoint is disabled on the node. + GetWinningBakersEpoch(*EpochRequest, Queries_GetWinningBakersEpochServer) error + // Get the block hash of the first finalized block in a specified epoch. + // + // The following error cases are possible: + // - `NOT_FOUND` if the query specifies an unknown block. + // - `UNAVAILABLE` if the query is for an epoch that is not finalized in the current genesis + // index, or is for a future genesis index. + // - `INVALID_ARGUMENT` if the query is for an epoch with no finalized blocks for a past genesis + // index. + // - `INVALID_ARGUMENT` if the input `EpochRequest` is malformed. + // - `UNIMPLEMENTED` if the endpoint is disabled on the node. + GetFirstBlockEpoch(context.Context, *EpochRequest) (*BlockHash, error) + // Dry run a series of transactions and operations on a state derived from a specified block. + // The server should send a single `DryRunResponse` for each `DryRunRequest` received, unless + // the call fails with an error status code. If a request produces a `DryRunErrorResponse`, then + // the server will still process subsequent requests, just as if the request causing the error + // did not happen. + // + // The first request should be `load_block_at_state` to determine the block state that will be + // used for the dry run. + // + // The server associates each request with an energy cost, and limits the total energy that may + // be expended in a single invocation of `DryRun`. This limit is reported as `quota` in the + // initial metadata returned by the server. If executing an operation exceeds the limit, + // the server terminates the session with `RESOURCE_EXHAUSTED`. + // + // The server also imposes a timeout for a dry-run session to complete. The server reports + // the timeout duration in milliseconds in the initial metadata field `timeout`. If the session + // is not completed before the timeout elapses, the server terminates the session with + // `DEADLINE_EXCEEDED`. + // + // The following error cases are possible: + // - `INVALID_ARGUMENT` if any `DryRunRequest` is malformed. + // - `RESOURCE_EXHAUSTED` if the energy quota is exceeded. + // - `DEADLINE_EXCEEDED` if the session does not complete before the server-imposed timeout. + // - `RESOURCE_EXHAUSTED` if the server is not currently accepting new `DryRun` sessions. + // (The server may impose a limit on the number of concurrent sessions.) + // - `INTERNAL` if an interal server error occurs. This should not happen, and likely indicates + // a bug. + // - `UNIMPLEMENTED` if the endpoint is disabled on the node. + DryRun(Queries_DryRunServer) error mustEmbedUnimplementedQueriesServer() } @@ -1397,6 +1685,9 @@ func (UnimplementedQueriesServer) GetBlockPendingUpdates(*BlockHashInput, Querie func (UnimplementedQueriesServer) GetNextUpdateSequenceNumbers(context.Context, *BlockHashInput) (*NextUpdateSequenceNumbers, error) { return nil, status.Errorf(codes.Unimplemented, "method GetNextUpdateSequenceNumbers not implemented") } +func (UnimplementedQueriesServer) GetBakerEarliestWinTime(context.Context, *BakerId) (*Timestamp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetBakerEarliestWinTime not implemented") +} func (UnimplementedQueriesServer) Shutdown(context.Context, *Empty) (*Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method Shutdown not implemented") } @@ -1442,6 +1733,21 @@ func (UnimplementedQueriesServer) GetBlockFinalizationSummary(context.Context, * func (UnimplementedQueriesServer) GetBlockItems(*BlockHashInput, Queries_GetBlockItemsServer) error { return status.Errorf(codes.Unimplemented, "method GetBlockItems not implemented") } +func (UnimplementedQueriesServer) GetBakersRewardPeriod(*BlockHashInput, Queries_GetBakersRewardPeriodServer) error { + return status.Errorf(codes.Unimplemented, "method GetBakersRewardPeriod not implemented") +} +func (UnimplementedQueriesServer) GetBlockCertificates(context.Context, *BlockHashInput) (*BlockCertificates, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetBlockCertificates not implemented") +} +func (UnimplementedQueriesServer) GetWinningBakersEpoch(*EpochRequest, Queries_GetWinningBakersEpochServer) error { + return status.Errorf(codes.Unimplemented, "method GetWinningBakersEpoch not implemented") +} +func (UnimplementedQueriesServer) GetFirstBlockEpoch(context.Context, *EpochRequest) (*BlockHash, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFirstBlockEpoch not implemented") +} +func (UnimplementedQueriesServer) DryRun(Queries_DryRunServer) error { + return status.Errorf(codes.Unimplemented, "method DryRun not implemented") +} func (UnimplementedQueriesServer) mustEmbedUnimplementedQueriesServer() {} // UnsafeQueriesServer may be embedded to opt out of forward compatibility for this service. @@ -2139,6 +2445,24 @@ func _Queries_GetNextUpdateSequenceNumbers_Handler(srv interface{}, ctx context. return interceptor(ctx, in, info, handler) } +func _Queries_GetBakerEarliestWinTime_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BakerId) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueriesServer).GetBakerEarliestWinTime(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/concordium.v2.Queries/GetBakerEarliestWinTime", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueriesServer).GetBakerEarliestWinTime(ctx, req.(*BakerId)) + } + return interceptor(ctx, in, info, handler) +} + func _Queries_Shutdown_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(Empty) if err := dec(in); err != nil { @@ -2412,6 +2736,110 @@ func (x *queriesGetBlockItemsServer) Send(m *BlockItem) error { return x.ServerStream.SendMsg(m) } +func _Queries_GetBakersRewardPeriod_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(BlockHashInput) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(QueriesServer).GetBakersRewardPeriod(m, &queriesGetBakersRewardPeriodServer{stream}) +} + +type Queries_GetBakersRewardPeriodServer interface { + Send(*BakerRewardPeriodInfo) error + grpc.ServerStream +} + +type queriesGetBakersRewardPeriodServer struct { + grpc.ServerStream +} + +func (x *queriesGetBakersRewardPeriodServer) Send(m *BakerRewardPeriodInfo) error { + return x.ServerStream.SendMsg(m) +} + +func _Queries_GetBlockCertificates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BlockHashInput) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueriesServer).GetBlockCertificates(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/concordium.v2.Queries/GetBlockCertificates", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueriesServer).GetBlockCertificates(ctx, req.(*BlockHashInput)) + } + return interceptor(ctx, in, info, handler) +} + +func _Queries_GetWinningBakersEpoch_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(EpochRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(QueriesServer).GetWinningBakersEpoch(m, &queriesGetWinningBakersEpochServer{stream}) +} + +type Queries_GetWinningBakersEpochServer interface { + Send(*WinningBaker) error + grpc.ServerStream +} + +type queriesGetWinningBakersEpochServer struct { + grpc.ServerStream +} + +func (x *queriesGetWinningBakersEpochServer) Send(m *WinningBaker) error { + return x.ServerStream.SendMsg(m) +} + +func _Queries_GetFirstBlockEpoch_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EpochRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueriesServer).GetFirstBlockEpoch(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/concordium.v2.Queries/GetFirstBlockEpoch", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueriesServer).GetFirstBlockEpoch(ctx, req.(*EpochRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Queries_DryRun_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(QueriesServer).DryRun(&queriesDryRunServer{stream}) +} + +type Queries_DryRunServer interface { + Send(*DryRunResponse) error + Recv() (*DryRunRequest, error) + grpc.ServerStream +} + +type queriesDryRunServer struct { + grpc.ServerStream +} + +func (x *queriesDryRunServer) Send(m *DryRunResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *queriesDryRunServer) Recv() (*DryRunRequest, error) { + m := new(DryRunRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + // Queries_ServiceDesc is the grpc.ServiceDesc for Queries service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -2487,6 +2915,10 @@ var Queries_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetNextUpdateSequenceNumbers", Handler: _Queries_GetNextUpdateSequenceNumbers_Handler, }, + { + MethodName: "GetBakerEarliestWinTime", + Handler: _Queries_GetBakerEarliestWinTime_Handler, + }, { MethodName: "Shutdown", Handler: _Queries_Shutdown_Handler, @@ -2543,6 +2975,14 @@ var Queries_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetBlockFinalizationSummary", Handler: _Queries_GetBlockFinalizationSummary_Handler, }, + { + MethodName: "GetBlockCertificates", + Handler: _Queries_GetBlockCertificates_Handler, + }, + { + MethodName: "GetFirstBlockEpoch", + Handler: _Queries_GetFirstBlockEpoch_Handler, + }, }, Streams: []grpc.StreamDesc{ { @@ -2640,6 +3080,22 @@ var Queries_ServiceDesc = grpc.ServiceDesc{ Handler: _Queries_GetBlockItems_Handler, ServerStreams: true, }, + { + StreamName: "GetBakersRewardPeriod", + Handler: _Queries_GetBakersRewardPeriod_Handler, + ServerStreams: true, + }, + { + StreamName: "GetWinningBakersEpoch", + Handler: _Queries_GetWinningBakersEpoch_Handler, + ServerStreams: true, + }, + { + StreamName: "DryRun", + Handler: _Queries_DryRun_Handler, + ServerStreams: true, + ClientStreams: true, + }, }, - Metadata: "service.proto", + Metadata: "v2/concordium/service.proto", } diff --git a/v2/pb/types.pb.go b/v2/pb/types.pb.go index 59b2de9..188c873 100644 --- a/v2/pb/types.pb.go +++ b/v2/pb/types.pb.go @@ -1,8 +1,8 @@ -// Code generated by protoc-pb-go. DO NOT EDIT. +// Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-pb-go v1.28.1 -// protoc v3.17.3 -// source: types.proto +// protoc-gen-go v1.28.1 +// protoc v4.25.1 +// source: v2/concordium/types.proto package pb @@ -54,11 +54,11 @@ func (x OpenStatus) String() string { } func (OpenStatus) Descriptor() protoreflect.EnumDescriptor { - return file_types_proto_enumTypes[0].Descriptor() + return file_v2_concordium_types_proto_enumTypes[0].Descriptor() } func (OpenStatus) Type() protoreflect.EnumType { - return &file_types_proto_enumTypes[0] + return &file_v2_concordium_types_proto_enumTypes[0] } func (x OpenStatus) Number() protoreflect.EnumNumber { @@ -67,7 +67,7 @@ func (x OpenStatus) Number() protoreflect.EnumNumber { // Deprecated: Use OpenStatus.Descriptor instead. func (OpenStatus) EnumDescriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{0} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{0} } // Version of smart contract. @@ -101,11 +101,11 @@ func (x ContractVersion) String() string { } func (ContractVersion) Descriptor() protoreflect.EnumDescriptor { - return file_types_proto_enumTypes[1].Descriptor() + return file_v2_concordium_types_proto_enumTypes[1].Descriptor() } func (ContractVersion) Type() protoreflect.EnumType { - return &file_types_proto_enumTypes[1] + return &file_v2_concordium_types_proto_enumTypes[1] } func (x ContractVersion) Number() protoreflect.EnumNumber { @@ -114,7 +114,7 @@ func (x ContractVersion) Number() protoreflect.EnumNumber { // Deprecated: Use ContractVersion.Descriptor instead. func (ContractVersion) EnumDescriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{1} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{1} } // The type of a credential. @@ -150,11 +150,11 @@ func (x CredentialType) String() string { } func (CredentialType) Descriptor() protoreflect.EnumDescriptor { - return file_types_proto_enumTypes[2].Descriptor() + return file_v2_concordium_types_proto_enumTypes[2].Descriptor() } func (CredentialType) Type() protoreflect.EnumType { - return &file_types_proto_enumTypes[2] + return &file_v2_concordium_types_proto_enumTypes[2] } func (x CredentialType) Number() protoreflect.EnumNumber { @@ -163,7 +163,7 @@ func (x CredentialType) Number() protoreflect.EnumNumber { // Deprecated: Use CredentialType.Descriptor instead. func (CredentialType) EnumDescriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{2} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{2} } // The type of chain update. @@ -251,11 +251,11 @@ func (x UpdateType) String() string { } func (UpdateType) Descriptor() protoreflect.EnumDescriptor { - return file_types_proto_enumTypes[3].Descriptor() + return file_v2_concordium_types_proto_enumTypes[3].Descriptor() } func (UpdateType) Type() protoreflect.EnumType { - return &file_types_proto_enumTypes[3] + return &file_v2_concordium_types_proto_enumTypes[3] } func (x UpdateType) Number() protoreflect.EnumNumber { @@ -264,7 +264,7 @@ func (x UpdateType) Number() protoreflect.EnumNumber { // Deprecated: Use UpdateType.Descriptor instead. func (UpdateType) EnumDescriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{3} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{3} } // The type of transaction. @@ -355,11 +355,11 @@ func (x TransactionType) String() string { } func (TransactionType) Descriptor() protoreflect.EnumDescriptor { - return file_types_proto_enumTypes[4].Descriptor() + return file_v2_concordium_types_proto_enumTypes[4].Descriptor() } func (TransactionType) Type() protoreflect.EnumType { - return &file_types_proto_enumTypes[4] + return &file_v2_concordium_types_proto_enumTypes[4] } func (x TransactionType) Number() protoreflect.EnumNumber { @@ -368,7 +368,7 @@ func (x TransactionType) Number() protoreflect.EnumNumber { // Deprecated: Use TransactionType.Descriptor instead. func (TransactionType) EnumDescriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{4} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{4} } // The different versions of the protocol. @@ -414,11 +414,11 @@ func (x ProtocolVersion) String() string { } func (ProtocolVersion) Descriptor() protoreflect.EnumDescriptor { - return file_types_proto_enumTypes[5].Descriptor() + return file_v2_concordium_types_proto_enumTypes[5].Descriptor() } func (ProtocolVersion) Type() protoreflect.EnumType { - return &file_types_proto_enumTypes[5] + return &file_v2_concordium_types_proto_enumTypes[5] } func (x ProtocolVersion) Number() protoreflect.EnumNumber { @@ -427,7 +427,7 @@ func (x ProtocolVersion) Number() protoreflect.EnumNumber { // Deprecated: Use ProtocolVersion.Descriptor instead. func (ProtocolVersion) EnumDescriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{5} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{5} } type PeersInfo_Peer_CatchupStatus int32 @@ -474,11 +474,11 @@ func (x PeersInfo_Peer_CatchupStatus) String() string { } func (PeersInfo_Peer_CatchupStatus) Descriptor() protoreflect.EnumDescriptor { - return file_types_proto_enumTypes[6].Descriptor() + return file_v2_concordium_types_proto_enumTypes[6].Descriptor() } func (PeersInfo_Peer_CatchupStatus) Type() protoreflect.EnumType { - return &file_types_proto_enumTypes[6] + return &file_v2_concordium_types_proto_enumTypes[6] } func (x PeersInfo_Peer_CatchupStatus) Number() protoreflect.EnumNumber { @@ -487,7 +487,7 @@ func (x PeersInfo_Peer_CatchupStatus) Number() protoreflect.EnumNumber { // Deprecated: Use PeersInfo_Peer_CatchupStatus.Descriptor instead. func (PeersInfo_Peer_CatchupStatus) EnumDescriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{163, 0, 0} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{165, 0, 0} } // The committee information of a node configured with @@ -533,11 +533,11 @@ func (x NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo) String() string { } func (NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo) Descriptor() protoreflect.EnumDescriptor { - return file_types_proto_enumTypes[7].Descriptor() + return file_v2_concordium_types_proto_enumTypes[7].Descriptor() } func (NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo) Type() protoreflect.EnumType { - return &file_types_proto_enumTypes[7] + return &file_v2_concordium_types_proto_enumTypes[7] } func (x NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo) Number() protoreflect.EnumNumber { @@ -546,7 +546,7 @@ func (x NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo) Number() protoreflect. // Deprecated: Use NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo.Descriptor instead. func (NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo) EnumDescriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{164, 1, 0} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{166, 1, 0} } // A message that contains no information. @@ -559,7 +559,7 @@ type Empty struct { func (x *Empty) Reset() { *x = Empty{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[0] + mi := &file_v2_concordium_types_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -572,7 +572,7 @@ func (x *Empty) String() string { func (*Empty) ProtoMessage() {} func (x *Empty) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[0] + mi := &file_v2_concordium_types_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -585,7 +585,7 @@ func (x *Empty) ProtoReflect() protoreflect.Message { // Deprecated: Use Empty.ProtoReflect.Descriptor instead. func (*Empty) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{0} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{0} } // Hash of a block. This is always 32 bytes long. @@ -600,7 +600,7 @@ type BlockHash struct { func (x *BlockHash) Reset() { *x = BlockHash{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[1] + mi := &file_v2_concordium_types_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -613,7 +613,7 @@ func (x *BlockHash) String() string { func (*BlockHash) ProtoMessage() {} func (x *BlockHash) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[1] + mi := &file_v2_concordium_types_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -626,7 +626,7 @@ func (x *BlockHash) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockHash.ProtoReflect.Descriptor instead. func (*BlockHash) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{1} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{1} } func (x *BlockHash) GetValue() []byte { @@ -648,7 +648,7 @@ type Sha256Hash struct { func (x *Sha256Hash) Reset() { *x = Sha256Hash{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[2] + mi := &file_v2_concordium_types_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -661,7 +661,7 @@ func (x *Sha256Hash) String() string { func (*Sha256Hash) ProtoMessage() {} func (x *Sha256Hash) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[2] + mi := &file_v2_concordium_types_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -674,7 +674,7 @@ func (x *Sha256Hash) ProtoReflect() protoreflect.Message { // Deprecated: Use Sha256Hash.ProtoReflect.Descriptor instead. func (*Sha256Hash) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{2} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{2} } func (x *Sha256Hash) GetValue() []byte { @@ -696,7 +696,7 @@ type TransactionHash struct { func (x *TransactionHash) Reset() { *x = TransactionHash{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[3] + mi := &file_v2_concordium_types_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -709,7 +709,7 @@ func (x *TransactionHash) String() string { func (*TransactionHash) ProtoMessage() {} func (x *TransactionHash) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[3] + mi := &file_v2_concordium_types_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -722,7 +722,7 @@ func (x *TransactionHash) ProtoReflect() protoreflect.Message { // Deprecated: Use TransactionHash.ProtoReflect.Descriptor instead. func (*TransactionHash) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{3} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{3} } func (x *TransactionHash) GetValue() []byte { @@ -744,7 +744,7 @@ type StateHash struct { func (x *StateHash) Reset() { *x = StateHash{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[4] + mi := &file_v2_concordium_types_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -757,7 +757,7 @@ func (x *StateHash) String() string { func (*StateHash) ProtoMessage() {} func (x *StateHash) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[4] + mi := &file_v2_concordium_types_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -770,7 +770,7 @@ func (x *StateHash) ProtoReflect() protoreflect.Message { // Deprecated: Use StateHash.ProtoReflect.Descriptor instead. func (*StateHash) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{4} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{4} } func (x *StateHash) GetValue() []byte { @@ -794,7 +794,7 @@ type AbsoluteBlockHeight struct { func (x *AbsoluteBlockHeight) Reset() { *x = AbsoluteBlockHeight{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[5] + mi := &file_v2_concordium_types_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -807,7 +807,7 @@ func (x *AbsoluteBlockHeight) String() string { func (*AbsoluteBlockHeight) ProtoMessage() {} func (x *AbsoluteBlockHeight) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[5] + mi := &file_v2_concordium_types_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -820,7 +820,7 @@ func (x *AbsoluteBlockHeight) ProtoReflect() protoreflect.Message { // Deprecated: Use AbsoluteBlockHeight.ProtoReflect.Descriptor instead. func (*AbsoluteBlockHeight) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{5} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{5} } func (x *AbsoluteBlockHeight) GetValue() uint64 { @@ -843,7 +843,7 @@ type BlockHeight struct { func (x *BlockHeight) Reset() { *x = BlockHeight{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[6] + mi := &file_v2_concordium_types_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -856,7 +856,7 @@ func (x *BlockHeight) String() string { func (*BlockHeight) ProtoMessage() {} func (x *BlockHeight) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[6] + mi := &file_v2_concordium_types_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -869,7 +869,7 @@ func (x *BlockHeight) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockHeight.ProtoReflect.Descriptor instead. func (*BlockHeight) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{6} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{6} } func (x *BlockHeight) GetValue() uint64 { @@ -891,7 +891,7 @@ type BakerId struct { func (x *BakerId) Reset() { *x = BakerId{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[7] + mi := &file_v2_concordium_types_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -904,7 +904,7 @@ func (x *BakerId) String() string { func (*BakerId) ProtoMessage() {} func (x *BakerId) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[7] + mi := &file_v2_concordium_types_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -917,7 +917,7 @@ func (x *BakerId) ProtoReflect() protoreflect.Message { // Deprecated: Use BakerId.ProtoReflect.Descriptor instead. func (*BakerId) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{7} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{7} } func (x *BakerId) GetValue() uint64 { @@ -940,7 +940,7 @@ type AccountIndex struct { func (x *AccountIndex) Reset() { *x = AccountIndex{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[8] + mi := &file_v2_concordium_types_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -953,7 +953,7 @@ func (x *AccountIndex) String() string { func (*AccountIndex) ProtoMessage() {} func (x *AccountIndex) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[8] + mi := &file_v2_concordium_types_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -966,7 +966,7 @@ func (x *AccountIndex) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountIndex.ProtoReflect.Descriptor instead. func (*AccountIndex) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{8} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{8} } func (x *AccountIndex) GetValue() uint64 { @@ -988,7 +988,7 @@ type ModuleRef struct { func (x *ModuleRef) Reset() { *x = ModuleRef{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[9] + mi := &file_v2_concordium_types_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1001,7 +1001,7 @@ func (x *ModuleRef) String() string { func (*ModuleRef) ProtoMessage() {} func (x *ModuleRef) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[9] + mi := &file_v2_concordium_types_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1014,7 +1014,7 @@ func (x *ModuleRef) ProtoReflect() protoreflect.Message { // Deprecated: Use ModuleRef.ProtoReflect.Descriptor instead. func (*ModuleRef) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{9} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{9} } func (x *ModuleRef) GetValue() []byte { @@ -1031,6 +1031,7 @@ type VersionedModuleSource struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Module: + // // *VersionedModuleSource_V0 // *VersionedModuleSource_V1 Module isVersionedModuleSource_Module `protobuf_oneof:"module"` @@ -1039,7 +1040,7 @@ type VersionedModuleSource struct { func (x *VersionedModuleSource) Reset() { *x = VersionedModuleSource{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[10] + mi := &file_v2_concordium_types_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1052,7 +1053,7 @@ func (x *VersionedModuleSource) String() string { func (*VersionedModuleSource) ProtoMessage() {} func (x *VersionedModuleSource) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[10] + mi := &file_v2_concordium_types_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1065,7 +1066,7 @@ func (x *VersionedModuleSource) ProtoReflect() protoreflect.Message { // Deprecated: Use VersionedModuleSource.ProtoReflect.Descriptor instead. func (*VersionedModuleSource) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{10} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{10} } func (m *VersionedModuleSource) GetModule() isVersionedModuleSource_Module { @@ -1117,7 +1118,7 @@ type Timestamp struct { func (x *Timestamp) Reset() { *x = Timestamp{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[11] + mi := &file_v2_concordium_types_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1130,7 +1131,7 @@ func (x *Timestamp) String() string { func (*Timestamp) ProtoMessage() {} func (x *Timestamp) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[11] + mi := &file_v2_concordium_types_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1143,7 +1144,7 @@ func (x *Timestamp) ProtoReflect() protoreflect.Message { // Deprecated: Use Timestamp.ProtoReflect.Descriptor instead. func (*Timestamp) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{11} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{11} } func (x *Timestamp) GetValue() uint64 { @@ -1170,7 +1171,7 @@ type Release struct { func (x *Release) Reset() { *x = Release{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[12] + mi := &file_v2_concordium_types_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1183,7 +1184,7 @@ func (x *Release) String() string { func (*Release) ProtoMessage() {} func (x *Release) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[12] + mi := &file_v2_concordium_types_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1196,7 +1197,7 @@ func (x *Release) ProtoReflect() protoreflect.Message { // Deprecated: Use Release.ProtoReflect.Descriptor instead. func (*Release) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{12} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{12} } func (x *Release) GetTimestamp() *Timestamp { @@ -1235,7 +1236,7 @@ type NewRelease struct { func (x *NewRelease) Reset() { *x = NewRelease{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[13] + mi := &file_v2_concordium_types_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1248,7 +1249,7 @@ func (x *NewRelease) String() string { func (*NewRelease) ProtoMessage() {} func (x *NewRelease) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[13] + mi := &file_v2_concordium_types_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1261,7 +1262,7 @@ func (x *NewRelease) ProtoReflect() protoreflect.Message { // Deprecated: Use NewRelease.ProtoReflect.Descriptor instead. func (*NewRelease) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{13} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{13} } func (x *NewRelease) GetTimestamp() *Timestamp { @@ -1294,7 +1295,7 @@ type ReleaseSchedule struct { func (x *ReleaseSchedule) Reset() { *x = ReleaseSchedule{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[14] + mi := &file_v2_concordium_types_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1307,7 +1308,7 @@ func (x *ReleaseSchedule) String() string { func (*ReleaseSchedule) ProtoMessage() {} func (x *ReleaseSchedule) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[14] + mi := &file_v2_concordium_types_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1320,7 +1321,7 @@ func (x *ReleaseSchedule) ProtoReflect() protoreflect.Message { // Deprecated: Use ReleaseSchedule.ProtoReflect.Descriptor instead. func (*ReleaseSchedule) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{14} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{14} } func (x *ReleaseSchedule) GetTotal() *Amount { @@ -1353,7 +1354,7 @@ type EncryptedAmount struct { func (x *EncryptedAmount) Reset() { *x = EncryptedAmount{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[15] + mi := &file_v2_concordium_types_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1366,7 +1367,7 @@ func (x *EncryptedAmount) String() string { func (*EncryptedAmount) ProtoMessage() {} func (x *EncryptedAmount) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[15] + mi := &file_v2_concordium_types_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1379,7 +1380,7 @@ func (x *EncryptedAmount) ProtoReflect() protoreflect.Message { // Deprecated: Use EncryptedAmount.ProtoReflect.Descriptor instead. func (*EncryptedAmount) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{15} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{15} } func (x *EncryptedAmount) GetValue() []byte { @@ -1425,7 +1426,7 @@ type EncryptedBalance struct { func (x *EncryptedBalance) Reset() { *x = EncryptedBalance{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[16] + mi := &file_v2_concordium_types_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1438,7 +1439,7 @@ func (x *EncryptedBalance) String() string { func (*EncryptedBalance) ProtoMessage() {} func (x *EncryptedBalance) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[16] + mi := &file_v2_concordium_types_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1451,7 +1452,7 @@ func (x *EncryptedBalance) ProtoReflect() protoreflect.Message { // Deprecated: Use EncryptedBalance.ProtoReflect.Descriptor instead. func (*EncryptedBalance) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{16} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{16} } func (x *EncryptedBalance) GetSelfAmount() *EncryptedAmount { @@ -1496,6 +1497,7 @@ type DelegationTarget struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Target: + // // *DelegationTarget_Passive // *DelegationTarget_Baker Target isDelegationTarget_Target `protobuf_oneof:"target"` @@ -1504,7 +1506,7 @@ type DelegationTarget struct { func (x *DelegationTarget) Reset() { *x = DelegationTarget{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[17] + mi := &file_v2_concordium_types_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1517,7 +1519,7 @@ func (x *DelegationTarget) String() string { func (*DelegationTarget) ProtoMessage() {} func (x *DelegationTarget) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[17] + mi := &file_v2_concordium_types_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1530,7 +1532,7 @@ func (x *DelegationTarget) ProtoReflect() protoreflect.Message { // Deprecated: Use DelegationTarget.ProtoReflect.Descriptor instead. func (*DelegationTarget) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{17} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{17} } func (m *DelegationTarget) GetTarget() isDelegationTarget_Target { @@ -1584,7 +1586,7 @@ type BakerElectionVerifyKey struct { func (x *BakerElectionVerifyKey) Reset() { *x = BakerElectionVerifyKey{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[18] + mi := &file_v2_concordium_types_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1597,7 +1599,7 @@ func (x *BakerElectionVerifyKey) String() string { func (*BakerElectionVerifyKey) ProtoMessage() {} func (x *BakerElectionVerifyKey) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[18] + mi := &file_v2_concordium_types_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1610,7 +1612,7 @@ func (x *BakerElectionVerifyKey) ProtoReflect() protoreflect.Message { // Deprecated: Use BakerElectionVerifyKey.ProtoReflect.Descriptor instead. func (*BakerElectionVerifyKey) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{18} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{18} } func (x *BakerElectionVerifyKey) GetValue() []byte { @@ -1633,7 +1635,7 @@ type BakerSignatureVerifyKey struct { func (x *BakerSignatureVerifyKey) Reset() { *x = BakerSignatureVerifyKey{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[19] + mi := &file_v2_concordium_types_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1646,7 +1648,7 @@ func (x *BakerSignatureVerifyKey) String() string { func (*BakerSignatureVerifyKey) ProtoMessage() {} func (x *BakerSignatureVerifyKey) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[19] + mi := &file_v2_concordium_types_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1659,7 +1661,7 @@ func (x *BakerSignatureVerifyKey) ProtoReflect() protoreflect.Message { // Deprecated: Use BakerSignatureVerifyKey.ProtoReflect.Descriptor instead. func (*BakerSignatureVerifyKey) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{19} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{19} } func (x *BakerSignatureVerifyKey) GetValue() []byte { @@ -1683,7 +1685,7 @@ type BakerAggregationVerifyKey struct { func (x *BakerAggregationVerifyKey) Reset() { *x = BakerAggregationVerifyKey{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[20] + mi := &file_v2_concordium_types_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1696,7 +1698,7 @@ func (x *BakerAggregationVerifyKey) String() string { func (*BakerAggregationVerifyKey) ProtoMessage() {} func (x *BakerAggregationVerifyKey) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[20] + mi := &file_v2_concordium_types_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1709,7 +1711,7 @@ func (x *BakerAggregationVerifyKey) ProtoReflect() protoreflect.Message { // Deprecated: Use BakerAggregationVerifyKey.ProtoReflect.Descriptor instead. func (*BakerAggregationVerifyKey) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{20} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{20} } func (x *BakerAggregationVerifyKey) GetValue() []byte { @@ -1742,7 +1744,7 @@ type BakerInfo struct { func (x *BakerInfo) Reset() { *x = BakerInfo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[21] + mi := &file_v2_concordium_types_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1755,7 +1757,7 @@ func (x *BakerInfo) String() string { func (*BakerInfo) ProtoMessage() {} func (x *BakerInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[21] + mi := &file_v2_concordium_types_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1768,7 +1770,7 @@ func (x *BakerInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use BakerInfo.ProtoReflect.Descriptor instead. func (*BakerInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{21} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{21} } func (x *BakerInfo) GetBakerId() *BakerId { @@ -1806,6 +1808,7 @@ type StakePendingChange struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Change: + // // *StakePendingChange_Reduce_ // *StakePendingChange_Remove Change isStakePendingChange_Change `protobuf_oneof:"change"` @@ -1814,7 +1817,7 @@ type StakePendingChange struct { func (x *StakePendingChange) Reset() { *x = StakePendingChange{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[22] + mi := &file_v2_concordium_types_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1827,7 +1830,7 @@ func (x *StakePendingChange) String() string { func (*StakePendingChange) ProtoMessage() {} func (x *StakePendingChange) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[22] + mi := &file_v2_concordium_types_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1840,7 +1843,7 @@ func (x *StakePendingChange) ProtoReflect() protoreflect.Message { // Deprecated: Use StakePendingChange.ProtoReflect.Descriptor instead. func (*StakePendingChange) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{22} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{22} } func (m *StakePendingChange) GetChange() isStakePendingChange_Change { @@ -1895,7 +1898,7 @@ type AmountFraction struct { func (x *AmountFraction) Reset() { *x = AmountFraction{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[23] + mi := &file_v2_concordium_types_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1908,7 +1911,7 @@ func (x *AmountFraction) String() string { func (*AmountFraction) ProtoMessage() {} func (x *AmountFraction) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[23] + mi := &file_v2_concordium_types_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1921,7 +1924,7 @@ func (x *AmountFraction) ProtoReflect() protoreflect.Message { // Deprecated: Use AmountFraction.ProtoReflect.Descriptor instead. func (*AmountFraction) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{23} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{23} } func (x *AmountFraction) GetPartsPerHundredThousand() uint32 { @@ -1948,7 +1951,7 @@ type CommissionRates struct { func (x *CommissionRates) Reset() { *x = CommissionRates{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[24] + mi := &file_v2_concordium_types_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1961,7 +1964,7 @@ func (x *CommissionRates) String() string { func (*CommissionRates) ProtoMessage() {} func (x *CommissionRates) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[24] + mi := &file_v2_concordium_types_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1974,7 +1977,7 @@ func (x *CommissionRates) ProtoReflect() protoreflect.Message { // Deprecated: Use CommissionRates.ProtoReflect.Descriptor instead. func (*CommissionRates) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{24} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{24} } func (x *CommissionRates) GetFinalization() *AmountFraction { @@ -2016,7 +2019,7 @@ type BakerPoolInfo struct { func (x *BakerPoolInfo) Reset() { *x = BakerPoolInfo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[25] + mi := &file_v2_concordium_types_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2029,7 +2032,7 @@ func (x *BakerPoolInfo) String() string { func (*BakerPoolInfo) ProtoMessage() {} func (x *BakerPoolInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[25] + mi := &file_v2_concordium_types_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2042,7 +2045,7 @@ func (x *BakerPoolInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use BakerPoolInfo.ProtoReflect.Descriptor instead. func (*BakerPoolInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{25} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{25} } func (x *BakerPoolInfo) GetOpenStatus() OpenStatus { @@ -2074,6 +2077,7 @@ type AccountStakingInfo struct { unknownFields protoimpl.UnknownFields // Types that are assignable to StakingInfo: + // // *AccountStakingInfo_Baker_ // *AccountStakingInfo_Delegator_ StakingInfo isAccountStakingInfo_StakingInfo `protobuf_oneof:"staking_info"` @@ -2082,7 +2086,7 @@ type AccountStakingInfo struct { func (x *AccountStakingInfo) Reset() { *x = AccountStakingInfo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[26] + mi := &file_v2_concordium_types_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2095,7 +2099,7 @@ func (x *AccountStakingInfo) String() string { func (*AccountStakingInfo) ProtoMessage() {} func (x *AccountStakingInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[26] + mi := &file_v2_concordium_types_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2108,7 +2112,7 @@ func (x *AccountStakingInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountStakingInfo.ProtoReflect.Descriptor instead. func (*AccountStakingInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{26} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{26} } func (m *AccountStakingInfo) GetStakingInfo() isAccountStakingInfo_StakingInfo { @@ -2164,7 +2168,7 @@ type SequenceNumber struct { func (x *SequenceNumber) Reset() { *x = SequenceNumber{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[27] + mi := &file_v2_concordium_types_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2177,7 +2181,7 @@ func (x *SequenceNumber) String() string { func (*SequenceNumber) ProtoMessage() {} func (x *SequenceNumber) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[27] + mi := &file_v2_concordium_types_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2190,7 +2194,7 @@ func (x *SequenceNumber) ProtoReflect() protoreflect.Message { // Deprecated: Use SequenceNumber.ProtoReflect.Descriptor instead. func (*SequenceNumber) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{27} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{27} } func (x *SequenceNumber) GetValue() uint64 { @@ -2215,7 +2219,7 @@ type UpdateSequenceNumber struct { func (x *UpdateSequenceNumber) Reset() { *x = UpdateSequenceNumber{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[28] + mi := &file_v2_concordium_types_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2228,7 +2232,7 @@ func (x *UpdateSequenceNumber) String() string { func (*UpdateSequenceNumber) ProtoMessage() {} func (x *UpdateSequenceNumber) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[28] + mi := &file_v2_concordium_types_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2241,7 +2245,7 @@ func (x *UpdateSequenceNumber) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateSequenceNumber.ProtoReflect.Descriptor instead. func (*UpdateSequenceNumber) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{28} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{28} } func (x *UpdateSequenceNumber) GetValue() uint64 { @@ -2263,7 +2267,7 @@ type Amount struct { func (x *Amount) Reset() { *x = Amount{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[29] + mi := &file_v2_concordium_types_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2276,7 +2280,7 @@ func (x *Amount) String() string { func (*Amount) ProtoMessage() {} func (x *Amount) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[29] + mi := &file_v2_concordium_types_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2289,7 +2293,7 @@ func (x *Amount) ProtoReflect() protoreflect.Message { // Deprecated: Use Amount.ProtoReflect.Descriptor instead. func (*Amount) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{29} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{29} } func (x *Amount) GetValue() uint64 { @@ -2311,7 +2315,7 @@ type CredentialIndex struct { func (x *CredentialIndex) Reset() { *x = CredentialIndex{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[30] + mi := &file_v2_concordium_types_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2324,7 +2328,7 @@ func (x *CredentialIndex) String() string { func (*CredentialIndex) ProtoMessage() {} func (x *CredentialIndex) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[30] + mi := &file_v2_concordium_types_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2337,7 +2341,7 @@ func (x *CredentialIndex) ProtoReflect() protoreflect.Message { // Deprecated: Use CredentialIndex.ProtoReflect.Descriptor instead. func (*CredentialIndex) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{30} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{30} } func (x *CredentialIndex) GetValue() uint32 { @@ -2359,7 +2363,7 @@ type SignatureThreshold struct { func (x *SignatureThreshold) Reset() { *x = SignatureThreshold{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[31] + mi := &file_v2_concordium_types_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2372,7 +2376,7 @@ func (x *SignatureThreshold) String() string { func (*SignatureThreshold) ProtoMessage() {} func (x *SignatureThreshold) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[31] + mi := &file_v2_concordium_types_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2385,7 +2389,7 @@ func (x *SignatureThreshold) ProtoReflect() protoreflect.Message { // Deprecated: Use SignatureThreshold.ProtoReflect.Descriptor instead. func (*SignatureThreshold) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{31} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{31} } func (x *SignatureThreshold) GetValue() uint32 { @@ -2407,7 +2411,7 @@ type AccountThreshold struct { func (x *AccountThreshold) Reset() { *x = AccountThreshold{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[32] + mi := &file_v2_concordium_types_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2420,7 +2424,7 @@ func (x *AccountThreshold) String() string { func (*AccountThreshold) ProtoMessage() {} func (x *AccountThreshold) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[32] + mi := &file_v2_concordium_types_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2433,7 +2437,7 @@ func (x *AccountThreshold) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountThreshold.ProtoReflect.Descriptor instead. func (*AccountThreshold) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{32} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{32} } func (x *AccountThreshold) GetValue() uint32 { @@ -2455,7 +2459,7 @@ type EncryptionKey struct { func (x *EncryptionKey) Reset() { *x = EncryptionKey{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[33] + mi := &file_v2_concordium_types_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2468,7 +2472,7 @@ func (x *EncryptionKey) String() string { func (*EncryptionKey) ProtoMessage() {} func (x *EncryptionKey) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[33] + mi := &file_v2_concordium_types_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2481,7 +2485,7 @@ func (x *EncryptionKey) ProtoReflect() protoreflect.Message { // Deprecated: Use EncryptionKey.ProtoReflect.Descriptor instead. func (*EncryptionKey) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{33} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{33} } func (x *EncryptionKey) GetValue() []byte { @@ -2503,7 +2507,7 @@ type AccountAddress struct { func (x *AccountAddress) Reset() { *x = AccountAddress{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[34] + mi := &file_v2_concordium_types_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2516,7 +2520,7 @@ func (x *AccountAddress) String() string { func (*AccountAddress) ProtoMessage() {} func (x *AccountAddress) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[34] + mi := &file_v2_concordium_types_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2529,7 +2533,7 @@ func (x *AccountAddress) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountAddress.ProtoReflect.Descriptor instead. func (*AccountAddress) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{34} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{34} } func (x *AccountAddress) GetValue() []byte { @@ -2546,6 +2550,7 @@ type Address struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Type: + // // *Address_Account // *Address_Contract Type isAddress_Type `protobuf_oneof:"type"` @@ -2554,7 +2559,7 @@ type Address struct { func (x *Address) Reset() { *x = Address{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[35] + mi := &file_v2_concordium_types_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2567,7 +2572,7 @@ func (x *Address) String() string { func (*Address) ProtoMessage() {} func (x *Address) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[35] + mi := &file_v2_concordium_types_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2580,7 +2585,7 @@ func (x *Address) ProtoReflect() protoreflect.Message { // Deprecated: Use Address.ProtoReflect.Descriptor instead. func (*Address) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{35} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{35} } func (m *Address) GetType() isAddress_Type { @@ -2627,6 +2632,7 @@ type AccountVerifyKey struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Key: + // // *AccountVerifyKey_Ed25519Key Key isAccountVerifyKey_Key `protobuf_oneof:"key"` } @@ -2634,7 +2640,7 @@ type AccountVerifyKey struct { func (x *AccountVerifyKey) Reset() { *x = AccountVerifyKey{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[36] + mi := &file_v2_concordium_types_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2647,7 +2653,7 @@ func (x *AccountVerifyKey) String() string { func (*AccountVerifyKey) ProtoMessage() {} func (x *AccountVerifyKey) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[36] + mi := &file_v2_concordium_types_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2660,7 +2666,7 @@ func (x *AccountVerifyKey) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountVerifyKey.ProtoReflect.Descriptor instead. func (*AccountVerifyKey) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{36} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{36} } func (m *AccountVerifyKey) GetKey() isAccountVerifyKey_Key { @@ -2700,7 +2706,7 @@ type CredentialPublicKeys struct { func (x *CredentialPublicKeys) Reset() { *x = CredentialPublicKeys{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[37] + mi := &file_v2_concordium_types_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2713,7 +2719,7 @@ func (x *CredentialPublicKeys) String() string { func (*CredentialPublicKeys) ProtoMessage() {} func (x *CredentialPublicKeys) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[37] + mi := &file_v2_concordium_types_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2726,7 +2732,7 @@ func (x *CredentialPublicKeys) ProtoReflect() protoreflect.Message { // Deprecated: Use CredentialPublicKeys.ProtoReflect.Descriptor instead. func (*CredentialPublicKeys) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{37} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{37} } func (x *CredentialPublicKeys) GetKeys() map[uint32]*AccountVerifyKey { @@ -2756,7 +2762,7 @@ type CredentialRegistrationId struct { func (x *CredentialRegistrationId) Reset() { *x = CredentialRegistrationId{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[38] + mi := &file_v2_concordium_types_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2769,7 +2775,7 @@ func (x *CredentialRegistrationId) String() string { func (*CredentialRegistrationId) ProtoMessage() {} func (x *CredentialRegistrationId) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[38] + mi := &file_v2_concordium_types_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2782,7 +2788,7 @@ func (x *CredentialRegistrationId) ProtoReflect() protoreflect.Message { // Deprecated: Use CredentialRegistrationId.ProtoReflect.Descriptor instead. func (*CredentialRegistrationId) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{38} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{38} } func (x *CredentialRegistrationId) GetValue() []byte { @@ -2805,7 +2811,7 @@ type IdentityProviderIdentity struct { func (x *IdentityProviderIdentity) Reset() { *x = IdentityProviderIdentity{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[39] + mi := &file_v2_concordium_types_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2818,7 +2824,7 @@ func (x *IdentityProviderIdentity) String() string { func (*IdentityProviderIdentity) ProtoMessage() {} func (x *IdentityProviderIdentity) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[39] + mi := &file_v2_concordium_types_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2831,7 +2837,7 @@ func (x *IdentityProviderIdentity) ProtoReflect() protoreflect.Message { // Deprecated: Use IdentityProviderIdentity.ProtoReflect.Descriptor instead. func (*IdentityProviderIdentity) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{39} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{39} } func (x *IdentityProviderIdentity) GetValue() uint32 { @@ -2854,7 +2860,7 @@ type YearMonth struct { func (x *YearMonth) Reset() { *x = YearMonth{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[40] + mi := &file_v2_concordium_types_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2867,7 +2873,7 @@ func (x *YearMonth) String() string { func (*YearMonth) ProtoMessage() {} func (x *YearMonth) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[40] + mi := &file_v2_concordium_types_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2880,7 +2886,7 @@ func (x *YearMonth) ProtoReflect() protoreflect.Message { // Deprecated: Use YearMonth.ProtoReflect.Descriptor instead. func (*YearMonth) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{40} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{40} } func (x *YearMonth) GetYear() uint32 { @@ -2918,7 +2924,7 @@ type Policy struct { func (x *Policy) Reset() { *x = Policy{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[41] + mi := &file_v2_concordium_types_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2931,7 +2937,7 @@ func (x *Policy) String() string { func (*Policy) ProtoMessage() {} func (x *Policy) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[41] + mi := &file_v2_concordium_types_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2944,7 +2950,7 @@ func (x *Policy) ProtoReflect() protoreflect.Message { // Deprecated: Use Policy.ProtoReflect.Descriptor instead. func (*Policy) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{41} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{41} } func (x *Policy) GetCreatedAt() *YearMonth { @@ -2988,7 +2994,7 @@ type InitialCredentialValues struct { func (x *InitialCredentialValues) Reset() { *x = InitialCredentialValues{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[42] + mi := &file_v2_concordium_types_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3001,7 +3007,7 @@ func (x *InitialCredentialValues) String() string { func (*InitialCredentialValues) ProtoMessage() {} func (x *InitialCredentialValues) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[42] + mi := &file_v2_concordium_types_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3014,7 +3020,7 @@ func (x *InitialCredentialValues) ProtoReflect() protoreflect.Message { // Deprecated: Use InitialCredentialValues.ProtoReflect.Descriptor instead. func (*InitialCredentialValues) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{42} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{42} } func (x *InitialCredentialValues) GetKeys() *CredentialPublicKeys { @@ -3059,7 +3065,7 @@ type ChainArData struct { func (x *ChainArData) Reset() { *x = ChainArData{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[43] + mi := &file_v2_concordium_types_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3072,7 +3078,7 @@ func (x *ChainArData) String() string { func (*ChainArData) ProtoMessage() {} func (x *ChainArData) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[43] + mi := &file_v2_concordium_types_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3085,7 +3091,7 @@ func (x *ChainArData) ProtoReflect() protoreflect.Message { // Deprecated: Use ChainArData.ProtoReflect.Descriptor instead. func (*ChainArData) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{43} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{43} } func (x *ChainArData) GetEncIdCredPubShare() []byte { @@ -3108,7 +3114,7 @@ type ArThreshold struct { func (x *ArThreshold) Reset() { *x = ArThreshold{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[44] + mi := &file_v2_concordium_types_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3121,7 +3127,7 @@ func (x *ArThreshold) String() string { func (*ArThreshold) ProtoMessage() {} func (x *ArThreshold) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[44] + mi := &file_v2_concordium_types_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3134,7 +3140,7 @@ func (x *ArThreshold) ProtoReflect() protoreflect.Message { // Deprecated: Use ArThreshold.ProtoReflect.Descriptor instead. func (*ArThreshold) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{44} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{44} } func (x *ArThreshold) GetValue() uint32 { @@ -3157,7 +3163,7 @@ type Commitment struct { func (x *Commitment) Reset() { *x = Commitment{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[45] + mi := &file_v2_concordium_types_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3170,7 +3176,7 @@ func (x *Commitment) String() string { func (*Commitment) ProtoMessage() {} func (x *Commitment) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[45] + mi := &file_v2_concordium_types_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3183,7 +3189,7 @@ func (x *Commitment) ProtoReflect() protoreflect.Message { // Deprecated: Use Commitment.ProtoReflect.Descriptor instead. func (*Commitment) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{45} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{45} } func (x *Commitment) GetValue() []byte { @@ -3217,7 +3223,7 @@ type CredentialCommitments struct { func (x *CredentialCommitments) Reset() { *x = CredentialCommitments{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[46] + mi := &file_v2_concordium_types_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3230,7 +3236,7 @@ func (x *CredentialCommitments) String() string { func (*CredentialCommitments) ProtoMessage() {} func (x *CredentialCommitments) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[46] + mi := &file_v2_concordium_types_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3243,7 +3249,7 @@ func (x *CredentialCommitments) ProtoReflect() protoreflect.Message { // Deprecated: Use CredentialCommitments.ProtoReflect.Descriptor instead. func (*CredentialCommitments) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{46} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{46} } func (x *CredentialCommitments) GetPrf() *Commitment { @@ -3308,7 +3314,7 @@ type NormalCredentialValues struct { func (x *NormalCredentialValues) Reset() { *x = NormalCredentialValues{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[47] + mi := &file_v2_concordium_types_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3321,7 +3327,7 @@ func (x *NormalCredentialValues) String() string { func (*NormalCredentialValues) ProtoMessage() {} func (x *NormalCredentialValues) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[47] + mi := &file_v2_concordium_types_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3334,7 +3340,7 @@ func (x *NormalCredentialValues) ProtoReflect() protoreflect.Message { // Deprecated: Use NormalCredentialValues.ProtoReflect.Descriptor instead. func (*NormalCredentialValues) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{47} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{47} } func (x *NormalCredentialValues) GetKeys() *CredentialPublicKeys { @@ -3393,6 +3399,7 @@ type AccountCredential struct { unknownFields protoimpl.UnknownFields // Types that are assignable to CredentialValues: + // // *AccountCredential_Initial // *AccountCredential_Normal CredentialValues isAccountCredential_CredentialValues `protobuf_oneof:"credential_values"` @@ -3401,7 +3408,7 @@ type AccountCredential struct { func (x *AccountCredential) Reset() { *x = AccountCredential{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[48] + mi := &file_v2_concordium_types_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3414,7 +3421,7 @@ func (x *AccountCredential) String() string { func (*AccountCredential) ProtoMessage() {} func (x *AccountCredential) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[48] + mi := &file_v2_concordium_types_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3427,7 +3434,7 @@ func (x *AccountCredential) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountCredential.ProtoReflect.Descriptor instead. func (*AccountCredential) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{48} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{48} } func (m *AccountCredential) GetCredentialValues() isAccountCredential_CredentialValues { @@ -3509,7 +3516,7 @@ type AccountInfo struct { func (x *AccountInfo) Reset() { *x = AccountInfo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[49] + mi := &file_v2_concordium_types_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3522,7 +3529,7 @@ func (x *AccountInfo) String() string { func (*AccountInfo) ProtoMessage() {} func (x *AccountInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[49] + mi := &file_v2_concordium_types_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3535,7 +3542,7 @@ func (x *AccountInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountInfo.ProtoReflect.Descriptor instead. func (*AccountInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{49} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{49} } func (x *AccountInfo) GetSequenceNumber() *SequenceNumber { @@ -3615,6 +3622,7 @@ type BlockHashInput struct { unknownFields protoimpl.UnknownFields // Types that are assignable to BlockHashInput: + // // *BlockHashInput_Best // *BlockHashInput_LastFinal // *BlockHashInput_Given @@ -3626,7 +3634,7 @@ type BlockHashInput struct { func (x *BlockHashInput) Reset() { *x = BlockHashInput{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[50] + mi := &file_v2_concordium_types_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3639,7 +3647,7 @@ func (x *BlockHashInput) String() string { func (*BlockHashInput) ProtoMessage() {} func (x *BlockHashInput) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[50] + mi := &file_v2_concordium_types_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3652,7 +3660,7 @@ func (x *BlockHashInput) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockHashInput.ProtoReflect.Descriptor instead. func (*BlockHashInput) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{50} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{50} } func (m *BlockHashInput) GetBlockHashInput() isBlockHashInput_BlockHashInput { @@ -3736,6 +3744,90 @@ func (*BlockHashInput_AbsoluteHeight) isBlockHashInput_BlockHashInput() {} func (*BlockHashInput_RelativeHeight_) isBlockHashInput_BlockHashInput() {} +// Input to queries which take an epoch as a parameter. +type EpochRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to EpochRequestInput: + // + // *EpochRequest_RelativeEpoch_ + // *EpochRequest_BlockHash + EpochRequestInput isEpochRequest_EpochRequestInput `protobuf_oneof:"epoch_request_input"` +} + +func (x *EpochRequest) Reset() { + *x = EpochRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EpochRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EpochRequest) ProtoMessage() {} + +func (x *EpochRequest) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[51] + 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 EpochRequest.ProtoReflect.Descriptor instead. +func (*EpochRequest) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{51} +} + +func (m *EpochRequest) GetEpochRequestInput() isEpochRequest_EpochRequestInput { + if m != nil { + return m.EpochRequestInput + } + return nil +} + +func (x *EpochRequest) GetRelativeEpoch() *EpochRequest_RelativeEpoch { + if x, ok := x.GetEpochRequestInput().(*EpochRequest_RelativeEpoch_); ok { + return x.RelativeEpoch + } + return nil +} + +func (x *EpochRequest) GetBlockHash() *BlockHashInput { + if x, ok := x.GetEpochRequestInput().(*EpochRequest_BlockHash); ok { + return x.BlockHash + } + return nil +} + +type isEpochRequest_EpochRequestInput interface { + isEpochRequest_EpochRequestInput() +} + +type EpochRequest_RelativeEpoch_ struct { + // Query by genesis index and epoch number. + RelativeEpoch *EpochRequest_RelativeEpoch `protobuf:"bytes,1,opt,name=relative_epoch,json=relativeEpoch,proto3,oneof"` +} + +type EpochRequest_BlockHash struct { + // Query for the epoch of a specified block. + BlockHash *BlockHashInput `protobuf:"bytes,2,opt,name=block_hash,json=blockHash,proto3,oneof"` +} + +func (*EpochRequest_RelativeEpoch_) isEpochRequest_EpochRequestInput() {} + +func (*EpochRequest_BlockHash) isEpochRequest_EpochRequestInput() {} + // Input to queries which take an account as a parameter. type AccountIdentifierInput struct { state protoimpl.MessageState @@ -3743,6 +3835,7 @@ type AccountIdentifierInput struct { unknownFields protoimpl.UnknownFields // Types that are assignable to AccountIdentifierInput: + // // *AccountIdentifierInput_Address // *AccountIdentifierInput_CredId // *AccountIdentifierInput_AccountIndex @@ -3752,7 +3845,7 @@ type AccountIdentifierInput struct { func (x *AccountIdentifierInput) Reset() { *x = AccountIdentifierInput{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[51] + mi := &file_v2_concordium_types_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3765,7 +3858,7 @@ func (x *AccountIdentifierInput) String() string { func (*AccountIdentifierInput) ProtoMessage() {} func (x *AccountIdentifierInput) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[51] + mi := &file_v2_concordium_types_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3778,7 +3871,7 @@ func (x *AccountIdentifierInput) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountIdentifierInput.ProtoReflect.Descriptor instead. func (*AccountIdentifierInput) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{51} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{52} } func (m *AccountIdentifierInput) GetAccountIdentifierInput() isAccountIdentifierInput_AccountIdentifierInput { @@ -3849,7 +3942,7 @@ type AccountInfoRequest struct { func (x *AccountInfoRequest) Reset() { *x = AccountInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[52] + mi := &file_v2_concordium_types_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3862,7 +3955,7 @@ func (x *AccountInfoRequest) String() string { func (*AccountInfoRequest) ProtoMessage() {} func (x *AccountInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[52] + mi := &file_v2_concordium_types_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3875,7 +3968,7 @@ func (x *AccountInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountInfoRequest.ProtoReflect.Descriptor instead. func (*AccountInfoRequest) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{52} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{53} } func (x *AccountInfoRequest) GetBlockHash() *BlockHashInput { @@ -3907,7 +4000,7 @@ type FinalizedBlockInfo struct { func (x *FinalizedBlockInfo) Reset() { *x = FinalizedBlockInfo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[53] + mi := &file_v2_concordium_types_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3920,7 +4013,7 @@ func (x *FinalizedBlockInfo) String() string { func (*FinalizedBlockInfo) ProtoMessage() {} func (x *FinalizedBlockInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[53] + mi := &file_v2_concordium_types_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3933,7 +4026,7 @@ func (x *FinalizedBlockInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use FinalizedBlockInfo.ProtoReflect.Descriptor instead. func (*FinalizedBlockInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{53} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{54} } func (x *FinalizedBlockInfo) GetHash() *BlockHash { @@ -3965,7 +4058,7 @@ type AncestorsRequest struct { func (x *AncestorsRequest) Reset() { *x = AncestorsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[54] + mi := &file_v2_concordium_types_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3978,7 +4071,7 @@ func (x *AncestorsRequest) String() string { func (*AncestorsRequest) ProtoMessage() {} func (x *AncestorsRequest) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[54] + mi := &file_v2_concordium_types_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3991,7 +4084,7 @@ func (x *AncestorsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AncestorsRequest.ProtoReflect.Descriptor instead. func (*AncestorsRequest) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{54} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{55} } func (x *AncestorsRequest) GetBlockHash() *BlockHashInput { @@ -4023,7 +4116,7 @@ type ModuleSourceRequest struct { func (x *ModuleSourceRequest) Reset() { *x = ModuleSourceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[55] + mi := &file_v2_concordium_types_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4036,7 +4129,7 @@ func (x *ModuleSourceRequest) String() string { func (*ModuleSourceRequest) ProtoMessage() {} func (x *ModuleSourceRequest) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[55] + mi := &file_v2_concordium_types_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4049,7 +4142,7 @@ func (x *ModuleSourceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ModuleSourceRequest.ProtoReflect.Descriptor instead. func (*ModuleSourceRequest) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{55} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{56} } func (x *ModuleSourceRequest) GetBlockHash() *BlockHashInput { @@ -4082,7 +4175,7 @@ type ContractAddress struct { func (x *ContractAddress) Reset() { *x = ContractAddress{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[56] + mi := &file_v2_concordium_types_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4095,7 +4188,7 @@ func (x *ContractAddress) String() string { func (*ContractAddress) ProtoMessage() {} func (x *ContractAddress) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[56] + mi := &file_v2_concordium_types_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4108,7 +4201,7 @@ func (x *ContractAddress) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractAddress.ProtoReflect.Descriptor instead. func (*ContractAddress) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{56} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{57} } func (x *ContractAddress) GetIndex() uint64 { @@ -4140,7 +4233,7 @@ type InstanceInfoRequest struct { func (x *InstanceInfoRequest) Reset() { *x = InstanceInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[57] + mi := &file_v2_concordium_types_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4153,7 +4246,7 @@ func (x *InstanceInfoRequest) String() string { func (*InstanceInfoRequest) ProtoMessage() {} func (x *InstanceInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[57] + mi := &file_v2_concordium_types_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4166,7 +4259,7 @@ func (x *InstanceInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use InstanceInfoRequest.ProtoReflect.Descriptor instead. func (*InstanceInfoRequest) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{57} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{58} } func (x *InstanceInfoRequest) GetBlockHash() *BlockHashInput { @@ -4192,6 +4285,7 @@ type InstanceInfo struct { // The information depends on the smart contract version used by the instance. // // Types that are assignable to Version: + // // *InstanceInfo_V0_ // *InstanceInfo_V1_ Version isInstanceInfo_Version `protobuf_oneof:"version"` @@ -4200,7 +4294,7 @@ type InstanceInfo struct { func (x *InstanceInfo) Reset() { *x = InstanceInfo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[58] + mi := &file_v2_concordium_types_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4213,7 +4307,7 @@ func (x *InstanceInfo) String() string { func (*InstanceInfo) ProtoMessage() {} func (x *InstanceInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[58] + mi := &file_v2_concordium_types_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4226,7 +4320,7 @@ func (x *InstanceInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use InstanceInfo.ProtoReflect.Descriptor instead. func (*InstanceInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{58} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{59} } func (m *InstanceInfo) GetVersion() isInstanceInfo_Version { @@ -4279,7 +4373,7 @@ type InstanceStateKVPair struct { func (x *InstanceStateKVPair) Reset() { *x = InstanceStateKVPair{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[59] + mi := &file_v2_concordium_types_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4292,7 +4386,7 @@ func (x *InstanceStateKVPair) String() string { func (*InstanceStateKVPair) ProtoMessage() {} func (x *InstanceStateKVPair) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[59] + mi := &file_v2_concordium_types_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4305,7 +4399,7 @@ func (x *InstanceStateKVPair) ProtoReflect() protoreflect.Message { // Deprecated: Use InstanceStateKVPair.ProtoReflect.Descriptor instead. func (*InstanceStateKVPair) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{59} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{60} } func (x *InstanceStateKVPair) GetKey() []byte { @@ -4339,7 +4433,7 @@ type InstanceStateLookupRequest struct { func (x *InstanceStateLookupRequest) Reset() { *x = InstanceStateLookupRequest{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[60] + mi := &file_v2_concordium_types_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4352,7 +4446,7 @@ func (x *InstanceStateLookupRequest) String() string { func (*InstanceStateLookupRequest) ProtoMessage() {} func (x *InstanceStateLookupRequest) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[60] + mi := &file_v2_concordium_types_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4365,7 +4459,7 @@ func (x *InstanceStateLookupRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use InstanceStateLookupRequest.ProtoReflect.Descriptor instead. func (*InstanceStateLookupRequest) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{60} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{61} } func (x *InstanceStateLookupRequest) GetBlockHash() *BlockHashInput { @@ -4402,7 +4496,7 @@ type InstanceStateValueAtKey struct { func (x *InstanceStateValueAtKey) Reset() { *x = InstanceStateValueAtKey{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[61] + mi := &file_v2_concordium_types_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4415,7 +4509,7 @@ func (x *InstanceStateValueAtKey) String() string { func (*InstanceStateValueAtKey) ProtoMessage() {} func (x *InstanceStateValueAtKey) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[61] + mi := &file_v2_concordium_types_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4428,7 +4522,7 @@ func (x *InstanceStateValueAtKey) ProtoReflect() protoreflect.Message { // Deprecated: Use InstanceStateValueAtKey.ProtoReflect.Descriptor instead. func (*InstanceStateValueAtKey) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{61} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{62} } func (x *InstanceStateValueAtKey) GetValue() []byte { @@ -4452,7 +4546,7 @@ type ReceiveName struct { func (x *ReceiveName) Reset() { *x = ReceiveName{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[62] + mi := &file_v2_concordium_types_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4465,7 +4559,7 @@ func (x *ReceiveName) String() string { func (*ReceiveName) ProtoMessage() {} func (x *ReceiveName) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[62] + mi := &file_v2_concordium_types_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4478,7 +4572,7 @@ func (x *ReceiveName) ProtoReflect() protoreflect.Message { // Deprecated: Use ReceiveName.ProtoReflect.Descriptor instead. func (*ReceiveName) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{62} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{63} } func (x *ReceiveName) GetValue() string { @@ -4503,7 +4597,7 @@ type InitName struct { func (x *InitName) Reset() { *x = InitName{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[63] + mi := &file_v2_concordium_types_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4516,7 +4610,7 @@ func (x *InitName) String() string { func (*InitName) ProtoMessage() {} func (x *InitName) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[63] + mi := &file_v2_concordium_types_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4529,7 +4623,7 @@ func (x *InitName) ProtoReflect() protoreflect.Message { // Deprecated: Use InitName.ProtoReflect.Descriptor instead. func (*InitName) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{63} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{64} } func (x *InitName) GetValue() string { @@ -4551,7 +4645,7 @@ type Parameter struct { func (x *Parameter) Reset() { *x = Parameter{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[64] + mi := &file_v2_concordium_types_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4564,7 +4658,7 @@ func (x *Parameter) String() string { func (*Parameter) ProtoMessage() {} func (x *Parameter) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[64] + mi := &file_v2_concordium_types_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4577,7 +4671,7 @@ func (x *Parameter) ProtoReflect() protoreflect.Message { // Deprecated: Use Parameter.ProtoReflect.Descriptor instead. func (*Parameter) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{64} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{65} } func (x *Parameter) GetValue() []byte { @@ -4599,7 +4693,7 @@ type ContractStateV0 struct { func (x *ContractStateV0) Reset() { *x = ContractStateV0{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[65] + mi := &file_v2_concordium_types_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4612,7 +4706,7 @@ func (x *ContractStateV0) String() string { func (*ContractStateV0) ProtoMessage() {} func (x *ContractStateV0) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[65] + mi := &file_v2_concordium_types_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4625,7 +4719,7 @@ func (x *ContractStateV0) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractStateV0.ProtoReflect.Descriptor instead. func (*ContractStateV0) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{65} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{66} } func (x *ContractStateV0) GetValue() []byte { @@ -4642,6 +4736,7 @@ type BlockItemStatus struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Status: + // // *BlockItemStatus_Received // *BlockItemStatus_Committed_ // *BlockItemStatus_Finalized_ @@ -4651,7 +4746,7 @@ type BlockItemStatus struct { func (x *BlockItemStatus) Reset() { *x = BlockItemStatus{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[66] + mi := &file_v2_concordium_types_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4664,7 +4759,7 @@ func (x *BlockItemStatus) String() string { func (*BlockItemStatus) ProtoMessage() {} func (x *BlockItemStatus) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[66] + mi := &file_v2_concordium_types_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4677,7 +4772,7 @@ func (x *BlockItemStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockItemStatus.ProtoReflect.Descriptor instead. func (*BlockItemStatus) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{66} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{67} } func (m *BlockItemStatus) GetStatus() isBlockItemStatus_Status { @@ -4751,7 +4846,7 @@ type BlockItemSummaryInBlock struct { func (x *BlockItemSummaryInBlock) Reset() { *x = BlockItemSummaryInBlock{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[67] + mi := &file_v2_concordium_types_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4764,7 +4859,7 @@ func (x *BlockItemSummaryInBlock) String() string { func (*BlockItemSummaryInBlock) ProtoMessage() {} func (x *BlockItemSummaryInBlock) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[67] + mi := &file_v2_concordium_types_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4777,7 +4872,7 @@ func (x *BlockItemSummaryInBlock) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockItemSummaryInBlock.ProtoReflect.Descriptor instead. func (*BlockItemSummaryInBlock) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{67} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{68} } func (x *BlockItemSummaryInBlock) GetBlockHash() *BlockHash { @@ -4807,7 +4902,7 @@ type Energy struct { func (x *Energy) Reset() { *x = Energy{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[68] + mi := &file_v2_concordium_types_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4820,7 +4915,7 @@ func (x *Energy) String() string { func (*Energy) ProtoMessage() {} func (x *Energy) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[68] + mi := &file_v2_concordium_types_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4833,7 +4928,7 @@ func (x *Energy) ProtoReflect() protoreflect.Message { // Deprecated: Use Energy.ProtoReflect.Descriptor instead. func (*Energy) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{68} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{69} } func (x *Energy) GetValue() uint64 { @@ -4855,7 +4950,7 @@ type Slot struct { func (x *Slot) Reset() { *x = Slot{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[69] + mi := &file_v2_concordium_types_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4868,7 +4963,7 @@ func (x *Slot) String() string { func (*Slot) ProtoMessage() {} func (x *Slot) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[69] + mi := &file_v2_concordium_types_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4881,7 +4976,7 @@ func (x *Slot) ProtoReflect() protoreflect.Message { // Deprecated: Use Slot.ProtoReflect.Descriptor instead. func (*Slot) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{69} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{70} } func (x *Slot) GetValue() uint64 { @@ -4906,7 +5001,7 @@ type NextAccountSequenceNumber struct { func (x *NextAccountSequenceNumber) Reset() { *x = NextAccountSequenceNumber{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[70] + mi := &file_v2_concordium_types_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4919,7 +5014,7 @@ func (x *NextAccountSequenceNumber) String() string { func (*NextAccountSequenceNumber) ProtoMessage() {} func (x *NextAccountSequenceNumber) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[70] + mi := &file_v2_concordium_types_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4932,7 +5027,7 @@ func (x *NextAccountSequenceNumber) ProtoReflect() protoreflect.Message { // Deprecated: Use NextAccountSequenceNumber.ProtoReflect.Descriptor instead. func (*NextAccountSequenceNumber) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{70} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{71} } func (x *NextAccountSequenceNumber) GetSequenceNumber() *SequenceNumber { @@ -4961,7 +5056,7 @@ type Duration struct { func (x *Duration) Reset() { *x = Duration{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[71] + mi := &file_v2_concordium_types_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4974,7 +5069,7 @@ func (x *Duration) String() string { func (*Duration) ProtoMessage() {} func (x *Duration) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[71] + mi := &file_v2_concordium_types_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4987,7 +5082,7 @@ func (x *Duration) ProtoReflect() protoreflect.Message { // Deprecated: Use Duration.ProtoReflect.Descriptor instead. func (*Duration) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{71} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{72} } func (x *Duration) GetValue() uint64 { @@ -5006,6 +5101,7 @@ type RejectReason struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Reason: + // // *RejectReason_ModuleNotWf // *RejectReason_ModuleHashAlreadyExists // *RejectReason_InvalidAccountReference @@ -5066,7 +5162,7 @@ type RejectReason struct { func (x *RejectReason) Reset() { *x = RejectReason{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[72] + mi := &file_v2_concordium_types_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5079,7 +5175,7 @@ func (x *RejectReason) String() string { func (*RejectReason) ProtoMessage() {} func (x *RejectReason) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[72] + mi := &file_v2_concordium_types_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5092,7 +5188,7 @@ func (x *RejectReason) ProtoReflect() protoreflect.Message { // Deprecated: Use RejectReason.ProtoReflect.Descriptor instead. func (*RejectReason) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{72} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{73} } func (m *RejectReason) GetReason() isRejectReason_Reason { @@ -5904,7 +6000,7 @@ type ContractInitializedEvent struct { func (x *ContractInitializedEvent) Reset() { *x = ContractInitializedEvent{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[73] + mi := &file_v2_concordium_types_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5917,7 +6013,7 @@ func (x *ContractInitializedEvent) String() string { func (*ContractInitializedEvent) ProtoMessage() {} func (x *ContractInitializedEvent) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[73] + mi := &file_v2_concordium_types_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5930,7 +6026,7 @@ func (x *ContractInitializedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractInitializedEvent.ProtoReflect.Descriptor instead. func (*ContractInitializedEvent) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{73} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{74} } func (x *ContractInitializedEvent) GetContractVersion() ContractVersion { @@ -5987,7 +6083,7 @@ type ContractEvent struct { func (x *ContractEvent) Reset() { *x = ContractEvent{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[74] + mi := &file_v2_concordium_types_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6000,7 +6096,7 @@ func (x *ContractEvent) String() string { func (*ContractEvent) ProtoMessage() {} func (x *ContractEvent) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[74] + mi := &file_v2_concordium_types_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6013,7 +6109,7 @@ func (x *ContractEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractEvent.ProtoReflect.Descriptor instead. func (*ContractEvent) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{74} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{75} } func (x *ContractEvent) GetValue() []byte { @@ -6051,7 +6147,7 @@ type InstanceUpdatedEvent struct { func (x *InstanceUpdatedEvent) Reset() { *x = InstanceUpdatedEvent{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[75] + mi := &file_v2_concordium_types_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6064,7 +6160,7 @@ func (x *InstanceUpdatedEvent) String() string { func (*InstanceUpdatedEvent) ProtoMessage() {} func (x *InstanceUpdatedEvent) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[75] + mi := &file_v2_concordium_types_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6077,7 +6173,7 @@ func (x *InstanceUpdatedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use InstanceUpdatedEvent.ProtoReflect.Descriptor instead. func (*InstanceUpdatedEvent) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{75} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{76} } func (x *InstanceUpdatedEvent) GetContractVersion() ContractVersion { @@ -6137,6 +6233,7 @@ type ContractTraceElement struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Element: + // // *ContractTraceElement_Updated // *ContractTraceElement_Transferred_ // *ContractTraceElement_Interrupted_ @@ -6148,7 +6245,7 @@ type ContractTraceElement struct { func (x *ContractTraceElement) Reset() { *x = ContractTraceElement{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[76] + mi := &file_v2_concordium_types_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6161,7 +6258,7 @@ func (x *ContractTraceElement) String() string { func (*ContractTraceElement) ProtoMessage() {} func (x *ContractTraceElement) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[76] + mi := &file_v2_concordium_types_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6174,7 +6271,7 @@ func (x *ContractTraceElement) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractTraceElement.ProtoReflect.Descriptor instead. func (*ContractTraceElement) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{76} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{77} } func (m *ContractTraceElement) GetElement() isContractTraceElement_Element { @@ -6281,7 +6378,7 @@ type BakerKeysEvent struct { func (x *BakerKeysEvent) Reset() { *x = BakerKeysEvent{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[77] + mi := &file_v2_concordium_types_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6294,7 +6391,7 @@ func (x *BakerKeysEvent) String() string { func (*BakerKeysEvent) ProtoMessage() {} func (x *BakerKeysEvent) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[77] + mi := &file_v2_concordium_types_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6307,7 +6404,7 @@ func (x *BakerKeysEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use BakerKeysEvent.ProtoReflect.Descriptor instead. func (*BakerKeysEvent) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{77} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{78} } func (x *BakerKeysEvent) GetBakerId() *BakerId { @@ -6357,7 +6454,7 @@ type Memo struct { func (x *Memo) Reset() { *x = Memo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[78] + mi := &file_v2_concordium_types_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6370,7 +6467,7 @@ func (x *Memo) String() string { func (*Memo) ProtoMessage() {} func (x *Memo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[78] + mi := &file_v2_concordium_types_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6383,7 +6480,7 @@ func (x *Memo) ProtoReflect() protoreflect.Message { // Deprecated: Use Memo.ProtoReflect.Descriptor instead. func (*Memo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{78} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{79} } func (x *Memo) GetValue() []byte { @@ -6410,7 +6507,7 @@ type BakerStakeUpdatedData struct { func (x *BakerStakeUpdatedData) Reset() { *x = BakerStakeUpdatedData{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[79] + mi := &file_v2_concordium_types_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6423,7 +6520,7 @@ func (x *BakerStakeUpdatedData) String() string { func (*BakerStakeUpdatedData) ProtoMessage() {} func (x *BakerStakeUpdatedData) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[79] + mi := &file_v2_concordium_types_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6436,7 +6533,7 @@ func (x *BakerStakeUpdatedData) ProtoReflect() protoreflect.Message { // Deprecated: Use BakerStakeUpdatedData.ProtoReflect.Descriptor instead. func (*BakerStakeUpdatedData) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{79} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{80} } func (x *BakerStakeUpdatedData) GetBakerId() *BakerId { @@ -6479,7 +6576,7 @@ type EncryptedAmountRemovedEvent struct { func (x *EncryptedAmountRemovedEvent) Reset() { *x = EncryptedAmountRemovedEvent{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[80] + mi := &file_v2_concordium_types_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6492,7 +6589,7 @@ func (x *EncryptedAmountRemovedEvent) String() string { func (*EncryptedAmountRemovedEvent) ProtoMessage() {} func (x *EncryptedAmountRemovedEvent) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[80] + mi := &file_v2_concordium_types_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6505,7 +6602,7 @@ func (x *EncryptedAmountRemovedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use EncryptedAmountRemovedEvent.ProtoReflect.Descriptor instead. func (*EncryptedAmountRemovedEvent) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{80} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{81} } func (x *EncryptedAmountRemovedEvent) GetAccount() *AccountAddress { @@ -6553,7 +6650,7 @@ type NewEncryptedAmountEvent struct { func (x *NewEncryptedAmountEvent) Reset() { *x = NewEncryptedAmountEvent{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[81] + mi := &file_v2_concordium_types_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6566,7 +6663,7 @@ func (x *NewEncryptedAmountEvent) String() string { func (*NewEncryptedAmountEvent) ProtoMessage() {} func (x *NewEncryptedAmountEvent) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[81] + mi := &file_v2_concordium_types_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6579,7 +6676,7 @@ func (x *NewEncryptedAmountEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use NewEncryptedAmountEvent.ProtoReflect.Descriptor instead. func (*NewEncryptedAmountEvent) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{81} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{82} } func (x *NewEncryptedAmountEvent) GetReceiver() *AccountAddress { @@ -6619,7 +6716,7 @@ type EncryptedSelfAmountAddedEvent struct { func (x *EncryptedSelfAmountAddedEvent) Reset() { *x = EncryptedSelfAmountAddedEvent{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[82] + mi := &file_v2_concordium_types_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6632,7 +6729,7 @@ func (x *EncryptedSelfAmountAddedEvent) String() string { func (*EncryptedSelfAmountAddedEvent) ProtoMessage() {} func (x *EncryptedSelfAmountAddedEvent) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[82] + mi := &file_v2_concordium_types_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6645,7 +6742,7 @@ func (x *EncryptedSelfAmountAddedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use EncryptedSelfAmountAddedEvent.ProtoReflect.Descriptor instead. func (*EncryptedSelfAmountAddedEvent) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{82} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{83} } func (x *EncryptedSelfAmountAddedEvent) GetAccount() *AccountAddress { @@ -6681,7 +6778,7 @@ type RegisteredData struct { func (x *RegisteredData) Reset() { *x = RegisteredData{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[83] + mi := &file_v2_concordium_types_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6694,7 +6791,7 @@ func (x *RegisteredData) String() string { func (*RegisteredData) ProtoMessage() {} func (x *RegisteredData) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[83] + mi := &file_v2_concordium_types_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6707,7 +6804,7 @@ func (x *RegisteredData) ProtoReflect() protoreflect.Message { // Deprecated: Use RegisteredData.ProtoReflect.Descriptor instead. func (*RegisteredData) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{83} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{84} } func (x *RegisteredData) GetValue() []byte { @@ -6724,6 +6821,7 @@ type BakerEvent struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Event: + // // *BakerEvent_BakerAdded_ // *BakerEvent_BakerRemoved // *BakerEvent_BakerStakeIncreased_ @@ -6741,7 +6839,7 @@ type BakerEvent struct { func (x *BakerEvent) Reset() { *x = BakerEvent{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[84] + mi := &file_v2_concordium_types_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6754,7 +6852,7 @@ func (x *BakerEvent) String() string { func (*BakerEvent) ProtoMessage() {} func (x *BakerEvent) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[84] + mi := &file_v2_concordium_types_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6767,7 +6865,7 @@ func (x *BakerEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use BakerEvent.ProtoReflect.Descriptor instead. func (*BakerEvent) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{84} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{85} } func (m *BakerEvent) GetEvent() isBakerEvent_Event { @@ -6947,7 +7045,7 @@ type DelegatorId struct { func (x *DelegatorId) Reset() { *x = DelegatorId{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[85] + mi := &file_v2_concordium_types_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6960,7 +7058,7 @@ func (x *DelegatorId) String() string { func (*DelegatorId) ProtoMessage() {} func (x *DelegatorId) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[85] + mi := &file_v2_concordium_types_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6973,7 +7071,7 @@ func (x *DelegatorId) ProtoReflect() protoreflect.Message { // Deprecated: Use DelegatorId.ProtoReflect.Descriptor instead. func (*DelegatorId) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{85} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{86} } func (x *DelegatorId) GetId() *AccountIndex { @@ -6989,6 +7087,7 @@ type DelegationEvent struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Event: + // // *DelegationEvent_DelegationStakeIncreased_ // *DelegationEvent_DelegationStakeDecreased_ // *DelegationEvent_DelegationSetRestakeEarnings_ @@ -7001,7 +7100,7 @@ type DelegationEvent struct { func (x *DelegationEvent) Reset() { *x = DelegationEvent{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[86] + mi := &file_v2_concordium_types_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7014,7 +7113,7 @@ func (x *DelegationEvent) String() string { func (*DelegationEvent) ProtoMessage() {} func (x *DelegationEvent) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[86] + mi := &file_v2_concordium_types_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7027,7 +7126,7 @@ func (x *DelegationEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use DelegationEvent.ProtoReflect.Descriptor instead. func (*DelegationEvent) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{86} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{87} } func (m *DelegationEvent) GetEvent() isDelegationEvent_Event { @@ -7133,6 +7232,7 @@ type AccountTransactionEffects struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Effect: + // // *AccountTransactionEffects_None_ // *AccountTransactionEffects_ModuleDeployed // *AccountTransactionEffects_ContractInitialized @@ -7158,7 +7258,7 @@ type AccountTransactionEffects struct { func (x *AccountTransactionEffects) Reset() { *x = AccountTransactionEffects{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[87] + mi := &file_v2_concordium_types_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7171,7 +7271,7 @@ func (x *AccountTransactionEffects) String() string { func (*AccountTransactionEffects) ProtoMessage() {} func (x *AccountTransactionEffects) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[87] + mi := &file_v2_concordium_types_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7184,7 +7284,7 @@ func (x *AccountTransactionEffects) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountTransactionEffects.ProtoReflect.Descriptor instead. func (*AccountTransactionEffects) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{87} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{88} } func (m *AccountTransactionEffects) GetEffect() isAccountTransactionEffects_Effect { @@ -7478,7 +7578,7 @@ type ElectionDifficulty struct { func (x *ElectionDifficulty) Reset() { *x = ElectionDifficulty{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[88] + mi := &file_v2_concordium_types_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7491,7 +7591,7 @@ func (x *ElectionDifficulty) String() string { func (*ElectionDifficulty) ProtoMessage() {} func (x *ElectionDifficulty) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[88] + mi := &file_v2_concordium_types_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7504,7 +7604,7 @@ func (x *ElectionDifficulty) ProtoReflect() protoreflect.Message { // Deprecated: Use ElectionDifficulty.ProtoReflect.Descriptor instead. func (*ElectionDifficulty) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{88} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{89} } func (x *ElectionDifficulty) GetValue() *AmountFraction { @@ -7531,7 +7631,7 @@ type TimeoutParameters struct { func (x *TimeoutParameters) Reset() { *x = TimeoutParameters{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[89] + mi := &file_v2_concordium_types_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7544,7 +7644,7 @@ func (x *TimeoutParameters) String() string { func (*TimeoutParameters) ProtoMessage() {} func (x *TimeoutParameters) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[89] + mi := &file_v2_concordium_types_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7557,7 +7657,7 @@ func (x *TimeoutParameters) ProtoReflect() protoreflect.Message { // Deprecated: Use TimeoutParameters.ProtoReflect.Descriptor instead. func (*TimeoutParameters) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{89} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{90} } func (x *TimeoutParameters) GetTimeoutBase() *Duration { @@ -7599,7 +7699,7 @@ type FinalizationCommitteeParameters struct { func (x *FinalizationCommitteeParameters) Reset() { *x = FinalizationCommitteeParameters{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[90] + mi := &file_v2_concordium_types_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7612,7 +7712,7 @@ func (x *FinalizationCommitteeParameters) String() string { func (*FinalizationCommitteeParameters) ProtoMessage() {} func (x *FinalizationCommitteeParameters) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[90] + mi := &file_v2_concordium_types_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7625,7 +7725,7 @@ func (x *FinalizationCommitteeParameters) ProtoReflect() protoreflect.Message { // Deprecated: Use FinalizationCommitteeParameters.ProtoReflect.Descriptor instead. func (*FinalizationCommitteeParameters) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{90} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{91} } func (x *FinalizationCommitteeParameters) GetMinimumFinalizers() uint32 { @@ -7666,7 +7766,7 @@ type ConsensusParametersV1 struct { func (x *ConsensusParametersV1) Reset() { *x = ConsensusParametersV1{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[91] + mi := &file_v2_concordium_types_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7679,7 +7779,7 @@ func (x *ConsensusParametersV1) String() string { func (*ConsensusParametersV1) ProtoMessage() {} func (x *ConsensusParametersV1) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[91] + mi := &file_v2_concordium_types_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7692,7 +7792,7 @@ func (x *ConsensusParametersV1) ProtoReflect() protoreflect.Message { // Deprecated: Use ConsensusParametersV1.ProtoReflect.Descriptor instead. func (*ConsensusParametersV1) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{91} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{92} } func (x *ConsensusParametersV1) GetTimeoutParameters() *TimeoutParameters { @@ -7728,7 +7828,7 @@ type ExchangeRate struct { func (x *ExchangeRate) Reset() { *x = ExchangeRate{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[92] + mi := &file_v2_concordium_types_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7741,7 +7841,7 @@ func (x *ExchangeRate) String() string { func (*ExchangeRate) ProtoMessage() {} func (x *ExchangeRate) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[92] + mi := &file_v2_concordium_types_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7754,7 +7854,7 @@ func (x *ExchangeRate) ProtoReflect() protoreflect.Message { // Deprecated: Use ExchangeRate.ProtoReflect.Descriptor instead. func (*ExchangeRate) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{92} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{93} } func (x *ExchangeRate) GetValue() *Ratio { @@ -7779,7 +7879,7 @@ type Ratio struct { func (x *Ratio) Reset() { *x = Ratio{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[93] + mi := &file_v2_concordium_types_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7792,7 +7892,7 @@ func (x *Ratio) String() string { func (*Ratio) ProtoMessage() {} func (x *Ratio) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[93] + mi := &file_v2_concordium_types_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7805,7 +7905,7 @@ func (x *Ratio) ProtoReflect() protoreflect.Message { // Deprecated: Use Ratio.ProtoReflect.Descriptor instead. func (*Ratio) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{93} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{94} } func (x *Ratio) GetNumerator() uint64 { @@ -7834,7 +7934,7 @@ type UpdatePublicKey struct { func (x *UpdatePublicKey) Reset() { *x = UpdatePublicKey{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[94] + mi := &file_v2_concordium_types_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7847,7 +7947,7 @@ func (x *UpdatePublicKey) String() string { func (*UpdatePublicKey) ProtoMessage() {} func (x *UpdatePublicKey) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[94] + mi := &file_v2_concordium_types_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7860,7 +7960,7 @@ func (x *UpdatePublicKey) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdatePublicKey.ProtoReflect.Descriptor instead. func (*UpdatePublicKey) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{94} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{95} } func (x *UpdatePublicKey) GetValue() []byte { @@ -7883,7 +7983,7 @@ type UpdateKeysThreshold struct { func (x *UpdateKeysThreshold) Reset() { *x = UpdateKeysThreshold{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[95] + mi := &file_v2_concordium_types_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7896,7 +7996,7 @@ func (x *UpdateKeysThreshold) String() string { func (*UpdateKeysThreshold) ProtoMessage() {} func (x *UpdateKeysThreshold) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[95] + mi := &file_v2_concordium_types_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7909,7 +8009,7 @@ func (x *UpdateKeysThreshold) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateKeysThreshold.ProtoReflect.Descriptor instead. func (*UpdateKeysThreshold) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{95} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{96} } func (x *UpdateKeysThreshold) GetValue() uint32 { @@ -7931,7 +8031,7 @@ type UpdateKeysIndex struct { func (x *UpdateKeysIndex) Reset() { *x = UpdateKeysIndex{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[96] + mi := &file_v2_concordium_types_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7944,7 +8044,7 @@ func (x *UpdateKeysIndex) String() string { func (*UpdateKeysIndex) ProtoMessage() {} func (x *UpdateKeysIndex) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[96] + mi := &file_v2_concordium_types_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7957,7 +8057,7 @@ func (x *UpdateKeysIndex) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateKeysIndex.ProtoReflect.Descriptor instead. func (*UpdateKeysIndex) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{96} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{97} } func (x *UpdateKeysIndex) GetValue() uint32 { @@ -7982,7 +8082,7 @@ type HigherLevelKeys struct { func (x *HigherLevelKeys) Reset() { *x = HigherLevelKeys{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[97] + mi := &file_v2_concordium_types_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7995,7 +8095,7 @@ func (x *HigherLevelKeys) String() string { func (*HigherLevelKeys) ProtoMessage() {} func (x *HigherLevelKeys) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[97] + mi := &file_v2_concordium_types_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8008,7 +8108,7 @@ func (x *HigherLevelKeys) ProtoReflect() protoreflect.Message { // Deprecated: Use HigherLevelKeys.ProtoReflect.Descriptor instead. func (*HigherLevelKeys) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{97} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{98} } func (x *HigherLevelKeys) GetKeys() []*UpdatePublicKey { @@ -8042,7 +8142,7 @@ type AccessStructure struct { func (x *AccessStructure) Reset() { *x = AccessStructure{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[98] + mi := &file_v2_concordium_types_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8055,7 +8155,7 @@ func (x *AccessStructure) String() string { func (*AccessStructure) ProtoMessage() {} func (x *AccessStructure) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[98] + mi := &file_v2_concordium_types_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8068,7 +8168,7 @@ func (x *AccessStructure) ProtoReflect() protoreflect.Message { // Deprecated: Use AccessStructure.ProtoReflect.Descriptor instead. func (*AccessStructure) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{98} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{99} } func (x *AccessStructure) GetAccessPublicKeys() []*UpdateKeysIndex { @@ -8126,7 +8226,7 @@ type AuthorizationsV0 struct { func (x *AuthorizationsV0) Reset() { *x = AuthorizationsV0{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[99] + mi := &file_v2_concordium_types_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8139,7 +8239,7 @@ func (x *AuthorizationsV0) String() string { func (*AuthorizationsV0) ProtoMessage() {} func (x *AuthorizationsV0) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[99] + mi := &file_v2_concordium_types_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8152,7 +8252,7 @@ func (x *AuthorizationsV0) ProtoReflect() protoreflect.Message { // Deprecated: Use AuthorizationsV0.ProtoReflect.Descriptor instead. func (*AuthorizationsV0) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{99} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{100} } func (x *AuthorizationsV0) GetKeys() []*UpdatePublicKey { @@ -8264,7 +8364,7 @@ type AuthorizationsV1 struct { func (x *AuthorizationsV1) Reset() { *x = AuthorizationsV1{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[100] + mi := &file_v2_concordium_types_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8277,7 +8377,7 @@ func (x *AuthorizationsV1) String() string { func (*AuthorizationsV1) ProtoMessage() {} func (x *AuthorizationsV1) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[100] + mi := &file_v2_concordium_types_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8290,7 +8390,7 @@ func (x *AuthorizationsV1) ProtoReflect() protoreflect.Message { // Deprecated: Use AuthorizationsV1.ProtoReflect.Descriptor instead. func (*AuthorizationsV1) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{100} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{101} } func (x *AuthorizationsV1) GetV0() *AuthorizationsV0 { @@ -8332,7 +8432,7 @@ type Description struct { func (x *Description) Reset() { *x = Description{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[101] + mi := &file_v2_concordium_types_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8345,7 +8445,7 @@ func (x *Description) String() string { func (*Description) ProtoMessage() {} func (x *Description) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[101] + mi := &file_v2_concordium_types_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8358,7 +8458,7 @@ func (x *Description) ProtoReflect() protoreflect.Message { // Deprecated: Use Description.ProtoReflect.Descriptor instead. func (*Description) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{101} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{102} } func (x *Description) GetName() string { @@ -8400,7 +8500,7 @@ type ArInfo struct { func (x *ArInfo) Reset() { *x = ArInfo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[102] + mi := &file_v2_concordium_types_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8413,7 +8513,7 @@ func (x *ArInfo) String() string { func (*ArInfo) ProtoMessage() {} func (x *ArInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[102] + mi := &file_v2_concordium_types_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8426,7 +8526,7 @@ func (x *ArInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ArInfo.ProtoReflect.Descriptor instead. func (*ArInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{102} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{103} } func (x *ArInfo) GetIdentity() *ArInfo_ArIdentity { @@ -8464,7 +8564,7 @@ type IpIdentity struct { func (x *IpIdentity) Reset() { *x = IpIdentity{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[103] + mi := &file_v2_concordium_types_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8477,7 +8577,7 @@ func (x *IpIdentity) String() string { func (*IpIdentity) ProtoMessage() {} func (x *IpIdentity) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[103] + mi := &file_v2_concordium_types_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8490,7 +8590,7 @@ func (x *IpIdentity) ProtoReflect() protoreflect.Message { // Deprecated: Use IpIdentity.ProtoReflect.Descriptor instead. func (*IpIdentity) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{103} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{104} } func (x *IpIdentity) GetValue() uint32 { @@ -8519,7 +8619,7 @@ type IpInfo struct { func (x *IpInfo) Reset() { *x = IpInfo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[104] + mi := &file_v2_concordium_types_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8532,7 +8632,7 @@ func (x *IpInfo) String() string { func (*IpInfo) ProtoMessage() {} func (x *IpInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[104] + mi := &file_v2_concordium_types_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8545,7 +8645,7 @@ func (x *IpInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use IpInfo.ProtoReflect.Descriptor instead. func (*IpInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{104} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{105} } func (x *IpInfo) GetIdentity() *IpIdentity { @@ -8588,7 +8688,7 @@ type DurationSeconds struct { func (x *DurationSeconds) Reset() { *x = DurationSeconds{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[105] + mi := &file_v2_concordium_types_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8601,7 +8701,7 @@ func (x *DurationSeconds) String() string { func (*DurationSeconds) ProtoMessage() {} func (x *DurationSeconds) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[105] + mi := &file_v2_concordium_types_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8614,7 +8714,7 @@ func (x *DurationSeconds) ProtoReflect() protoreflect.Message { // Deprecated: Use DurationSeconds.ProtoReflect.Descriptor instead. func (*DurationSeconds) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{105} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{106} } func (x *DurationSeconds) GetValue() uint64 { @@ -8637,7 +8737,7 @@ type InclusiveRangeAmountFraction struct { func (x *InclusiveRangeAmountFraction) Reset() { *x = InclusiveRangeAmountFraction{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[106] + mi := &file_v2_concordium_types_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8650,7 +8750,7 @@ func (x *InclusiveRangeAmountFraction) String() string { func (*InclusiveRangeAmountFraction) ProtoMessage() {} func (x *InclusiveRangeAmountFraction) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[106] + mi := &file_v2_concordium_types_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8663,7 +8763,7 @@ func (x *InclusiveRangeAmountFraction) ProtoReflect() protoreflect.Message { // Deprecated: Use InclusiveRangeAmountFraction.ProtoReflect.Descriptor instead. func (*InclusiveRangeAmountFraction) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{106} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{107} } func (x *InclusiveRangeAmountFraction) GetMin() *AmountFraction { @@ -8697,7 +8797,7 @@ type CommissionRanges struct { func (x *CommissionRanges) Reset() { *x = CommissionRanges{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[107] + mi := &file_v2_concordium_types_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8710,7 +8810,7 @@ func (x *CommissionRanges) String() string { func (*CommissionRanges) ProtoMessage() {} func (x *CommissionRanges) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[107] + mi := &file_v2_concordium_types_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8723,7 +8823,7 @@ func (x *CommissionRanges) ProtoReflect() protoreflect.Message { // Deprecated: Use CommissionRanges.ProtoReflect.Descriptor instead. func (*CommissionRanges) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{107} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{108} } func (x *CommissionRanges) GetFinalization() *InclusiveRangeAmountFraction { @@ -8760,7 +8860,7 @@ type CapitalBound struct { func (x *CapitalBound) Reset() { *x = CapitalBound{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[108] + mi := &file_v2_concordium_types_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8773,7 +8873,7 @@ func (x *CapitalBound) String() string { func (*CapitalBound) ProtoMessage() {} func (x *CapitalBound) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[108] + mi := &file_v2_concordium_types_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8786,7 +8886,7 @@ func (x *CapitalBound) ProtoReflect() protoreflect.Message { // Deprecated: Use CapitalBound.ProtoReflect.Descriptor instead. func (*CapitalBound) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{108} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{109} } func (x *CapitalBound) GetValue() *AmountFraction { @@ -8808,7 +8908,7 @@ type LeverageFactor struct { func (x *LeverageFactor) Reset() { *x = LeverageFactor{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[109] + mi := &file_v2_concordium_types_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8821,7 +8921,7 @@ func (x *LeverageFactor) String() string { func (*LeverageFactor) ProtoMessage() {} func (x *LeverageFactor) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[109] + mi := &file_v2_concordium_types_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8834,7 +8934,7 @@ func (x *LeverageFactor) ProtoReflect() protoreflect.Message { // Deprecated: Use LeverageFactor.ProtoReflect.Descriptor instead. func (*LeverageFactor) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{109} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{110} } func (x *LeverageFactor) GetValue() *Ratio { @@ -8856,7 +8956,7 @@ type Epoch struct { func (x *Epoch) Reset() { *x = Epoch{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[110] + mi := &file_v2_concordium_types_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8869,7 +8969,7 @@ func (x *Epoch) String() string { func (*Epoch) ProtoMessage() {} func (x *Epoch) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[110] + mi := &file_v2_concordium_types_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8882,7 +8982,7 @@ func (x *Epoch) ProtoReflect() protoreflect.Message { // Deprecated: Use Epoch.ProtoReflect.Descriptor instead. func (*Epoch) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{110} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{111} } func (x *Epoch) GetValue() uint64 { @@ -8892,6 +8992,54 @@ func (x *Epoch) GetValue() uint64 { return 0 } +// A round. +type Round struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value uint64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *Round) Reset() { + *x = Round{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[112] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Round) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Round) ProtoMessage() {} + +func (x *Round) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[112] + 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 Round.ProtoReflect.Descriptor instead. +func (*Round) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{112} +} + +func (x *Round) GetValue() uint64 { + if x != nil { + return x.Value + } + return 0 +} + // Length of a reward period in epochs. // Must always be a strictly positive number. type RewardPeriodLength struct { @@ -8905,7 +9053,7 @@ type RewardPeriodLength struct { func (x *RewardPeriodLength) Reset() { *x = RewardPeriodLength{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[111] + mi := &file_v2_concordium_types_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8918,7 +9066,7 @@ func (x *RewardPeriodLength) String() string { func (*RewardPeriodLength) ProtoMessage() {} func (x *RewardPeriodLength) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[111] + mi := &file_v2_concordium_types_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8931,7 +9079,7 @@ func (x *RewardPeriodLength) ProtoReflect() protoreflect.Message { // Deprecated: Use RewardPeriodLength.ProtoReflect.Descriptor instead. func (*RewardPeriodLength) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{111} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{113} } func (x *RewardPeriodLength) GetValue() *Epoch { @@ -8956,7 +9104,7 @@ type MintRate struct { func (x *MintRate) Reset() { *x = MintRate{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[112] + mi := &file_v2_concordium_types_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8969,7 +9117,7 @@ func (x *MintRate) String() string { func (*MintRate) ProtoMessage() {} func (x *MintRate) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[112] + mi := &file_v2_concordium_types_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8982,7 +9130,7 @@ func (x *MintRate) ProtoReflect() protoreflect.Message { // Deprecated: Use MintRate.ProtoReflect.Descriptor instead. func (*MintRate) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{112} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{114} } func (x *MintRate) GetMantissa() uint32 { @@ -9015,7 +9163,7 @@ type CooldownParametersCpv1 struct { func (x *CooldownParametersCpv1) Reset() { *x = CooldownParametersCpv1{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[113] + mi := &file_v2_concordium_types_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9028,7 +9176,7 @@ func (x *CooldownParametersCpv1) String() string { func (*CooldownParametersCpv1) ProtoMessage() {} func (x *CooldownParametersCpv1) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[113] + mi := &file_v2_concordium_types_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9041,7 +9189,7 @@ func (x *CooldownParametersCpv1) ProtoReflect() protoreflect.Message { // Deprecated: Use CooldownParametersCpv1.ProtoReflect.Descriptor instead. func (*CooldownParametersCpv1) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{113} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{115} } func (x *CooldownParametersCpv1) GetPoolOwnerCooldown() *DurationSeconds { @@ -9085,7 +9233,7 @@ type PoolParametersCpv1 struct { func (x *PoolParametersCpv1) Reset() { *x = PoolParametersCpv1{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[114] + mi := &file_v2_concordium_types_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9098,7 +9246,7 @@ func (x *PoolParametersCpv1) String() string { func (*PoolParametersCpv1) ProtoMessage() {} func (x *PoolParametersCpv1) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[114] + mi := &file_v2_concordium_types_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9111,7 +9259,7 @@ func (x *PoolParametersCpv1) ProtoReflect() protoreflect.Message { // Deprecated: Use PoolParametersCpv1.ProtoReflect.Descriptor instead. func (*PoolParametersCpv1) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{114} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{116} } func (x *PoolParametersCpv1) GetPassiveFinalizationCommission() *AmountFraction { @@ -9178,7 +9326,7 @@ type TimeParametersCpv1 struct { func (x *TimeParametersCpv1) Reset() { *x = TimeParametersCpv1{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[115] + mi := &file_v2_concordium_types_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9191,7 +9339,7 @@ func (x *TimeParametersCpv1) String() string { func (*TimeParametersCpv1) ProtoMessage() {} func (x *TimeParametersCpv1) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[115] + mi := &file_v2_concordium_types_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9204,7 +9352,7 @@ func (x *TimeParametersCpv1) ProtoReflect() protoreflect.Message { // Deprecated: Use TimeParametersCpv1.ProtoReflect.Descriptor instead. func (*TimeParametersCpv1) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{115} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{117} } func (x *TimeParametersCpv1) GetRewardPeriodLength() *RewardPeriodLength { @@ -9234,7 +9382,7 @@ type MintDistributionCpv1 struct { func (x *MintDistributionCpv1) Reset() { *x = MintDistributionCpv1{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[116] + mi := &file_v2_concordium_types_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9247,7 +9395,7 @@ func (x *MintDistributionCpv1) String() string { func (*MintDistributionCpv1) ProtoMessage() {} func (x *MintDistributionCpv1) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[116] + mi := &file_v2_concordium_types_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9260,7 +9408,7 @@ func (x *MintDistributionCpv1) ProtoReflect() protoreflect.Message { // Deprecated: Use MintDistributionCpv1.ProtoReflect.Descriptor instead. func (*MintDistributionCpv1) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{116} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{118} } func (x *MintDistributionCpv1) GetBakingReward() *AmountFraction { @@ -9295,7 +9443,7 @@ type ProtocolUpdate struct { func (x *ProtocolUpdate) Reset() { *x = ProtocolUpdate{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[117] + mi := &file_v2_concordium_types_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9308,7 +9456,7 @@ func (x *ProtocolUpdate) String() string { func (*ProtocolUpdate) ProtoMessage() {} func (x *ProtocolUpdate) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[117] + mi := &file_v2_concordium_types_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9321,7 +9469,7 @@ func (x *ProtocolUpdate) ProtoReflect() protoreflect.Message { // Deprecated: Use ProtocolUpdate.ProtoReflect.Descriptor instead. func (*ProtocolUpdate) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{117} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{119} } func (x *ProtocolUpdate) GetMessage_() string { @@ -9372,7 +9520,7 @@ type MintDistributionCpv0 struct { func (x *MintDistributionCpv0) Reset() { *x = MintDistributionCpv0{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[118] + mi := &file_v2_concordium_types_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9385,7 +9533,7 @@ func (x *MintDistributionCpv0) String() string { func (*MintDistributionCpv0) ProtoMessage() {} func (x *MintDistributionCpv0) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[118] + mi := &file_v2_concordium_types_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9398,7 +9546,7 @@ func (x *MintDistributionCpv0) ProtoReflect() protoreflect.Message { // Deprecated: Use MintDistributionCpv0.ProtoReflect.Descriptor instead. func (*MintDistributionCpv0) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{118} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{120} } func (x *MintDistributionCpv0) GetMintPerSlot() *MintRate { @@ -9437,7 +9585,7 @@ type TransactionFeeDistribution struct { func (x *TransactionFeeDistribution) Reset() { *x = TransactionFeeDistribution{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[119] + mi := &file_v2_concordium_types_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9450,7 +9598,7 @@ func (x *TransactionFeeDistribution) String() string { func (*TransactionFeeDistribution) ProtoMessage() {} func (x *TransactionFeeDistribution) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[119] + mi := &file_v2_concordium_types_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9463,7 +9611,7 @@ func (x *TransactionFeeDistribution) ProtoReflect() protoreflect.Message { // Deprecated: Use TransactionFeeDistribution.ProtoReflect.Descriptor instead. func (*TransactionFeeDistribution) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{119} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{121} } func (x *TransactionFeeDistribution) GetBaker() *AmountFraction { @@ -9499,7 +9647,7 @@ type GasRewards struct { func (x *GasRewards) Reset() { *x = GasRewards{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[120] + mi := &file_v2_concordium_types_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9512,7 +9660,7 @@ func (x *GasRewards) String() string { func (*GasRewards) ProtoMessage() {} func (x *GasRewards) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[120] + mi := &file_v2_concordium_types_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9525,7 +9673,7 @@ func (x *GasRewards) ProtoReflect() protoreflect.Message { // Deprecated: Use GasRewards.ProtoReflect.Descriptor instead. func (*GasRewards) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{120} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{122} } func (x *GasRewards) GetBaker() *AmountFraction { @@ -9573,7 +9721,7 @@ type GasRewardsCpv2 struct { func (x *GasRewardsCpv2) Reset() { *x = GasRewardsCpv2{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[121] + mi := &file_v2_concordium_types_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9586,7 +9734,7 @@ func (x *GasRewardsCpv2) String() string { func (*GasRewardsCpv2) ProtoMessage() {} func (x *GasRewardsCpv2) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[121] + mi := &file_v2_concordium_types_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9599,7 +9747,7 @@ func (x *GasRewardsCpv2) ProtoReflect() protoreflect.Message { // Deprecated: Use GasRewardsCpv2.ProtoReflect.Descriptor instead. func (*GasRewardsCpv2) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{121} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{123} } func (x *GasRewardsCpv2) GetBaker() *AmountFraction { @@ -9637,7 +9785,7 @@ type BakerStakeThreshold struct { func (x *BakerStakeThreshold) Reset() { *x = BakerStakeThreshold{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[122] + mi := &file_v2_concordium_types_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9650,7 +9798,7 @@ func (x *BakerStakeThreshold) String() string { func (*BakerStakeThreshold) ProtoMessage() {} func (x *BakerStakeThreshold) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[122] + mi := &file_v2_concordium_types_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9663,7 +9811,7 @@ func (x *BakerStakeThreshold) ProtoReflect() protoreflect.Message { // Deprecated: Use BakerStakeThreshold.ProtoReflect.Descriptor instead. func (*BakerStakeThreshold) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{122} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{124} } func (x *BakerStakeThreshold) GetBakerStakeThreshold() *Amount { @@ -9681,6 +9829,7 @@ type RootUpdate struct { unknownFields protoimpl.UnknownFields // Types that are assignable to UpdateType: + // // *RootUpdate_RootKeysUpdate // *RootUpdate_Level_1KeysUpdate // *RootUpdate_Level_2KeysUpdateV0 @@ -9691,7 +9840,7 @@ type RootUpdate struct { func (x *RootUpdate) Reset() { *x = RootUpdate{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[123] + mi := &file_v2_concordium_types_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9704,7 +9853,7 @@ func (x *RootUpdate) String() string { func (*RootUpdate) ProtoMessage() {} func (x *RootUpdate) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[123] + mi := &file_v2_concordium_types_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9717,7 +9866,7 @@ func (x *RootUpdate) ProtoReflect() protoreflect.Message { // Deprecated: Use RootUpdate.ProtoReflect.Descriptor instead. func (*RootUpdate) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{123} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{125} } func (m *RootUpdate) GetUpdateType() isRootUpdate_UpdateType { @@ -9795,6 +9944,7 @@ type Level1Update struct { unknownFields protoimpl.UnknownFields // Types that are assignable to UpdateType: + // // *Level1Update_Level_1KeysUpdate // *Level1Update_Level_2KeysUpdateV0 // *Level1Update_Level_2KeysUpdateV1 @@ -9804,7 +9954,7 @@ type Level1Update struct { func (x *Level1Update) Reset() { *x = Level1Update{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[124] + mi := &file_v2_concordium_types_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9817,7 +9967,7 @@ func (x *Level1Update) String() string { func (*Level1Update) ProtoMessage() {} func (x *Level1Update) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[124] + mi := &file_v2_concordium_types_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9830,7 +9980,7 @@ func (x *Level1Update) ProtoReflect() protoreflect.Message { // Deprecated: Use Level1Update.ProtoReflect.Descriptor instead. func (*Level1Update) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{124} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{126} } func (m *Level1Update) GetUpdateType() isLevel1Update_UpdateType { @@ -9893,6 +10043,7 @@ type UpdatePayload struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Payload: + // // *UpdatePayload_ProtocolUpdate // *UpdatePayload_ElectionDifficultyUpdate // *UpdatePayload_EuroPerEnergyUpdate @@ -9921,7 +10072,7 @@ type UpdatePayload struct { func (x *UpdatePayload) Reset() { *x = UpdatePayload{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[125] + mi := &file_v2_concordium_types_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9934,7 +10085,7 @@ func (x *UpdatePayload) String() string { func (*UpdatePayload) ProtoMessage() {} func (x *UpdatePayload) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[125] + mi := &file_v2_concordium_types_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9947,7 +10098,7 @@ func (x *UpdatePayload) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdatePayload.ProtoReflect.Descriptor instead. func (*UpdatePayload) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{125} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{127} } func (m *UpdatePayload) GetPayload() isUpdatePayload_Payload { @@ -10286,7 +10437,7 @@ type AccountTransactionDetails struct { func (x *AccountTransactionDetails) Reset() { *x = AccountTransactionDetails{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[126] + mi := &file_v2_concordium_types_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10299,7 +10450,7 @@ func (x *AccountTransactionDetails) String() string { func (*AccountTransactionDetails) ProtoMessage() {} func (x *AccountTransactionDetails) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[126] + mi := &file_v2_concordium_types_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10312,7 +10463,7 @@ func (x *AccountTransactionDetails) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountTransactionDetails.ProtoReflect.Descriptor instead. func (*AccountTransactionDetails) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{126} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{128} } func (x *AccountTransactionDetails) GetCost() *Amount { @@ -10355,7 +10506,7 @@ type AccountCreationDetails struct { func (x *AccountCreationDetails) Reset() { *x = AccountCreationDetails{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[127] + mi := &file_v2_concordium_types_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10368,7 +10519,7 @@ func (x *AccountCreationDetails) String() string { func (*AccountCreationDetails) ProtoMessage() {} func (x *AccountCreationDetails) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[127] + mi := &file_v2_concordium_types_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10381,7 +10532,7 @@ func (x *AccountCreationDetails) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountCreationDetails.ProtoReflect.Descriptor instead. func (*AccountCreationDetails) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{127} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{129} } func (x *AccountCreationDetails) GetCredentialType() CredentialType { @@ -10417,7 +10568,7 @@ type TransactionTime struct { func (x *TransactionTime) Reset() { *x = TransactionTime{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[128] + mi := &file_v2_concordium_types_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10430,7 +10581,7 @@ func (x *TransactionTime) String() string { func (*TransactionTime) ProtoMessage() {} func (x *TransactionTime) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[128] + mi := &file_v2_concordium_types_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10443,7 +10594,7 @@ func (x *TransactionTime) ProtoReflect() protoreflect.Message { // Deprecated: Use TransactionTime.ProtoReflect.Descriptor instead. func (*TransactionTime) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{128} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{130} } func (x *TransactionTime) GetValue() uint64 { @@ -10470,7 +10621,7 @@ type UpdateDetails struct { func (x *UpdateDetails) Reset() { *x = UpdateDetails{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[129] + mi := &file_v2_concordium_types_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10483,7 +10634,7 @@ func (x *UpdateDetails) String() string { func (*UpdateDetails) ProtoMessage() {} func (x *UpdateDetails) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[129] + mi := &file_v2_concordium_types_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10496,7 +10647,7 @@ func (x *UpdateDetails) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateDetails.ProtoReflect.Descriptor instead. func (*UpdateDetails) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{129} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{131} } func (x *UpdateDetails) GetEffectiveTime() *TransactionTime { @@ -10529,6 +10680,7 @@ type BlockItemSummary struct { // Details that are specific to different transaction types. // // Types that are assignable to Details: + // // *BlockItemSummary_AccountTransaction // *BlockItemSummary_AccountCreation // *BlockItemSummary_Update @@ -10538,7 +10690,7 @@ type BlockItemSummary struct { func (x *BlockItemSummary) Reset() { *x = BlockItemSummary{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[130] + mi := &file_v2_concordium_types_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10551,7 +10703,7 @@ func (x *BlockItemSummary) String() string { func (*BlockItemSummary) ProtoMessage() {} func (x *BlockItemSummary) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[130] + mi := &file_v2_concordium_types_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10564,7 +10716,7 @@ func (x *BlockItemSummary) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockItemSummary.ProtoReflect.Descriptor instead. func (*BlockItemSummary) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{130} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{132} } func (x *BlockItemSummary) GetIndex() *BlockItemSummary_TransactionIndex { @@ -10621,7 +10773,7 @@ type isBlockItemSummary_Details interface { } type BlockItemSummary_AccountTransaction struct { - // Detailsa about an account transaction. + // Details about an account transaction. AccountTransaction *AccountTransactionDetails `protobuf:"bytes,4,opt,name=account_transaction,json=accountTransaction,proto3,oneof"` } @@ -10656,7 +10808,7 @@ type GenesisIndex struct { func (x *GenesisIndex) Reset() { *x = GenesisIndex{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[131] + mi := &file_v2_concordium_types_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10669,7 +10821,7 @@ func (x *GenesisIndex) String() string { func (*GenesisIndex) ProtoMessage() {} func (x *GenesisIndex) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[131] + mi := &file_v2_concordium_types_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10682,7 +10834,7 @@ func (x *GenesisIndex) ProtoReflect() protoreflect.Message { // Deprecated: Use GenesisIndex.ProtoReflect.Descriptor instead. func (*GenesisIndex) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{131} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{133} } func (x *GenesisIndex) GetValue() uint32 { @@ -10704,8 +10856,8 @@ type ConsensusInfo struct { GenesisBlock *BlockHash `protobuf:"bytes,2,opt,name=genesis_block,json=genesisBlock,proto3" json:"genesis_block,omitempty"` // Time of the (original) genesis block. GenesisTime *Timestamp `protobuf:"bytes,3,opt,name=genesis_time,json=genesisTime,proto3" json:"genesis_time,omitempty"` - // (Current) slot duration in milliseconds. - SlotDuration *Duration `protobuf:"bytes,4,opt,name=slot_duration,json=slotDuration,proto3" json:"slot_duration,omitempty"` + // (Current) slot duration in milliseconds. Present only in protocol versions 1-5. + SlotDuration *Duration `protobuf:"bytes,4,opt,name=slot_duration,json=slotDuration,proto3,oneof" json:"slot_duration,omitempty"` // (Current) epoch duration in milliseconds. EpochDuration *Duration `protobuf:"bytes,5,opt,name=epoch_duration,json=epochDuration,proto3" json:"epoch_duration,omitempty"` // Hash of the last finalized block. @@ -10762,12 +10914,21 @@ type ConsensusInfo struct { CurrentEraGenesisBlock *BlockHash `protobuf:"bytes,29,opt,name=current_era_genesis_block,json=currentEraGenesisBlock,proto3" json:"current_era_genesis_block,omitempty"` // Time when the current era started. CurrentEraGenesisTime *Timestamp `protobuf:"bytes,30,opt,name=current_era_genesis_time,json=currentEraGenesisTime,proto3" json:"current_era_genesis_time,omitempty"` + // The current duration to wait before a round times out. Present from protocol version 6. + CurrentTimeoutDuration *Duration `protobuf:"bytes,31,opt,name=current_timeout_duration,json=currentTimeoutDuration,proto3,oneof" json:"current_timeout_duration,omitempty"` + // The current round. Present from protocol version 6. + CurrentRound *Round `protobuf:"bytes,32,opt,name=current_round,json=currentRound,proto3,oneof" json:"current_round,omitempty"` + // The current epoch. Present from protocol version 6. + CurrentEpoch *Epoch `protobuf:"bytes,33,opt,name=current_epoch,json=currentEpoch,proto3,oneof" json:"current_epoch,omitempty"` + // The first block in the epoch with timestamp at least this is considered to be the trigger block + // for the epoch transition. Present from protocol version 6. + TriggerBlockTime *Timestamp `protobuf:"bytes,34,opt,name=trigger_block_time,json=triggerBlockTime,proto3,oneof" json:"trigger_block_time,omitempty"` } func (x *ConsensusInfo) Reset() { *x = ConsensusInfo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[132] + mi := &file_v2_concordium_types_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10780,7 +10941,7 @@ func (x *ConsensusInfo) String() string { func (*ConsensusInfo) ProtoMessage() {} func (x *ConsensusInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[132] + mi := &file_v2_concordium_types_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10793,7 +10954,7 @@ func (x *ConsensusInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ConsensusInfo.ProtoReflect.Descriptor instead. func (*ConsensusInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{132} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{134} } func (x *ConsensusInfo) GetBestBlock() *BlockHash { @@ -11006,6 +11167,34 @@ func (x *ConsensusInfo) GetCurrentEraGenesisTime() *Timestamp { return nil } +func (x *ConsensusInfo) GetCurrentTimeoutDuration() *Duration { + if x != nil { + return x.CurrentTimeoutDuration + } + return nil +} + +func (x *ConsensusInfo) GetCurrentRound() *Round { + if x != nil { + return x.CurrentRound + } + return nil +} + +func (x *ConsensusInfo) GetCurrentEpoch() *Epoch { + if x != nil { + return x.CurrentEpoch + } + return nil +} + +func (x *ConsensusInfo) GetTriggerBlockTime() *Timestamp { + if x != nil { + return x.TriggerBlockTime + } + return nil +} + // Information about an arrived block that is part of the streaming response. type ArrivedBlockInfo struct { state protoimpl.MessageState @@ -11021,7 +11210,7 @@ type ArrivedBlockInfo struct { func (x *ArrivedBlockInfo) Reset() { *x = ArrivedBlockInfo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[133] + mi := &file_v2_concordium_types_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11034,7 +11223,7 @@ func (x *ArrivedBlockInfo) String() string { func (*ArrivedBlockInfo) ProtoMessage() {} func (x *ArrivedBlockInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[133] + mi := &file_v2_concordium_types_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11047,7 +11236,7 @@ func (x *ArrivedBlockInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ArrivedBlockInfo.ProtoReflect.Descriptor instead. func (*ArrivedBlockInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{133} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{135} } func (x *ArrivedBlockInfo) GetHash() *BlockHash { @@ -11084,7 +11273,7 @@ type CryptographicParameters struct { func (x *CryptographicParameters) Reset() { *x = CryptographicParameters{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[134] + mi := &file_v2_concordium_types_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11097,7 +11286,7 @@ func (x *CryptographicParameters) String() string { func (*CryptographicParameters) ProtoMessage() {} func (x *CryptographicParameters) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[134] + mi := &file_v2_concordium_types_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11110,7 +11299,7 @@ func (x *CryptographicParameters) ProtoReflect() protoreflect.Message { // Deprecated: Use CryptographicParameters.ProtoReflect.Descriptor instead. func (*CryptographicParameters) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{134} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{136} } func (x *CryptographicParameters) GetGenesisString() string { @@ -11158,8 +11347,8 @@ type BlockInfo struct { ReceiveTime *Timestamp `protobuf:"bytes,7,opt,name=receive_time,json=receiveTime,proto3" json:"receive_time,omitempty"` // The time the block was verified. ArriveTime *Timestamp `protobuf:"bytes,8,opt,name=arrive_time,json=arriveTime,proto3" json:"arrive_time,omitempty"` - // The slot number in which the block was baked. - SlotNumber *Slot `protobuf:"bytes,9,opt,name=slot_number,json=slotNumber,proto3" json:"slot_number,omitempty"` + // The slot number in which the block was baked. Present in protocol versions 1-5. + SlotNumber *Slot `protobuf:"bytes,9,opt,name=slot_number,json=slotNumber,proto3,oneof" json:"slot_number,omitempty"` // The time of the slot in which the block was baked. SlotTime *Timestamp `protobuf:"bytes,10,opt,name=slot_time,json=slotTime,proto3" json:"slot_time,omitempty"` // The baker id of account baking this block. Not provided for a genesis block. @@ -11176,12 +11365,16 @@ type BlockInfo struct { StateHash *StateHash `protobuf:"bytes,16,opt,name=state_hash,json=stateHash,proto3" json:"state_hash,omitempty"` // Protocol version to which the block belongs. ProtocolVersion ProtocolVersion `protobuf:"varint,17,opt,name=protocol_version,json=protocolVersion,proto3,enum=concordium.v2.ProtocolVersion" json:"protocol_version,omitempty"` + // Block round. Present from protocol version 6. + Round *Round `protobuf:"bytes,18,opt,name=round,proto3,oneof" json:"round,omitempty"` + // Block epoch. Present from protocol version 6. + Epoch *Epoch `protobuf:"bytes,19,opt,name=epoch,proto3,oneof" json:"epoch,omitempty"` } func (x *BlockInfo) Reset() { *x = BlockInfo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[135] + mi := &file_v2_concordium_types_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11194,7 +11387,7 @@ func (x *BlockInfo) String() string { func (*BlockInfo) ProtoMessage() {} func (x *BlockInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[135] + mi := &file_v2_concordium_types_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11207,7 +11400,7 @@ func (x *BlockInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockInfo.ProtoReflect.Descriptor instead. func (*BlockInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{135} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{137} } func (x *BlockInfo) GetHash() *BlockHash { @@ -11329,6 +11522,20 @@ func (x *BlockInfo) GetProtocolVersion() ProtocolVersion { return ProtocolVersion_PROTOCOL_VERSION_1 } +func (x *BlockInfo) GetRound() *Round { + if x != nil { + return x.Round + } + return nil +} + +func (x *BlockInfo) GetEpoch() *Epoch { + if x != nil { + return x.Epoch + } + return nil +} + // Request for GetPoolInfo. type PoolInfoRequest struct { state protoimpl.MessageState @@ -11344,7 +11551,7 @@ type PoolInfoRequest struct { func (x *PoolInfoRequest) Reset() { *x = PoolInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[136] + mi := &file_v2_concordium_types_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11357,7 +11564,7 @@ func (x *PoolInfoRequest) String() string { func (*PoolInfoRequest) ProtoMessage() {} func (x *PoolInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[136] + mi := &file_v2_concordium_types_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11370,7 +11577,7 @@ func (x *PoolInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PoolInfoRequest.ProtoReflect.Descriptor instead. func (*PoolInfoRequest) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{136} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{138} } func (x *PoolInfoRequest) GetBlockHash() *BlockHashInput { @@ -11394,6 +11601,7 @@ type PoolPendingChange struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Change: + // // *PoolPendingChange_Reduce_ // *PoolPendingChange_Remove_ Change isPoolPendingChange_Change `protobuf_oneof:"change"` @@ -11402,7 +11610,7 @@ type PoolPendingChange struct { func (x *PoolPendingChange) Reset() { *x = PoolPendingChange{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[137] + mi := &file_v2_concordium_types_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11415,7 +11623,7 @@ func (x *PoolPendingChange) String() string { func (*PoolPendingChange) ProtoMessage() {} func (x *PoolPendingChange) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[137] + mi := &file_v2_concordium_types_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11428,7 +11636,7 @@ func (x *PoolPendingChange) ProtoReflect() protoreflect.Message { // Deprecated: Use PoolPendingChange.ProtoReflect.Descriptor instead. func (*PoolPendingChange) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{137} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{139} } func (m *PoolPendingChange) GetChange() isPoolPendingChange_Change { @@ -11488,12 +11696,14 @@ type PoolCurrentPaydayInfo struct { BakerEquityCapital *Amount `protobuf:"bytes,6,opt,name=baker_equity_capital,json=bakerEquityCapital,proto3" json:"baker_equity_capital,omitempty"` // The effective delegated capital to the pool for the current reward period. DelegatedCapital *Amount `protobuf:"bytes,7,opt,name=delegated_capital,json=delegatedCapital,proto3" json:"delegated_capital,omitempty"` + // The commission rates that apply for the current reward period. + CommissionRates *CommissionRates `protobuf:"bytes,8,opt,name=commission_rates,json=commissionRates,proto3" json:"commission_rates,omitempty"` } func (x *PoolCurrentPaydayInfo) Reset() { *x = PoolCurrentPaydayInfo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[138] + mi := &file_v2_concordium_types_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11506,7 +11716,7 @@ func (x *PoolCurrentPaydayInfo) String() string { func (*PoolCurrentPaydayInfo) ProtoMessage() {} func (x *PoolCurrentPaydayInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[138] + mi := &file_v2_concordium_types_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11519,7 +11729,7 @@ func (x *PoolCurrentPaydayInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PoolCurrentPaydayInfo.ProtoReflect.Descriptor instead. func (*PoolCurrentPaydayInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{138} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{140} } func (x *PoolCurrentPaydayInfo) GetBlocksBaked() uint64 { @@ -11571,6 +11781,13 @@ func (x *PoolCurrentPaydayInfo) GetDelegatedCapital() *Amount { return nil } +func (x *PoolCurrentPaydayInfo) GetCommissionRates() *CommissionRates { + if x != nil { + return x.CommissionRates + } + return nil +} + // Type for the response of GetPoolInfo. // Contains information about a given pool at the end of a given block. type PoolInfoResponse struct { @@ -11601,7 +11818,7 @@ type PoolInfoResponse struct { func (x *PoolInfoResponse) Reset() { *x = PoolInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[139] + mi := &file_v2_concordium_types_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11614,7 +11831,7 @@ func (x *PoolInfoResponse) String() string { func (*PoolInfoResponse) ProtoMessage() {} func (x *PoolInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[139] + mi := &file_v2_concordium_types_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11627,7 +11844,7 @@ func (x *PoolInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PoolInfoResponse.ProtoReflect.Descriptor instead. func (*PoolInfoResponse) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{139} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{141} } func (x *PoolInfoResponse) GetBaker() *BakerId { @@ -11715,7 +11932,7 @@ type PassiveDelegationInfo struct { func (x *PassiveDelegationInfo) Reset() { *x = PassiveDelegationInfo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[140] + mi := &file_v2_concordium_types_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11728,7 +11945,7 @@ func (x *PassiveDelegationInfo) String() string { func (*PassiveDelegationInfo) ProtoMessage() {} func (x *PassiveDelegationInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[140] + mi := &file_v2_concordium_types_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11741,7 +11958,7 @@ func (x *PassiveDelegationInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PassiveDelegationInfo.ProtoReflect.Descriptor instead. func (*PassiveDelegationInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{140} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{142} } func (x *PassiveDelegationInfo) GetDelegatedCapital() *Amount { @@ -11786,6 +12003,7 @@ type BlocksAtHeightRequest struct { unknownFields protoimpl.UnknownFields // Types that are assignable to BlocksAtHeight: + // // *BlocksAtHeightRequest_Absolute_ // *BlocksAtHeightRequest_Relative_ BlocksAtHeight isBlocksAtHeightRequest_BlocksAtHeight `protobuf_oneof:"blocks_at_height"` @@ -11794,7 +12012,7 @@ type BlocksAtHeightRequest struct { func (x *BlocksAtHeightRequest) Reset() { *x = BlocksAtHeightRequest{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[141] + mi := &file_v2_concordium_types_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11807,7 +12025,7 @@ func (x *BlocksAtHeightRequest) String() string { func (*BlocksAtHeightRequest) ProtoMessage() {} func (x *BlocksAtHeightRequest) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[141] + mi := &file_v2_concordium_types_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11820,7 +12038,7 @@ func (x *BlocksAtHeightRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BlocksAtHeightRequest.ProtoReflect.Descriptor instead. func (*BlocksAtHeightRequest) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{141} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{143} } func (m *BlocksAtHeightRequest) GetBlocksAtHeight() isBlocksAtHeightRequest_BlocksAtHeight { @@ -11873,7 +12091,7 @@ type BlocksAtHeightResponse struct { func (x *BlocksAtHeightResponse) Reset() { *x = BlocksAtHeightResponse{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[142] + mi := &file_v2_concordium_types_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11886,7 +12104,7 @@ func (x *BlocksAtHeightResponse) String() string { func (*BlocksAtHeightResponse) ProtoMessage() {} func (x *BlocksAtHeightResponse) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[142] + mi := &file_v2_concordium_types_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11899,7 +12117,7 @@ func (x *BlocksAtHeightResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BlocksAtHeightResponse.ProtoReflect.Descriptor instead. func (*BlocksAtHeightResponse) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{142} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{144} } func (x *BlocksAtHeightResponse) GetBlocks() []*BlockHash { @@ -11917,6 +12135,7 @@ type TokenomicsInfo struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Tokenomics: + // // *TokenomicsInfo_V0_ // *TokenomicsInfo_V1_ Tokenomics isTokenomicsInfo_Tokenomics `protobuf_oneof:"tokenomics"` @@ -11925,7 +12144,7 @@ type TokenomicsInfo struct { func (x *TokenomicsInfo) Reset() { *x = TokenomicsInfo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[143] + mi := &file_v2_concordium_types_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11938,7 +12157,7 @@ func (x *TokenomicsInfo) String() string { func (*TokenomicsInfo) ProtoMessage() {} func (x *TokenomicsInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[143] + mi := &file_v2_concordium_types_proto_msgTypes[145] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11951,7 +12170,7 @@ func (x *TokenomicsInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use TokenomicsInfo.ProtoReflect.Descriptor instead. func (*TokenomicsInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{143} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{145} } func (m *TokenomicsInfo) GetTokenomics() isTokenomicsInfo_Tokenomics { @@ -12021,7 +12240,7 @@ type InvokeInstanceRequest struct { func (x *InvokeInstanceRequest) Reset() { *x = InvokeInstanceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[144] + mi := &file_v2_concordium_types_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12034,7 +12253,7 @@ func (x *InvokeInstanceRequest) String() string { func (*InvokeInstanceRequest) ProtoMessage() {} func (x *InvokeInstanceRequest) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[144] + mi := &file_v2_concordium_types_proto_msgTypes[146] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12047,7 +12266,7 @@ func (x *InvokeInstanceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use InvokeInstanceRequest.ProtoReflect.Descriptor instead. func (*InvokeInstanceRequest) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{144} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{146} } func (x *InvokeInstanceRequest) GetBlockHash() *BlockHashInput { @@ -12106,6 +12325,7 @@ type InvokeInstanceResponse struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Result: + // // *InvokeInstanceResponse_Success_ // *InvokeInstanceResponse_Failure_ Result isInvokeInstanceResponse_Result `protobuf_oneof:"result"` @@ -12114,7 +12334,7 @@ type InvokeInstanceResponse struct { func (x *InvokeInstanceResponse) Reset() { *x = InvokeInstanceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[145] + mi := &file_v2_concordium_types_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12127,7 +12347,7 @@ func (x *InvokeInstanceResponse) String() string { func (*InvokeInstanceResponse) ProtoMessage() {} func (x *InvokeInstanceResponse) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[145] + mi := &file_v2_concordium_types_proto_msgTypes[147] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12140,7 +12360,7 @@ func (x *InvokeInstanceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use InvokeInstanceResponse.ProtoReflect.Descriptor instead. func (*InvokeInstanceResponse) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{145} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{147} } func (m *InvokeInstanceResponse) GetResult() isInvokeInstanceResponse_Result { @@ -12195,7 +12415,7 @@ type GetPoolDelegatorsRequest struct { func (x *GetPoolDelegatorsRequest) Reset() { *x = GetPoolDelegatorsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[146] + mi := &file_v2_concordium_types_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12208,7 +12428,7 @@ func (x *GetPoolDelegatorsRequest) String() string { func (*GetPoolDelegatorsRequest) ProtoMessage() {} func (x *GetPoolDelegatorsRequest) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[146] + mi := &file_v2_concordium_types_proto_msgTypes[148] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12221,7 +12441,7 @@ func (x *GetPoolDelegatorsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPoolDelegatorsRequest.ProtoReflect.Descriptor instead. func (*GetPoolDelegatorsRequest) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{146} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{148} } func (x *GetPoolDelegatorsRequest) GetBlockHash() *BlockHashInput { @@ -12255,7 +12475,7 @@ type DelegatorInfo struct { func (x *DelegatorInfo) Reset() { *x = DelegatorInfo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[147] + mi := &file_v2_concordium_types_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12268,7 +12488,7 @@ func (x *DelegatorInfo) String() string { func (*DelegatorInfo) ProtoMessage() {} func (x *DelegatorInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[147] + mi := &file_v2_concordium_types_proto_msgTypes[149] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12281,7 +12501,7 @@ func (x *DelegatorInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use DelegatorInfo.ProtoReflect.Descriptor instead. func (*DelegatorInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{147} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{149} } func (x *DelegatorInfo) GetAccount() *AccountAddress { @@ -12320,7 +12540,7 @@ type DelegatorRewardPeriodInfo struct { func (x *DelegatorRewardPeriodInfo) Reset() { *x = DelegatorRewardPeriodInfo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[148] + mi := &file_v2_concordium_types_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12333,7 +12553,7 @@ func (x *DelegatorRewardPeriodInfo) String() string { func (*DelegatorRewardPeriodInfo) ProtoMessage() {} func (x *DelegatorRewardPeriodInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[148] + mi := &file_v2_concordium_types_proto_msgTypes[150] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12346,7 +12566,7 @@ func (x *DelegatorRewardPeriodInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use DelegatorRewardPeriodInfo.ProtoReflect.Descriptor instead. func (*DelegatorRewardPeriodInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{148} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{150} } func (x *DelegatorRewardPeriodInfo) GetAccount() *AccountAddress { @@ -12378,7 +12598,7 @@ type Branch struct { func (x *Branch) Reset() { *x = Branch{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[149] + mi := &file_v2_concordium_types_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12391,7 +12611,7 @@ func (x *Branch) String() string { func (*Branch) ProtoMessage() {} func (x *Branch) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[149] + mi := &file_v2_concordium_types_proto_msgTypes[151] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12404,7 +12624,7 @@ func (x *Branch) ProtoReflect() protoreflect.Message { // Deprecated: Use Branch.ProtoReflect.Descriptor instead. func (*Branch) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{149} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{151} } func (x *Branch) GetBlockHash() *BlockHash { @@ -12435,7 +12655,7 @@ type LeadershipElectionNonce struct { func (x *LeadershipElectionNonce) Reset() { *x = LeadershipElectionNonce{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[150] + mi := &file_v2_concordium_types_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12448,7 +12668,7 @@ func (x *LeadershipElectionNonce) String() string { func (*LeadershipElectionNonce) ProtoMessage() {} func (x *LeadershipElectionNonce) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[150] + mi := &file_v2_concordium_types_proto_msgTypes[152] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12461,7 +12681,7 @@ func (x *LeadershipElectionNonce) ProtoReflect() protoreflect.Message { // Deprecated: Use LeadershipElectionNonce.ProtoReflect.Descriptor instead. func (*LeadershipElectionNonce) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{150} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{152} } func (x *LeadershipElectionNonce) GetValue() []byte { @@ -12478,8 +12698,8 @@ type ElectionInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Baking lottery election difficulty. - ElectionDifficulty *ElectionDifficulty `protobuf:"bytes,1,opt,name=election_difficulty,json=electionDifficulty,proto3" json:"election_difficulty,omitempty"` + // Baking lottery election difficulty. Present only in protocol versions 1-5. + ElectionDifficulty *ElectionDifficulty `protobuf:"bytes,1,opt,name=election_difficulty,json=electionDifficulty,proto3,oneof" json:"election_difficulty,omitempty"` // Current leadership election nonce for the lottery. ElectionNonce *LeadershipElectionNonce `protobuf:"bytes,2,opt,name=election_nonce,json=electionNonce,proto3" json:"election_nonce,omitempty"` // List of the currently eligible bakers. @@ -12489,7 +12709,7 @@ type ElectionInfo struct { func (x *ElectionInfo) Reset() { *x = ElectionInfo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[151] + mi := &file_v2_concordium_types_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12502,7 +12722,7 @@ func (x *ElectionInfo) String() string { func (*ElectionInfo) ProtoMessage() {} func (x *ElectionInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[151] + mi := &file_v2_concordium_types_proto_msgTypes[153] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12515,7 +12735,7 @@ func (x *ElectionInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ElectionInfo.ProtoReflect.Descriptor instead. func (*ElectionInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{151} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{153} } func (x *ElectionInfo) GetElectionDifficulty() *ElectionDifficulty { @@ -12547,6 +12767,7 @@ type BlockSpecialEvent struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Event: + // // *BlockSpecialEvent_BakingRewards_ // *BlockSpecialEvent_Mint_ // *BlockSpecialEvent_FinalizationRewards_ @@ -12561,7 +12782,7 @@ type BlockSpecialEvent struct { func (x *BlockSpecialEvent) Reset() { *x = BlockSpecialEvent{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[152] + mi := &file_v2_concordium_types_proto_msgTypes[154] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12574,7 +12795,7 @@ func (x *BlockSpecialEvent) String() string { func (*BlockSpecialEvent) ProtoMessage() {} func (x *BlockSpecialEvent) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[152] + mi := &file_v2_concordium_types_proto_msgTypes[154] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12587,7 +12808,7 @@ func (x *BlockSpecialEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockSpecialEvent.ProtoReflect.Descriptor instead. func (*BlockSpecialEvent) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{152} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{154} } func (m *BlockSpecialEvent) GetEvent() isBlockSpecialEvent_Event { @@ -12716,6 +12937,7 @@ type PendingUpdate struct { // The effect of the update. // // Types that are assignable to Effect: + // // *PendingUpdate_RootKeys // *PendingUpdate_Level1Keys // *PendingUpdate_Level2KeysCpv_0 @@ -12746,7 +12968,7 @@ type PendingUpdate struct { func (x *PendingUpdate) Reset() { *x = PendingUpdate{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[153] + mi := &file_v2_concordium_types_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12759,7 +12981,7 @@ func (x *PendingUpdate) String() string { func (*PendingUpdate) ProtoMessage() {} func (x *PendingUpdate) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[153] + mi := &file_v2_concordium_types_proto_msgTypes[155] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12772,7 +12994,7 @@ func (x *PendingUpdate) ProtoReflect() protoreflect.Message { // Deprecated: Use PendingUpdate.ProtoReflect.Descriptor instead. func (*PendingUpdate) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{153} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{155} } func (x *PendingUpdate) GetEffectiveTime() *TransactionTime { @@ -13180,7 +13402,7 @@ type NextUpdateSequenceNumbers struct { func (x *NextUpdateSequenceNumbers) Reset() { *x = NextUpdateSequenceNumbers{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[154] + mi := &file_v2_concordium_types_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13193,7 +13415,7 @@ func (x *NextUpdateSequenceNumbers) String() string { func (*NextUpdateSequenceNumbers) ProtoMessage() {} func (x *NextUpdateSequenceNumbers) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[154] + mi := &file_v2_concordium_types_proto_msgTypes[156] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13206,7 +13428,7 @@ func (x *NextUpdateSequenceNumbers) ProtoReflect() protoreflect.Message { // Deprecated: Use NextUpdateSequenceNumbers.ProtoReflect.Descriptor instead. func (*NextUpdateSequenceNumbers) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{154} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{156} } func (x *NextUpdateSequenceNumbers) GetRootKeys() *SequenceNumber { @@ -13362,7 +13584,7 @@ type IpAddress struct { func (x *IpAddress) Reset() { *x = IpAddress{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[155] + mi := &file_v2_concordium_types_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13375,7 +13597,7 @@ func (x *IpAddress) String() string { func (*IpAddress) ProtoMessage() {} func (x *IpAddress) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[155] + mi := &file_v2_concordium_types_proto_msgTypes[157] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13388,7 +13610,7 @@ func (x *IpAddress) ProtoReflect() protoreflect.Message { // Deprecated: Use IpAddress.ProtoReflect.Descriptor instead. func (*IpAddress) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{155} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{157} } func (x *IpAddress) GetValue() string { @@ -13412,7 +13634,7 @@ type Port struct { func (x *Port) Reset() { *x = Port{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[156] + mi := &file_v2_concordium_types_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13425,7 +13647,7 @@ func (x *Port) String() string { func (*Port) ProtoMessage() {} func (x *Port) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[156] + mi := &file_v2_concordium_types_proto_msgTypes[158] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13438,7 +13660,7 @@ func (x *Port) ProtoReflect() protoreflect.Message { // Deprecated: Use Port.ProtoReflect.Descriptor instead. func (*Port) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{156} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{158} } func (x *Port) GetValue() uint32 { @@ -13462,7 +13684,7 @@ type IpSocketAddress struct { func (x *IpSocketAddress) Reset() { *x = IpSocketAddress{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[157] + mi := &file_v2_concordium_types_proto_msgTypes[159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13475,7 +13697,7 @@ func (x *IpSocketAddress) String() string { func (*IpSocketAddress) ProtoMessage() {} func (x *IpSocketAddress) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[157] + mi := &file_v2_concordium_types_proto_msgTypes[159] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13488,7 +13710,7 @@ func (x *IpSocketAddress) ProtoReflect() protoreflect.Message { // Deprecated: Use IpSocketAddress.ProtoReflect.Descriptor instead. func (*IpSocketAddress) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{157} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{159} } func (x *IpSocketAddress) GetIp() *IpAddress { @@ -13522,7 +13744,7 @@ type PeerId struct { func (x *PeerId) Reset() { *x = PeerId{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[158] + mi := &file_v2_concordium_types_proto_msgTypes[160] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13535,7 +13757,7 @@ func (x *PeerId) String() string { func (*PeerId) ProtoMessage() {} func (x *PeerId) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[158] + mi := &file_v2_concordium_types_proto_msgTypes[160] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13548,7 +13770,7 @@ func (x *PeerId) ProtoReflect() protoreflect.Message { // Deprecated: Use PeerId.ProtoReflect.Descriptor instead. func (*PeerId) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{158} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{160} } func (x *PeerId) GetValue() string { @@ -13571,7 +13793,7 @@ type BannedPeer struct { func (x *BannedPeer) Reset() { *x = BannedPeer{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[159] + mi := &file_v2_concordium_types_proto_msgTypes[161] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13584,7 +13806,7 @@ func (x *BannedPeer) String() string { func (*BannedPeer) ProtoMessage() {} func (x *BannedPeer) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[159] + mi := &file_v2_concordium_types_proto_msgTypes[161] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13597,7 +13819,7 @@ func (x *BannedPeer) ProtoReflect() protoreflect.Message { // Deprecated: Use BannedPeer.ProtoReflect.Descriptor instead. func (*BannedPeer) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{159} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{161} } func (x *BannedPeer) GetIpAddress() *IpAddress { @@ -13620,7 +13842,7 @@ type BannedPeers struct { func (x *BannedPeers) Reset() { *x = BannedPeers{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[160] + mi := &file_v2_concordium_types_proto_msgTypes[162] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13633,7 +13855,7 @@ func (x *BannedPeers) String() string { func (*BannedPeers) ProtoMessage() {} func (x *BannedPeers) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[160] + mi := &file_v2_concordium_types_proto_msgTypes[162] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13646,7 +13868,7 @@ func (x *BannedPeers) ProtoReflect() protoreflect.Message { // Deprecated: Use BannedPeers.ProtoReflect.Descriptor instead. func (*BannedPeers) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{160} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{162} } func (x *BannedPeers) GetPeers() []*BannedPeer { @@ -13670,7 +13892,7 @@ type PeerToBan struct { func (x *PeerToBan) Reset() { *x = PeerToBan{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[161] + mi := &file_v2_concordium_types_proto_msgTypes[163] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13683,7 +13905,7 @@ func (x *PeerToBan) String() string { func (*PeerToBan) ProtoMessage() {} func (x *PeerToBan) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[161] + mi := &file_v2_concordium_types_proto_msgTypes[163] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13696,7 +13918,7 @@ func (x *PeerToBan) ProtoReflect() protoreflect.Message { // Deprecated: Use PeerToBan.ProtoReflect.Descriptor instead. func (*PeerToBan) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{161} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{163} } func (x *PeerToBan) GetIpAddress() *IpAddress { @@ -13722,7 +13944,7 @@ type DumpRequest struct { func (x *DumpRequest) Reset() { *x = DumpRequest{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[162] + mi := &file_v2_concordium_types_proto_msgTypes[164] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13735,7 +13957,7 @@ func (x *DumpRequest) String() string { func (*DumpRequest) ProtoMessage() {} func (x *DumpRequest) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[162] + mi := &file_v2_concordium_types_proto_msgTypes[164] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13748,7 +13970,7 @@ func (x *DumpRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DumpRequest.ProtoReflect.Descriptor instead. func (*DumpRequest) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{162} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{164} } func (x *DumpRequest) GetFile() string { @@ -13777,7 +13999,7 @@ type PeersInfo struct { func (x *PeersInfo) Reset() { *x = PeersInfo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[163] + mi := &file_v2_concordium_types_proto_msgTypes[165] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13790,7 +14012,7 @@ func (x *PeersInfo) String() string { func (*PeersInfo) ProtoMessage() {} func (x *PeersInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[163] + mi := &file_v2_concordium_types_proto_msgTypes[165] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13803,7 +14025,7 @@ func (x *PeersInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PeersInfo.ProtoReflect.Descriptor instead. func (*PeersInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{163} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{165} } func (x *PeersInfo) GetPeers() []*PeersInfo_Peer { @@ -13833,6 +14055,7 @@ type NodeInfo struct { // Details of the node. // // Types that are assignable to Details: + // // *NodeInfo_Bootstrapper // *NodeInfo_Node_ Details isNodeInfo_Details `protobuf_oneof:"details"` @@ -13841,7 +14064,7 @@ type NodeInfo struct { func (x *NodeInfo) Reset() { *x = NodeInfo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[164] + mi := &file_v2_concordium_types_proto_msgTypes[166] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13854,7 +14077,7 @@ func (x *NodeInfo) String() string { func (*NodeInfo) ProtoMessage() {} func (x *NodeInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[164] + mi := &file_v2_concordium_types_proto_msgTypes[166] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13867,7 +14090,7 @@ func (x *NodeInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use NodeInfo.ProtoReflect.Descriptor instead. func (*NodeInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{164} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{166} } func (x *NodeInfo) GetPeerVersion() string { @@ -13944,6 +14167,7 @@ type SendBlockItemRequest struct { unknownFields protoimpl.UnknownFields // Types that are assignable to BlockItem: + // // *SendBlockItemRequest_AccountTransaction // *SendBlockItemRequest_CredentialDeployment // *SendBlockItemRequest_UpdateInstruction @@ -13953,7 +14177,7 @@ type SendBlockItemRequest struct { func (x *SendBlockItemRequest) Reset() { *x = SendBlockItemRequest{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[165] + mi := &file_v2_concordium_types_proto_msgTypes[167] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13966,7 +14190,7 @@ func (x *SendBlockItemRequest) String() string { func (*SendBlockItemRequest) ProtoMessage() {} func (x *SendBlockItemRequest) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[165] + mi := &file_v2_concordium_types_proto_msgTypes[167] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13979,7 +14203,7 @@ func (x *SendBlockItemRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SendBlockItemRequest.ProtoReflect.Descriptor instead. func (*SendBlockItemRequest) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{165} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{167} } func (m *SendBlockItemRequest) GetBlockItem() isSendBlockItemRequest_BlockItem { @@ -14050,6 +14274,7 @@ type CredentialDeployment struct { // The credential to be added. // // Types that are assignable to Payload: + // // *CredentialDeployment_RawPayload Payload isCredentialDeployment_Payload `protobuf_oneof:"payload"` } @@ -14057,7 +14282,7 @@ type CredentialDeployment struct { func (x *CredentialDeployment) Reset() { *x = CredentialDeployment{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[166] + mi := &file_v2_concordium_types_proto_msgTypes[168] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14070,7 +14295,7 @@ func (x *CredentialDeployment) String() string { func (*CredentialDeployment) ProtoMessage() {} func (x *CredentialDeployment) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[166] + mi := &file_v2_concordium_types_proto_msgTypes[168] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14083,7 +14308,7 @@ func (x *CredentialDeployment) ProtoReflect() protoreflect.Message { // Deprecated: Use CredentialDeployment.ProtoReflect.Descriptor instead. func (*CredentialDeployment) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{166} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{168} } func (x *CredentialDeployment) GetMessageExpiry() *TransactionTime { @@ -14132,7 +14357,7 @@ type Signature struct { func (x *Signature) Reset() { *x = Signature{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[167] + mi := &file_v2_concordium_types_proto_msgTypes[169] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14145,7 +14370,7 @@ func (x *Signature) String() string { func (*Signature) ProtoMessage() {} func (x *Signature) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[167] + mi := &file_v2_concordium_types_proto_msgTypes[169] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14158,7 +14383,7 @@ func (x *Signature) ProtoReflect() protoreflect.Message { // Deprecated: Use Signature.ProtoReflect.Descriptor instead. func (*Signature) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{167} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{169} } func (x *Signature) GetValue() []byte { @@ -14168,8 +14393,8 @@ func (x *Signature) GetValue() []byte { return nil } -// Wrapper for a map from indexes to signatures. -// Needed because protobuf doesn't allow nested maps directly. +// A signature on an update instruction. +// The type `UpdateKeysIndex` is not used directly, as messages cannot be keys in maps. type SignatureMap struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -14181,7 +14406,7 @@ type SignatureMap struct { func (x *SignatureMap) Reset() { *x = SignatureMap{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[168] + mi := &file_v2_concordium_types_proto_msgTypes[170] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14194,7 +14419,7 @@ func (x *SignatureMap) String() string { func (*SignatureMap) ProtoMessage() {} func (x *SignatureMap) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[168] + mi := &file_v2_concordium_types_proto_msgTypes[170] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14207,7 +14432,7 @@ func (x *SignatureMap) ProtoReflect() protoreflect.Message { // Deprecated: Use SignatureMap.ProtoReflect.Descriptor instead. func (*SignatureMap) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{168} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{170} } func (x *SignatureMap) GetSignatures() map[uint32]*Signature { @@ -14231,7 +14456,7 @@ type AccountSignatureMap struct { func (x *AccountSignatureMap) Reset() { *x = AccountSignatureMap{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[169] + mi := &file_v2_concordium_types_proto_msgTypes[171] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14244,7 +14469,7 @@ func (x *AccountSignatureMap) String() string { func (*AccountSignatureMap) ProtoMessage() {} func (x *AccountSignatureMap) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[169] + mi := &file_v2_concordium_types_proto_msgTypes[171] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14257,7 +14482,7 @@ func (x *AccountSignatureMap) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountSignatureMap.ProtoReflect.Descriptor instead. func (*AccountSignatureMap) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{169} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{171} } func (x *AccountSignatureMap) GetSignatures() map[uint32]*Signature { @@ -14281,7 +14506,7 @@ type AccountTransactionSignature struct { func (x *AccountTransactionSignature) Reset() { *x = AccountTransactionSignature{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[170] + mi := &file_v2_concordium_types_proto_msgTypes[172] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14294,7 +14519,7 @@ func (x *AccountTransactionSignature) String() string { func (*AccountTransactionSignature) ProtoMessage() {} func (x *AccountTransactionSignature) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[170] + mi := &file_v2_concordium_types_proto_msgTypes[172] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14307,7 +14532,7 @@ func (x *AccountTransactionSignature) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountTransactionSignature.ProtoReflect.Descriptor instead. func (*AccountTransactionSignature) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{170} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{172} } func (x *AccountTransactionSignature) GetSignatures() map[uint32]*AccountSignatureMap { @@ -14328,7 +14553,7 @@ type AccountTransactionHeader struct { Sender *AccountAddress `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` // Sequence number of the transaction. SequenceNumber *SequenceNumber `protobuf:"bytes,2,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` - // Maximum amount of nergy the transaction can take to execute. + // Maximum amount of energy the transaction can take to execute. EnergyAmount *Energy `protobuf:"bytes,3,opt,name=energy_amount,json=energyAmount,proto3" json:"energy_amount,omitempty"` // Latest time the transaction can included in a block. Expiry *TransactionTime `protobuf:"bytes,5,opt,name=expiry,proto3" json:"expiry,omitempty"` @@ -14337,7 +14562,7 @@ type AccountTransactionHeader struct { func (x *AccountTransactionHeader) Reset() { *x = AccountTransactionHeader{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[171] + mi := &file_v2_concordium_types_proto_msgTypes[173] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14350,7 +14575,7 @@ func (x *AccountTransactionHeader) String() string { func (*AccountTransactionHeader) ProtoMessage() {} func (x *AccountTransactionHeader) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[171] + mi := &file_v2_concordium_types_proto_msgTypes[173] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14363,7 +14588,7 @@ func (x *AccountTransactionHeader) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountTransactionHeader.ProtoReflect.Descriptor instead. func (*AccountTransactionHeader) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{171} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{173} } func (x *AccountTransactionHeader) GetSender() *AccountAddress { @@ -14414,7 +14639,7 @@ type InitContractPayload struct { func (x *InitContractPayload) Reset() { *x = InitContractPayload{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[172] + mi := &file_v2_concordium_types_proto_msgTypes[174] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14427,7 +14652,7 @@ func (x *InitContractPayload) String() string { func (*InitContractPayload) ProtoMessage() {} func (x *InitContractPayload) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[172] + mi := &file_v2_concordium_types_proto_msgTypes[174] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14440,7 +14665,7 @@ func (x *InitContractPayload) ProtoReflect() protoreflect.Message { // Deprecated: Use InitContractPayload.ProtoReflect.Descriptor instead. func (*InitContractPayload) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{172} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{174} } func (x *InitContractPayload) GetAmount() *Amount { @@ -14491,7 +14716,7 @@ type UpdateContractPayload struct { func (x *UpdateContractPayload) Reset() { *x = UpdateContractPayload{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[173] + mi := &file_v2_concordium_types_proto_msgTypes[175] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14504,7 +14729,7 @@ func (x *UpdateContractPayload) String() string { func (*UpdateContractPayload) ProtoMessage() {} func (x *UpdateContractPayload) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[173] + mi := &file_v2_concordium_types_proto_msgTypes[175] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14517,7 +14742,7 @@ func (x *UpdateContractPayload) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateContractPayload.ProtoReflect.Descriptor instead. func (*UpdateContractPayload) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{173} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{175} } func (x *UpdateContractPayload) GetAmount() *Amount { @@ -14563,7 +14788,7 @@ type TransferPayload struct { func (x *TransferPayload) Reset() { *x = TransferPayload{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[174] + mi := &file_v2_concordium_types_proto_msgTypes[176] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14576,7 +14801,7 @@ func (x *TransferPayload) String() string { func (*TransferPayload) ProtoMessage() {} func (x *TransferPayload) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[174] + mi := &file_v2_concordium_types_proto_msgTypes[176] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14589,7 +14814,7 @@ func (x *TransferPayload) ProtoReflect() protoreflect.Message { // Deprecated: Use TransferPayload.ProtoReflect.Descriptor instead. func (*TransferPayload) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{174} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{176} } func (x *TransferPayload) GetAmount() *Amount { @@ -14623,7 +14848,7 @@ type TransferWithMemoPayload struct { func (x *TransferWithMemoPayload) Reset() { *x = TransferWithMemoPayload{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[175] + mi := &file_v2_concordium_types_proto_msgTypes[177] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14636,7 +14861,7 @@ func (x *TransferWithMemoPayload) String() string { func (*TransferWithMemoPayload) ProtoMessage() {} func (x *TransferWithMemoPayload) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[175] + mi := &file_v2_concordium_types_proto_msgTypes[177] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14649,7 +14874,7 @@ func (x *TransferWithMemoPayload) ProtoReflect() protoreflect.Message { // Deprecated: Use TransferWithMemoPayload.ProtoReflect.Descriptor instead. func (*TransferWithMemoPayload) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{175} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{177} } func (x *TransferWithMemoPayload) GetAmount() *Amount { @@ -14680,6 +14905,7 @@ type AccountTransactionPayload struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Payload: + // // *AccountTransactionPayload_RawPayload // *AccountTransactionPayload_DeployModule // *AccountTransactionPayload_InitContract @@ -14693,7 +14919,7 @@ type AccountTransactionPayload struct { func (x *AccountTransactionPayload) Reset() { *x = AccountTransactionPayload{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[176] + mi := &file_v2_concordium_types_proto_msgTypes[178] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14706,7 +14932,7 @@ func (x *AccountTransactionPayload) String() string { func (*AccountTransactionPayload) ProtoMessage() {} func (x *AccountTransactionPayload) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[176] + mi := &file_v2_concordium_types_proto_msgTypes[178] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14719,7 +14945,7 @@ func (x *AccountTransactionPayload) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountTransactionPayload.ProtoReflect.Descriptor instead. func (*AccountTransactionPayload) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{176} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{178} } func (m *AccountTransactionPayload) GetPayload() isAccountTransactionPayload_Payload { @@ -14841,7 +15067,7 @@ type PreAccountTransaction struct { func (x *PreAccountTransaction) Reset() { *x = PreAccountTransaction{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[177] + mi := &file_v2_concordium_types_proto_msgTypes[179] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14854,7 +15080,7 @@ func (x *PreAccountTransaction) String() string { func (*PreAccountTransaction) ProtoMessage() {} func (x *PreAccountTransaction) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[177] + mi := &file_v2_concordium_types_proto_msgTypes[179] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14867,7 +15093,7 @@ func (x *PreAccountTransaction) ProtoReflect() protoreflect.Message { // Deprecated: Use PreAccountTransaction.ProtoReflect.Descriptor instead. func (*PreAccountTransaction) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{177} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{179} } func (x *PreAccountTransaction) GetHeader() *AccountTransactionHeader { @@ -14899,7 +15125,7 @@ type AccountTransaction struct { func (x *AccountTransaction) Reset() { *x = AccountTransaction{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[178] + mi := &file_v2_concordium_types_proto_msgTypes[180] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14912,7 +15138,7 @@ func (x *AccountTransaction) String() string { func (*AccountTransaction) ProtoMessage() {} func (x *AccountTransaction) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[178] + mi := &file_v2_concordium_types_proto_msgTypes[180] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14925,7 +15151,7 @@ func (x *AccountTransaction) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountTransaction.ProtoReflect.Descriptor instead. func (*AccountTransaction) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{178} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{180} } func (x *AccountTransaction) GetSignature() *AccountTransactionSignature { @@ -14949,55 +15175,6 @@ func (x *AccountTransaction) GetPayload() *AccountTransactionPayload { return nil } -type UpdateInstructionSignature struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // A map from `UpdateKeysIndex` to `Signature`. - // The type `UpdateKeysIndex`is not used directly, as messages cannot be keys in maps. - Signatures map[uint32]*Signature `protobuf:"bytes,1,rep,name=signatures,proto3" json:"signatures,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` -} - -func (x *UpdateInstructionSignature) Reset() { - *x = UpdateInstructionSignature{} - if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[179] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UpdateInstructionSignature) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateInstructionSignature) ProtoMessage() {} - -func (x *UpdateInstructionSignature) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[179] - 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 UpdateInstructionSignature.ProtoReflect.Descriptor instead. -func (*UpdateInstructionSignature) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{179} -} - -func (x *UpdateInstructionSignature) GetSignatures() map[uint32]*Signature { - if x != nil { - return x.Signatures - } - return nil -} - type UpdateInstructionHeader struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -15011,7 +15188,7 @@ type UpdateInstructionHeader struct { func (x *UpdateInstructionHeader) Reset() { *x = UpdateInstructionHeader{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[180] + mi := &file_v2_concordium_types_proto_msgTypes[181] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15024,7 +15201,7 @@ func (x *UpdateInstructionHeader) String() string { func (*UpdateInstructionHeader) ProtoMessage() {} func (x *UpdateInstructionHeader) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[180] + mi := &file_v2_concordium_types_proto_msgTypes[181] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15037,7 +15214,7 @@ func (x *UpdateInstructionHeader) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateInstructionHeader.ProtoReflect.Descriptor instead. func (*UpdateInstructionHeader) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{180} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{181} } func (x *UpdateInstructionHeader) GetSequenceNumber() *UpdateSequenceNumber { @@ -15068,6 +15245,7 @@ type UpdateInstructionPayload struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Payload: + // // *UpdateInstructionPayload_RawPayload Payload isUpdateInstructionPayload_Payload `protobuf_oneof:"payload"` } @@ -15075,7 +15253,7 @@ type UpdateInstructionPayload struct { func (x *UpdateInstructionPayload) Reset() { *x = UpdateInstructionPayload{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[181] + mi := &file_v2_concordium_types_proto_msgTypes[182] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15088,7 +15266,7 @@ func (x *UpdateInstructionPayload) String() string { func (*UpdateInstructionPayload) ProtoMessage() {} func (x *UpdateInstructionPayload) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[181] + mi := &file_v2_concordium_types_proto_msgTypes[182] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15101,7 +15279,7 @@ func (x *UpdateInstructionPayload) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateInstructionPayload.ProtoReflect.Descriptor instead. func (*UpdateInstructionPayload) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{181} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{182} } func (m *UpdateInstructionPayload) GetPayload() isUpdateInstructionPayload_Payload { @@ -15143,7 +15321,7 @@ type UpdateInstruction struct { func (x *UpdateInstruction) Reset() { *x = UpdateInstruction{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[182] + mi := &file_v2_concordium_types_proto_msgTypes[183] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15156,7 +15334,7 @@ func (x *UpdateInstruction) String() string { func (*UpdateInstruction) ProtoMessage() {} func (x *UpdateInstruction) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[182] + mi := &file_v2_concordium_types_proto_msgTypes[183] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15169,7 +15347,7 @@ func (x *UpdateInstruction) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateInstruction.ProtoReflect.Descriptor instead. func (*UpdateInstruction) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{182} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{183} } func (x *UpdateInstruction) GetSignatures() *SignatureMap { @@ -15206,7 +15384,7 @@ type AccountTransactionSignHash struct { func (x *AccountTransactionSignHash) Reset() { *x = AccountTransactionSignHash{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[183] + mi := &file_v2_concordium_types_proto_msgTypes[184] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15219,7 +15397,7 @@ func (x *AccountTransactionSignHash) String() string { func (*AccountTransactionSignHash) ProtoMessage() {} func (x *AccountTransactionSignHash) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[183] + mi := &file_v2_concordium_types_proto_msgTypes[184] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15232,7 +15410,7 @@ func (x *AccountTransactionSignHash) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountTransactionSignHash.ProtoReflect.Descriptor instead. func (*AccountTransactionSignHash) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{183} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{184} } func (x *AccountTransactionSignHash) GetValue() []byte { @@ -15255,7 +15433,7 @@ type CredentialsPerBlockLimit struct { func (x *CredentialsPerBlockLimit) Reset() { *x = CredentialsPerBlockLimit{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[184] + mi := &file_v2_concordium_types_proto_msgTypes[185] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15268,7 +15446,7 @@ func (x *CredentialsPerBlockLimit) String() string { func (*CredentialsPerBlockLimit) ProtoMessage() {} func (x *CredentialsPerBlockLimit) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[184] + mi := &file_v2_concordium_types_proto_msgTypes[185] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15281,7 +15459,7 @@ func (x *CredentialsPerBlockLimit) ProtoReflect() protoreflect.Message { // Deprecated: Use CredentialsPerBlockLimit.ProtoReflect.Descriptor instead. func (*CredentialsPerBlockLimit) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{184} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{185} } func (x *CredentialsPerBlockLimit) GetValue() uint32 { @@ -15329,7 +15507,7 @@ type ChainParametersV0 struct { func (x *ChainParametersV0) Reset() { *x = ChainParametersV0{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[185] + mi := &file_v2_concordium_types_proto_msgTypes[186] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15342,7 +15520,7 @@ func (x *ChainParametersV0) String() string { func (*ChainParametersV0) ProtoMessage() {} func (x *ChainParametersV0) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[185] + mi := &file_v2_concordium_types_proto_msgTypes[186] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15355,7 +15533,7 @@ func (x *ChainParametersV0) ProtoReflect() protoreflect.Message { // Deprecated: Use ChainParametersV0.ProtoReflect.Descriptor instead. func (*ChainParametersV0) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{185} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{186} } func (x *ChainParametersV0) GetElectionDifficulty() *ElectionDifficulty { @@ -15491,7 +15669,7 @@ type ChainParametersV1 struct { func (x *ChainParametersV1) Reset() { *x = ChainParametersV1{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[186] + mi := &file_v2_concordium_types_proto_msgTypes[187] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15504,7 +15682,7 @@ func (x *ChainParametersV1) String() string { func (*ChainParametersV1) ProtoMessage() {} func (x *ChainParametersV1) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[186] + mi := &file_v2_concordium_types_proto_msgTypes[187] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15517,7 +15695,7 @@ func (x *ChainParametersV1) ProtoReflect() protoreflect.Message { // Deprecated: Use ChainParametersV1.ProtoReflect.Descriptor instead. func (*ChainParametersV1) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{186} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{187} } func (x *ChainParametersV1) GetElectionDifficulty() *ElectionDifficulty { @@ -15662,7 +15840,7 @@ type ChainParametersV2 struct { func (x *ChainParametersV2) Reset() { *x = ChainParametersV2{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[187] + mi := &file_v2_concordium_types_proto_msgTypes[188] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15675,7 +15853,7 @@ func (x *ChainParametersV2) String() string { func (*ChainParametersV2) ProtoMessage() {} func (x *ChainParametersV2) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[187] + mi := &file_v2_concordium_types_proto_msgTypes[188] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15688,7 +15866,7 @@ func (x *ChainParametersV2) ProtoReflect() protoreflect.Message { // Deprecated: Use ChainParametersV2.ProtoReflect.Descriptor instead. func (*ChainParametersV2) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{187} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{188} } func (x *ChainParametersV2) GetConsensusParameters() *ConsensusParametersV1 { @@ -15803,6 +15981,7 @@ type ChainParameters struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Parameters: + // // *ChainParameters_V0 // *ChainParameters_V1 // *ChainParameters_V2 @@ -15812,7 +15991,7 @@ type ChainParameters struct { func (x *ChainParameters) Reset() { *x = ChainParameters{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[188] + mi := &file_v2_concordium_types_proto_msgTypes[189] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15825,7 +16004,7 @@ func (x *ChainParameters) String() string { func (*ChainParameters) ProtoMessage() {} func (x *ChainParameters) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[188] + mi := &file_v2_concordium_types_proto_msgTypes[189] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15838,7 +16017,7 @@ func (x *ChainParameters) ProtoReflect() protoreflect.Message { // Deprecated: Use ChainParameters.ProtoReflect.Descriptor instead. func (*ChainParameters) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{188} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{189} } func (m *ChainParameters) GetParameters() isChainParameters_Parameters { @@ -15911,7 +16090,7 @@ type FinalizationSummaryParty struct { func (x *FinalizationSummaryParty) Reset() { *x = FinalizationSummaryParty{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[189] + mi := &file_v2_concordium_types_proto_msgTypes[190] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15924,7 +16103,7 @@ func (x *FinalizationSummaryParty) String() string { func (*FinalizationSummaryParty) ProtoMessage() {} func (x *FinalizationSummaryParty) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[189] + mi := &file_v2_concordium_types_proto_msgTypes[190] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15937,7 +16116,7 @@ func (x *FinalizationSummaryParty) ProtoReflect() protoreflect.Message { // Deprecated: Use FinalizationSummaryParty.ProtoReflect.Descriptor instead. func (*FinalizationSummaryParty) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{189} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{190} } func (x *FinalizationSummaryParty) GetBaker() *BakerId { @@ -15974,7 +16153,7 @@ type FinalizationIndex struct { func (x *FinalizationIndex) Reset() { *x = FinalizationIndex{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[190] + mi := &file_v2_concordium_types_proto_msgTypes[191] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15987,7 +16166,7 @@ func (x *FinalizationIndex) String() string { func (*FinalizationIndex) ProtoMessage() {} func (x *FinalizationIndex) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[190] + mi := &file_v2_concordium_types_proto_msgTypes[191] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16000,7 +16179,7 @@ func (x *FinalizationIndex) ProtoReflect() protoreflect.Message { // Deprecated: Use FinalizationIndex.ProtoReflect.Descriptor instead. func (*FinalizationIndex) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{190} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{191} } func (x *FinalizationIndex) GetValue() uint64 { @@ -16030,7 +16209,7 @@ type FinalizationSummary struct { func (x *FinalizationSummary) Reset() { *x = FinalizationSummary{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[191] + mi := &file_v2_concordium_types_proto_msgTypes[192] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16043,7 +16222,7 @@ func (x *FinalizationSummary) String() string { func (*FinalizationSummary) ProtoMessage() {} func (x *FinalizationSummary) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[191] + mi := &file_v2_concordium_types_proto_msgTypes[192] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16056,7 +16235,7 @@ func (x *FinalizationSummary) ProtoReflect() protoreflect.Message { // Deprecated: Use FinalizationSummary.ProtoReflect.Descriptor instead. func (*FinalizationSummary) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{191} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{192} } func (x *FinalizationSummary) GetBlock() *BlockHash { @@ -16094,6 +16273,7 @@ type BlockFinalizationSummary struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Summary: + // // *BlockFinalizationSummary_None // *BlockFinalizationSummary_Record Summary isBlockFinalizationSummary_Summary `protobuf_oneof:"summary"` @@ -16102,7 +16282,7 @@ type BlockFinalizationSummary struct { func (x *BlockFinalizationSummary) Reset() { *x = BlockFinalizationSummary{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[192] + mi := &file_v2_concordium_types_proto_msgTypes[193] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16115,7 +16295,7 @@ func (x *BlockFinalizationSummary) String() string { func (*BlockFinalizationSummary) ProtoMessage() {} func (x *BlockFinalizationSummary) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[192] + mi := &file_v2_concordium_types_proto_msgTypes[193] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16128,7 +16308,7 @@ func (x *BlockFinalizationSummary) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockFinalizationSummary.ProtoReflect.Descriptor instead. func (*BlockFinalizationSummary) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{192} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{193} } func (m *BlockFinalizationSummary) GetSummary() isBlockFinalizationSummary_Summary { @@ -16178,6 +16358,7 @@ type BlockItem struct { // The hash of the block item that identifies it to the chain. Hash *TransactionHash `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` // Types that are assignable to BlockItem: + // // *BlockItem_AccountTransaction // *BlockItem_CredentialDeployment // *BlockItem_UpdateInstruction @@ -16187,7 +16368,7 @@ type BlockItem struct { func (x *BlockItem) Reset() { *x = BlockItem{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[193] + mi := &file_v2_concordium_types_proto_msgTypes[194] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16200,7 +16381,7 @@ func (x *BlockItem) String() string { func (*BlockItem) ProtoMessage() {} func (x *BlockItem) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[193] + mi := &file_v2_concordium_types_proto_msgTypes[194] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16213,7 +16394,7 @@ func (x *BlockItem) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockItem.ProtoReflect.Descriptor instead. func (*BlockItem) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{193} + return file_v2_concordium_types_proto_rawDescGZIP(), []int{194} } func (x *BlockItem) GetHash() *TransactionHash { @@ -16279,32 +16460,45 @@ func (*BlockItem_CredentialDeployment) isBlockItem_BlockItem() {} func (*BlockItem_UpdateInstruction) isBlockItem_BlockItem() {} -// Source bytes of a smart contract v0 module. -type VersionedModuleSource_ModuleSourceV0 struct { +// Information about a particular baker with respect to +// the current reward period. +type BakerRewardPeriodInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + // The baker id and public keys for the baker. + Baker *BakerInfo `protobuf:"bytes,1,opt,name=baker,proto3" json:"baker,omitempty"` + // The effective stake of the baker for the consensus protocol. + // The returned amount accounts for delegation, capital bounds and leverage bounds. + EffectiveStake *Amount `protobuf:"bytes,2,opt,name=effective_stake,json=effectiveStake,proto3" json:"effective_stake,omitempty"` + // The effective commission rate for the baker that applies for the reward period. + CommissionRates *CommissionRates `protobuf:"bytes,3,opt,name=commission_rates,json=commissionRates,proto3" json:"commission_rates,omitempty"` + // The amount staked by the baker itself. + EquityCapital *Amount `protobuf:"bytes,4,opt,name=equity_capital,json=equityCapital,proto3" json:"equity_capital,omitempty"` + // The total amount of capital delegated to this baker pool. + DelegatedCapital *Amount `protobuf:"bytes,5,opt,name=delegated_capital,json=delegatedCapital,proto3" json:"delegated_capital,omitempty"` + // Whether the baker is a finalizer or not. + IsFinalizer bool `protobuf:"varint,6,opt,name=is_finalizer,json=isFinalizer,proto3" json:"is_finalizer,omitempty"` } -func (x *VersionedModuleSource_ModuleSourceV0) Reset() { - *x = VersionedModuleSource_ModuleSourceV0{} +func (x *BakerRewardPeriodInfo) Reset() { + *x = BakerRewardPeriodInfo{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[194] + mi := &file_v2_concordium_types_proto_msgTypes[195] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VersionedModuleSource_ModuleSourceV0) String() string { +func (x *BakerRewardPeriodInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VersionedModuleSource_ModuleSourceV0) ProtoMessage() {} +func (*BakerRewardPeriodInfo) ProtoMessage() {} -func (x *VersionedModuleSource_ModuleSourceV0) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[194] +func (x *BakerRewardPeriodInfo) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[195] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16315,44 +16509,81 @@ func (x *VersionedModuleSource_ModuleSourceV0) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use VersionedModuleSource_ModuleSourceV0.ProtoReflect.Descriptor instead. -func (*VersionedModuleSource_ModuleSourceV0) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{10, 0} +// Deprecated: Use BakerRewardPeriodInfo.ProtoReflect.Descriptor instead. +func (*BakerRewardPeriodInfo) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{195} } -func (x *VersionedModuleSource_ModuleSourceV0) GetValue() []byte { +func (x *BakerRewardPeriodInfo) GetBaker() *BakerInfo { if x != nil { - return x.Value + return x.Baker } return nil } -// Source bytes of a smart contract v1 module. -type VersionedModuleSource_ModuleSourceV1 struct { +func (x *BakerRewardPeriodInfo) GetEffectiveStake() *Amount { + if x != nil { + return x.EffectiveStake + } + return nil +} + +func (x *BakerRewardPeriodInfo) GetCommissionRates() *CommissionRates { + if x != nil { + return x.CommissionRates + } + return nil +} + +func (x *BakerRewardPeriodInfo) GetEquityCapital() *Amount { + if x != nil { + return x.EquityCapital + } + return nil +} + +func (x *BakerRewardPeriodInfo) GetDelegatedCapital() *Amount { + if x != nil { + return x.DelegatedCapital + } + return nil +} + +func (x *BakerRewardPeriodInfo) GetIsFinalizer() bool { + if x != nil { + return x.IsFinalizer + } + return false +} + +// The signature of a 'QuorumCertificate'. +type QuorumSignature struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // The bytes representing the raw aggregate signature. + // The bytes have a fixed length of 48 bytes. Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } -func (x *VersionedModuleSource_ModuleSourceV1) Reset() { - *x = VersionedModuleSource_ModuleSourceV1{} +func (x *QuorumSignature) Reset() { + *x = QuorumSignature{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[195] + mi := &file_v2_concordium_types_proto_msgTypes[196] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VersionedModuleSource_ModuleSourceV1) String() string { +func (x *QuorumSignature) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VersionedModuleSource_ModuleSourceV1) ProtoMessage() {} +func (*QuorumSignature) ProtoMessage() {} -func (x *VersionedModuleSource_ModuleSourceV1) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[195] +func (x *QuorumSignature) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[196] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16363,45 +16594,59 @@ func (x *VersionedModuleSource_ModuleSourceV1) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use VersionedModuleSource_ModuleSourceV1.ProtoReflect.Descriptor instead. -func (*VersionedModuleSource_ModuleSourceV1) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{10, 1} +// Deprecated: Use QuorumSignature.ProtoReflect.Descriptor instead. +func (*QuorumSignature) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{196} } -func (x *VersionedModuleSource_ModuleSourceV1) GetValue() []byte { +func (x *QuorumSignature) GetValue() []byte { if x != nil { return x.Value } return nil } -type StakePendingChange_Reduce struct { +// A quorum certificate is the certificate that the +// finalization comittee issues in order to certify a block. +// A block must be certified before it will be part of the +// authorative part of the chain. +type QuorumCertificate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NewStake *Amount `protobuf:"bytes,1,opt,name=new_stake,json=newStake,proto3" json:"new_stake,omitempty"` - // Unix timestamp in milliseconds when the change takes effect. - EffectiveTime *Timestamp `protobuf:"bytes,2,opt,name=effective_time,json=effectiveTime,proto3" json:"effective_time,omitempty"` + // The hash of the block that the quorum certificate refers to. + BlockHash *BlockHash `protobuf:"bytes,1,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"` + // The round of the block. + Round *Round `protobuf:"bytes,2,opt,name=round,proto3" json:"round,omitempty"` + // The epoch of the block. + Epoch *Epoch `protobuf:"bytes,3,opt,name=epoch,proto3" json:"epoch,omitempty"` + // The aggregated signature by the finalization committee on the block. + AggregateSignature *QuorumSignature `protobuf:"bytes,4,opt,name=aggregate_signature,json=aggregateSignature,proto3" json:"aggregate_signature,omitempty"` + // A list of the finalizers that formed the quorum certificate + // i.e., the ones who have contributed to the 'aggregate_siganture'. + // The finalizers are identified by their baker id as this is stable + // across protocols and epochs. + Signatories []*BakerId `protobuf:"bytes,5,rep,name=signatories,proto3" json:"signatories,omitempty"` } -func (x *StakePendingChange_Reduce) Reset() { - *x = StakePendingChange_Reduce{} +func (x *QuorumCertificate) Reset() { + *x = QuorumCertificate{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[196] + mi := &file_v2_concordium_types_proto_msgTypes[197] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StakePendingChange_Reduce) String() string { +func (x *QuorumCertificate) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StakePendingChange_Reduce) ProtoMessage() {} +func (*QuorumCertificate) ProtoMessage() {} -func (x *StakePendingChange_Reduce) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[196] +func (x *QuorumCertificate) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[197] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16412,61 +16657,78 @@ func (x *StakePendingChange_Reduce) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StakePendingChange_Reduce.ProtoReflect.Descriptor instead. -func (*StakePendingChange_Reduce) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{22, 0} +// Deprecated: Use QuorumCertificate.ProtoReflect.Descriptor instead. +func (*QuorumCertificate) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{197} } -func (x *StakePendingChange_Reduce) GetNewStake() *Amount { +func (x *QuorumCertificate) GetBlockHash() *BlockHash { if x != nil { - return x.NewStake + return x.BlockHash } return nil } -func (x *StakePendingChange_Reduce) GetEffectiveTime() *Timestamp { +func (x *QuorumCertificate) GetRound() *Round { if x != nil { - return x.EffectiveTime + return x.Round } return nil } -type AccountStakingInfo_Baker struct { +func (x *QuorumCertificate) GetEpoch() *Epoch { + if x != nil { + return x.Epoch + } + return nil +} + +func (x *QuorumCertificate) GetAggregateSignature() *QuorumSignature { + if x != nil { + return x.AggregateSignature + } + return nil +} + +func (x *QuorumCertificate) GetSignatories() []*BakerId { + if x != nil { + return x.Signatories + } + return nil +} + +// The finalizer round is a map from a 'Round' +// to the list of finalizers (identified by their 'BakerId') that signed +// off the round. +type FinalizerRound struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Amount staked at present. - StakedAmount *Amount `protobuf:"bytes,1,opt,name=staked_amount,json=stakedAmount,proto3" json:"staked_amount,omitempty"` - // A flag indicating whether rewards paid to the baker are automatically - // restaked or not. - RestakeEarnings bool `protobuf:"varint,2,opt,name=restake_earnings,json=restakeEarnings,proto3" json:"restake_earnings,omitempty"` - // Information about the baker that is staking. - BakerInfo *BakerInfo `protobuf:"bytes,3,opt,name=baker_info,json=bakerInfo,proto3" json:"baker_info,omitempty"` - // If present, any pending change to the delegated stake. - PendingChange *StakePendingChange `protobuf:"bytes,4,opt,name=pending_change,json=pendingChange,proto3,oneof" json:"pending_change,omitempty"` - // Present if the account is currently a baker, i.e., it is in the baking - // committee of the current epoch. - PoolInfo *BakerPoolInfo `protobuf:"bytes,5,opt,name=pool_info,json=poolInfo,proto3,oneof" json:"pool_info,omitempty"` + // The round that was signed off. + Round *Round `protobuf:"bytes,1,opt,name=round,proto3" json:"round,omitempty"` + // The finalizers (identified by their 'BakerId' that + // signed off the in 'round'. + Finalizers []*BakerId `protobuf:"bytes,2,rep,name=finalizers,proto3" json:"finalizers,omitempty"` } -func (x *AccountStakingInfo_Baker) Reset() { - *x = AccountStakingInfo_Baker{} +func (x *FinalizerRound) Reset() { + *x = FinalizerRound{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[197] + mi := &file_v2_concordium_types_proto_msgTypes[198] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AccountStakingInfo_Baker) String() string { +func (x *FinalizerRound) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AccountStakingInfo_Baker) ProtoMessage() {} +func (*FinalizerRound) ProtoMessage() {} -func (x *AccountStakingInfo_Baker) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[197] +func (x *FinalizerRound) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[198] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16477,78 +16739,117 @@ func (x *AccountStakingInfo_Baker) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AccountStakingInfo_Baker.ProtoReflect.Descriptor instead. -func (*AccountStakingInfo_Baker) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{26, 0} +// Deprecated: Use FinalizerRound.ProtoReflect.Descriptor instead. +func (*FinalizerRound) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{198} } -func (x *AccountStakingInfo_Baker) GetStakedAmount() *Amount { +func (x *FinalizerRound) GetRound() *Round { if x != nil { - return x.StakedAmount + return x.Round } return nil } -func (x *AccountStakingInfo_Baker) GetRestakeEarnings() bool { +func (x *FinalizerRound) GetFinalizers() []*BakerId { if x != nil { - return x.RestakeEarnings + return x.Finalizers } - return false + return nil } -func (x *AccountStakingInfo_Baker) GetBakerInfo() *BakerInfo { - if x != nil { - return x.BakerInfo +// The signature of a 'TimeoutCertificate'. +type TimeoutSignature struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The bytes representing the raw aggregate signature. + // The bytes have a fixed length of 48 bytes. + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *TimeoutSignature) Reset() { + *x = TimeoutSignature{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[199] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *AccountStakingInfo_Baker) GetPendingChange() *StakePendingChange { - if x != nil { - return x.PendingChange +func (x *TimeoutSignature) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TimeoutSignature) ProtoMessage() {} + +func (x *TimeoutSignature) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[199] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *AccountStakingInfo_Baker) GetPoolInfo() *BakerPoolInfo { +// Deprecated: Use TimeoutSignature.ProtoReflect.Descriptor instead. +func (*TimeoutSignature) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{199} +} + +func (x *TimeoutSignature) GetValue() []byte { if x != nil { - return x.PoolInfo + return x.Value } return nil } -type AccountStakingInfo_Delegator struct { +// A timeout certificate is the certificate that the +// finalization committee issues when a round times out, +// thus making it possible for the protocol to proceed to the +// next round. +type TimeoutCertificate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The amount that the account delegates. - StakedAmount *Amount `protobuf:"bytes,1,opt,name=staked_amount,json=stakedAmount,proto3" json:"staked_amount,omitempty"` - // Whether the earnings are automatically added to the staked amount. - RestakeEarnings bool `protobuf:"varint,2,opt,name=restake_earnings,json=restakeEarnings,proto3" json:"restake_earnings,omitempty"` - // The entity to which the account delegates. - Target *DelegationTarget `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"` - // If present, any pending change to the delegated stake. - PendingChange *StakePendingChange `protobuf:"bytes,4,opt,name=pending_change,json=pendingChange,proto3,oneof" json:"pending_change,omitempty"` + // The round that timed out. + Round *Round `protobuf:"bytes,1,opt,name=round,proto3" json:"round,omitempty"` + // The minimum epoch of which signatures are included + // in the 'aggregate_signature'. + MinEpoch *Epoch `protobuf:"bytes,2,opt,name=min_epoch,json=minEpoch,proto3" json:"min_epoch,omitempty"` + // The rounds of which finalizers have their best + // QCs in the 'min_epoch'. + QcRoundsFirstEpoch []*FinalizerRound `protobuf:"bytes,3,rep,name=qc_rounds_first_epoch,json=qcRoundsFirstEpoch,proto3" json:"qc_rounds_first_epoch,omitempty"` + // The rounds of which finalizers have their best + // QCs in the epoch 'min_epoch' + 1. + QcRoundsSecondEpoch []*FinalizerRound `protobuf:"bytes,4,rep,name=qc_rounds_second_epoch,json=qcRoundsSecondEpoch,proto3" json:"qc_rounds_second_epoch,omitempty"` + // The aggregated signature by the finalization committee that witnessed + // the 'round' timed out. + AggregateSignature *TimeoutSignature `protobuf:"bytes,5,opt,name=aggregate_signature,json=aggregateSignature,proto3" json:"aggregate_signature,omitempty"` } -func (x *AccountStakingInfo_Delegator) Reset() { - *x = AccountStakingInfo_Delegator{} +func (x *TimeoutCertificate) Reset() { + *x = TimeoutCertificate{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[198] + mi := &file_v2_concordium_types_proto_msgTypes[200] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AccountStakingInfo_Delegator) String() string { +func (x *TimeoutCertificate) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AccountStakingInfo_Delegator) ProtoMessage() {} +func (*TimeoutCertificate) ProtoMessage() {} -func (x *AccountStakingInfo_Delegator) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[198] +func (x *TimeoutCertificate) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[200] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16559,71 +16860,76 @@ func (x *AccountStakingInfo_Delegator) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AccountStakingInfo_Delegator.ProtoReflect.Descriptor instead. -func (*AccountStakingInfo_Delegator) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{26, 1} +// Deprecated: Use TimeoutCertificate.ProtoReflect.Descriptor instead. +func (*TimeoutCertificate) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{200} } -func (x *AccountStakingInfo_Delegator) GetStakedAmount() *Amount { +func (x *TimeoutCertificate) GetRound() *Round { if x != nil { - return x.StakedAmount + return x.Round } return nil } -func (x *AccountStakingInfo_Delegator) GetRestakeEarnings() bool { +func (x *TimeoutCertificate) GetMinEpoch() *Epoch { if x != nil { - return x.RestakeEarnings + return x.MinEpoch } - return false + return nil } -func (x *AccountStakingInfo_Delegator) GetTarget() *DelegationTarget { +func (x *TimeoutCertificate) GetQcRoundsFirstEpoch() []*FinalizerRound { if x != nil { - return x.Target + return x.QcRoundsFirstEpoch } return nil } -func (x *AccountStakingInfo_Delegator) GetPendingChange() *StakePendingChange { +func (x *TimeoutCertificate) GetQcRoundsSecondEpoch() []*FinalizerRound { if x != nil { - return x.PendingChange + return x.QcRoundsSecondEpoch } return nil } -// Request using a relative block height. -type BlockHashInput_RelativeHeight struct { +func (x *TimeoutCertificate) GetAggregateSignature() *TimeoutSignature { + if x != nil { + return x.AggregateSignature + } + return nil +} + +// A proof that establishes that the successor block of +// a 'EpochFinalizationEntry' is the immediate successor of +// the finalized block. +type SuccessorProof struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Genesis index to start from. - GenesisIndex *GenesisIndex `protobuf:"bytes,1,opt,name=genesis_index,json=genesisIndex,proto3" json:"genesis_index,omitempty"` - // Height starting from the genesis block at the genesis index. - Height *BlockHeight `protobuf:"bytes,2,opt,name=height,proto3" json:"height,omitempty"` - // Whether to return results only from the specified genesis index (`true`), - // or allow results from more recent genesis indices as well (`false`). - Restrict bool `protobuf:"varint,3,opt,name=restrict,proto3" json:"restrict,omitempty"` + // The proof represented as raw bytes. + // The bytes have a fixed length of 32 bytes. + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } -func (x *BlockHashInput_RelativeHeight) Reset() { - *x = BlockHashInput_RelativeHeight{} +func (x *SuccessorProof) Reset() { + *x = SuccessorProof{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[204] + mi := &file_v2_concordium_types_proto_msgTypes[201] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BlockHashInput_RelativeHeight) String() string { +func (x *SuccessorProof) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BlockHashInput_RelativeHeight) ProtoMessage() {} +func (*SuccessorProof) ProtoMessage() {} -func (x *BlockHashInput_RelativeHeight) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[204] +func (x *SuccessorProof) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[201] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16634,69 +16940,54 @@ func (x *BlockHashInput_RelativeHeight) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BlockHashInput_RelativeHeight.ProtoReflect.Descriptor instead. -func (*BlockHashInput_RelativeHeight) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{50, 0} -} - -func (x *BlockHashInput_RelativeHeight) GetGenesisIndex() *GenesisIndex { - if x != nil { - return x.GenesisIndex - } - return nil +// Deprecated: Use SuccessorProof.ProtoReflect.Descriptor instead. +func (*SuccessorProof) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{201} } -func (x *BlockHashInput_RelativeHeight) GetHeight() *BlockHeight { +func (x *SuccessorProof) GetValue() []byte { if x != nil { - return x.Height + return x.Value } return nil } -func (x *BlockHashInput_RelativeHeight) GetRestrict() bool { - if x != nil { - return x.Restrict - } - return false -} - -// Version 0 smart contract instance information. -type InstanceInfo_V0 struct { +// The epoch finalization entry is the proof that +// makes the protocol able to advance to a new epoch. +// I.e. the 'EpochFinalizationEntry' is present if and only if +// the block is the first block of a new 'Epoch'. +type EpochFinalizationEntry struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The state of the instance. - Model *ContractStateV0 `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"` - // The account address which deployed the instance. - Owner *AccountAddress `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"` - // The amount of CCD tokens in the balance of the instance. - Amount *Amount `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` - // A list of endpoints exposed by the instance. - Methods []*ReceiveName `protobuf:"bytes,4,rep,name=methods,proto3" json:"methods,omitempty"` - // The name of the smart contract of the instance. - Name *InitName `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` - // The module reference for the smart contract module of the instance. - SourceModule *ModuleRef `protobuf:"bytes,6,opt,name=source_module,json=sourceModule,proto3" json:"source_module,omitempty"` + // The quorum certificate for the finalized block. + FinalizedQc *QuorumCertificate `protobuf:"bytes,1,opt,name=finalized_qc,json=finalizedQc,proto3" json:"finalized_qc,omitempty"` + // The quorum certificate for the block that finalizes + // the block that 'finalized_qc' points to. + SuccessorQc *QuorumCertificate `protobuf:"bytes,2,opt,name=successor_qc,json=successorQc,proto3" json:"successor_qc,omitempty"` + // A proof that the successor block is an immediate + // successor of the finalized block. + SuccessorProof *SuccessorProof `protobuf:"bytes,3,opt,name=successor_proof,json=successorProof,proto3" json:"successor_proof,omitempty"` } -func (x *InstanceInfo_V0) Reset() { - *x = InstanceInfo_V0{} +func (x *EpochFinalizationEntry) Reset() { + *x = EpochFinalizationEntry{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[205] + mi := &file_v2_concordium_types_proto_msgTypes[202] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *InstanceInfo_V0) String() string { +func (x *EpochFinalizationEntry) String() string { return protoimpl.X.MessageStringOf(x) } -func (*InstanceInfo_V0) ProtoMessage() {} +func (*EpochFinalizationEntry) ProtoMessage() {} -func (x *InstanceInfo_V0) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[205] +func (x *EpochFinalizationEntry) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[202] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16707,88 +16998,67 @@ func (x *InstanceInfo_V0) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use InstanceInfo_V0.ProtoReflect.Descriptor instead. -func (*InstanceInfo_V0) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{58, 0} -} - -func (x *InstanceInfo_V0) GetModel() *ContractStateV0 { - if x != nil { - return x.Model - } - return nil -} - -func (x *InstanceInfo_V0) GetOwner() *AccountAddress { - if x != nil { - return x.Owner - } - return nil -} - -func (x *InstanceInfo_V0) GetAmount() *Amount { - if x != nil { - return x.Amount - } - return nil +// Deprecated: Use EpochFinalizationEntry.ProtoReflect.Descriptor instead. +func (*EpochFinalizationEntry) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{202} } -func (x *InstanceInfo_V0) GetMethods() []*ReceiveName { +func (x *EpochFinalizationEntry) GetFinalizedQc() *QuorumCertificate { if x != nil { - return x.Methods + return x.FinalizedQc } return nil } -func (x *InstanceInfo_V0) GetName() *InitName { +func (x *EpochFinalizationEntry) GetSuccessorQc() *QuorumCertificate { if x != nil { - return x.Name + return x.SuccessorQc } return nil } -func (x *InstanceInfo_V0) GetSourceModule() *ModuleRef { +func (x *EpochFinalizationEntry) GetSuccessorProof() *SuccessorProof { if x != nil { - return x.SourceModule + return x.SuccessorProof } return nil } -// Version 1 smart contract instance information. -type InstanceInfo_V1 struct { +// Certificates for a block for protocols supporting +// ConcordiumBFT. +type BlockCertificates struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The account address which deployed the instance. - Owner *AccountAddress `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"` - // The amount of CCD tokens in the balance of the instance. - Amount *Amount `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` - // A list of endpoints exposed by the instance. - Methods []*ReceiveName `protobuf:"bytes,4,rep,name=methods,proto3" json:"methods,omitempty"` - // The name of the smart contract of the instance. - Name *InitName `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` - // The module reference for the smart contract module of the instance. - SourceModule *ModuleRef `protobuf:"bytes,6,opt,name=source_module,json=sourceModule,proto3" json:"source_module,omitempty"` + // The quorum certificate. Is present if and only if the block is + // not a genesis block. + QuorumCertificate *QuorumCertificate `protobuf:"bytes,1,opt,name=quorum_certificate,json=quorumCertificate,proto3,oneof" json:"quorum_certificate,omitempty"` + // The timeout certificate. Is present only if the round prior to the + // round of the block timed out. + TimeoutCertificate *TimeoutCertificate `protobuf:"bytes,2,opt,name=timeout_certificate,json=timeoutCertificate,proto3,oneof" json:"timeout_certificate,omitempty"` + // The epoch finalization entry. Is present only if the block initiates + // a new epoch. + EpochFinalizationEntry *EpochFinalizationEntry `protobuf:"bytes,3,opt,name=epoch_finalization_entry,json=epochFinalizationEntry,proto3,oneof" json:"epoch_finalization_entry,omitempty"` } -func (x *InstanceInfo_V1) Reset() { - *x = InstanceInfo_V1{} +func (x *BlockCertificates) Reset() { + *x = BlockCertificates{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[206] + mi := &file_v2_concordium_types_proto_msgTypes[203] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *InstanceInfo_V1) String() string { +func (x *BlockCertificates) String() string { return protoimpl.X.MessageStringOf(x) } -func (*InstanceInfo_V1) ProtoMessage() {} +func (*BlockCertificates) ProtoMessage() {} -func (x *InstanceInfo_V1) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[206] +func (x *BlockCertificates) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[203] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16799,71 +17069,63 @@ func (x *InstanceInfo_V1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use InstanceInfo_V1.ProtoReflect.Descriptor instead. -func (*InstanceInfo_V1) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{58, 1} -} - -func (x *InstanceInfo_V1) GetOwner() *AccountAddress { - if x != nil { - return x.Owner - } - return nil -} - -func (x *InstanceInfo_V1) GetAmount() *Amount { - if x != nil { - return x.Amount - } - return nil +// Deprecated: Use BlockCertificates.ProtoReflect.Descriptor instead. +func (*BlockCertificates) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{203} } -func (x *InstanceInfo_V1) GetMethods() []*ReceiveName { +func (x *BlockCertificates) GetQuorumCertificate() *QuorumCertificate { if x != nil { - return x.Methods + return x.QuorumCertificate } return nil } -func (x *InstanceInfo_V1) GetName() *InitName { +func (x *BlockCertificates) GetTimeoutCertificate() *TimeoutCertificate { if x != nil { - return x.Name + return x.TimeoutCertificate } return nil } -func (x *InstanceInfo_V1) GetSourceModule() *ModuleRef { +func (x *BlockCertificates) GetEpochFinalizationEntry() *EpochFinalizationEntry { if x != nil { - return x.SourceModule + return x.EpochFinalizationEntry } return nil } -type BlockItemStatus_Committed struct { +// Details of which baker won the lottery in a given round in consensus version 1. +type WinningBaker struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Outcomes []*BlockItemSummaryInBlock `protobuf:"bytes,1,rep,name=outcomes,proto3" json:"outcomes,omitempty"` + // The round number. + Round *Round `protobuf:"bytes,1,opt,name=round,proto3" json:"round,omitempty"` + // The baker that won the round. + Winner *BakerId `protobuf:"bytes,2,opt,name=winner,proto3" json:"winner,omitempty"` + // True if the baker produced a block in this round on the finalized chain, and False otherwise. + Present bool `protobuf:"varint,3,opt,name=present,proto3" json:"present,omitempty"` } -func (x *BlockItemStatus_Committed) Reset() { - *x = BlockItemStatus_Committed{} +func (x *WinningBaker) Reset() { + *x = WinningBaker{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[207] + mi := &file_v2_concordium_types_proto_msgTypes[204] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BlockItemStatus_Committed) String() string { +func (x *WinningBaker) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BlockItemStatus_Committed) ProtoMessage() {} +func (*WinningBaker) ProtoMessage() {} -func (x *BlockItemStatus_Committed) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[207] +func (x *WinningBaker) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[204] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16874,43 +17136,65 @@ func (x *BlockItemStatus_Committed) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BlockItemStatus_Committed.ProtoReflect.Descriptor instead. -func (*BlockItemStatus_Committed) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{66, 0} +// Deprecated: Use WinningBaker.ProtoReflect.Descriptor instead. +func (*WinningBaker) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{204} } -func (x *BlockItemStatus_Committed) GetOutcomes() []*BlockItemSummaryInBlock { +func (x *WinningBaker) GetRound() *Round { if x != nil { - return x.Outcomes + return x.Round } return nil } -type BlockItemStatus_Finalized struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Outcome *BlockItemSummaryInBlock `protobuf:"bytes,1,opt,name=outcome,proto3" json:"outcome,omitempty"` +func (x *WinningBaker) GetWinner() *BakerId { + if x != nil { + return x.Winner + } + return nil } -func (x *BlockItemStatus_Finalized) Reset() { - *x = BlockItemStatus_Finalized{} +func (x *WinningBaker) GetPresent() bool { + if x != nil { + return x.Present + } + return false +} + +// An operation to dry run. The first operation in a dry-run sequence should be +// `load_block_state`: any other operation will be met with `NoState` until a +// state is successfully loaded. +type DryRunRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Request: + // + // *DryRunRequest_LoadBlockState + // *DryRunRequest_StateQuery + // *DryRunRequest_StateOperation + Request isDryRunRequest_Request `protobuf_oneof:"request"` +} + +func (x *DryRunRequest) Reset() { + *x = DryRunRequest{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[208] + mi := &file_v2_concordium_types_proto_msgTypes[205] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BlockItemStatus_Finalized) String() string { +func (x *DryRunRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BlockItemStatus_Finalized) ProtoMessage() {} +func (*DryRunRequest) ProtoMessage() {} -func (x *BlockItemStatus_Finalized) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[208] +func (x *DryRunRequest) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[205] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16921,44 +17205,99 @@ func (x *BlockItemStatus_Finalized) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BlockItemStatus_Finalized.ProtoReflect.Descriptor instead. -func (*BlockItemStatus_Finalized) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{66, 1} +// Deprecated: Use DryRunRequest.ProtoReflect.Descriptor instead. +func (*DryRunRequest) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{205} } -func (x *BlockItemStatus_Finalized) GetOutcome() *BlockItemSummaryInBlock { - if x != nil { - return x.Outcome +func (m *DryRunRequest) GetRequest() isDryRunRequest_Request { + if m != nil { + return m.Request } return nil } -type RejectReason_InvalidInitMethod struct { +func (x *DryRunRequest) GetLoadBlockState() *BlockHashInput { + if x, ok := x.GetRequest().(*DryRunRequest_LoadBlockState); ok { + return x.LoadBlockState + } + return nil +} + +func (x *DryRunRequest) GetStateQuery() *DryRunStateQuery { + if x, ok := x.GetRequest().(*DryRunRequest_StateQuery); ok { + return x.StateQuery + } + return nil +} + +func (x *DryRunRequest) GetStateOperation() *DryRunStateOperation { + if x, ok := x.GetRequest().(*DryRunRequest_StateOperation); ok { + return x.StateOperation + } + return nil +} + +type isDryRunRequest_Request interface { + isDryRunRequest_Request() +} + +type DryRunRequest_LoadBlockState struct { + // Load the state of the specified block to use for subsequent requests. + // The state is taken at the end of execution of the block, and the block’s + // timestamp is used as the current timestamp. + // + // The energy cost for this operation is 2000. + LoadBlockState *BlockHashInput `protobuf:"bytes,1,opt,name=load_block_state,json=loadBlockState,proto3,oneof"` +} + +type DryRunRequest_StateQuery struct { + // Run a query on the state. + StateQuery *DryRunStateQuery `protobuf:"bytes,2,opt,name=state_query,json=stateQuery,proto3,oneof"` +} + +type DryRunRequest_StateOperation struct { + // Run a (non-transaction) operation to modify the state. + StateOperation *DryRunStateOperation `protobuf:"bytes,3,opt,name=state_operation,json=stateOperation,proto3,oneof"` +} + +func (*DryRunRequest_LoadBlockState) isDryRunRequest_Request() {} + +func (*DryRunRequest_StateQuery) isDryRunRequest_Request() {} + +func (*DryRunRequest_StateOperation) isDryRunRequest_Request() {} + +// Run a query as part of a dry run. Queries do not update the block state. +type DryRunStateQuery struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ModuleRef *ModuleRef `protobuf:"bytes,1,opt,name=module_ref,json=moduleRef,proto3" json:"module_ref,omitempty"` - InitName *InitName `protobuf:"bytes,2,opt,name=init_name,json=initName,proto3" json:"init_name,omitempty"` + // Types that are assignable to Query: + // + // *DryRunStateQuery_GetAccountInfo + // *DryRunStateQuery_GetInstanceInfo + // *DryRunStateQuery_InvokeInstance + Query isDryRunStateQuery_Query `protobuf_oneof:"query"` } -func (x *RejectReason_InvalidInitMethod) Reset() { - *x = RejectReason_InvalidInitMethod{} +func (x *DryRunStateQuery) Reset() { + *x = DryRunStateQuery{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[209] + mi := &file_v2_concordium_types_proto_msgTypes[206] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RejectReason_InvalidInitMethod) String() string { +func (x *DryRunStateQuery) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RejectReason_InvalidInitMethod) ProtoMessage() {} +func (*DryRunStateQuery) ProtoMessage() {} -func (x *RejectReason_InvalidInitMethod) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[209] +func (x *DryRunStateQuery) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[206] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16969,51 +17308,113 @@ func (x *RejectReason_InvalidInitMethod) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RejectReason_InvalidInitMethod.ProtoReflect.Descriptor instead. -func (*RejectReason_InvalidInitMethod) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{72, 0} +// Deprecated: Use DryRunStateQuery.ProtoReflect.Descriptor instead. +func (*DryRunStateQuery) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{206} } -func (x *RejectReason_InvalidInitMethod) GetModuleRef() *ModuleRef { - if x != nil { - return x.ModuleRef +func (m *DryRunStateQuery) GetQuery() isDryRunStateQuery_Query { + if m != nil { + return m.Query } return nil } -func (x *RejectReason_InvalidInitMethod) GetInitName() *InitName { - if x != nil { - return x.InitName +func (x *DryRunStateQuery) GetGetAccountInfo() *AccountIdentifierInput { + if x, ok := x.GetQuery().(*DryRunStateQuery_GetAccountInfo); ok { + return x.GetAccountInfo } return nil } -type RejectReason_InvalidReceiveMethod struct { +func (x *DryRunStateQuery) GetGetInstanceInfo() *ContractAddress { + if x, ok := x.GetQuery().(*DryRunStateQuery_GetInstanceInfo); ok { + return x.GetInstanceInfo + } + return nil +} + +func (x *DryRunStateQuery) GetInvokeInstance() *DryRunInvokeInstance { + if x, ok := x.GetQuery().(*DryRunStateQuery_InvokeInstance); ok { + return x.InvokeInstance + } + return nil +} + +type isDryRunStateQuery_Query interface { + isDryRunStateQuery_Query() +} + +type DryRunStateQuery_GetAccountInfo struct { + // Look up information on a particular account. + // + // The energy cost for this query is 200. + GetAccountInfo *AccountIdentifierInput `protobuf:"bytes,1,opt,name=get_account_info,json=getAccountInfo,proto3,oneof"` +} + +type DryRunStateQuery_GetInstanceInfo struct { + // Look up information about a particular smart contract. + // + // The energy cost for this query is 200. + GetInstanceInfo *ContractAddress `protobuf:"bytes,2,opt,name=get_instance_info,json=getInstanceInfo,proto3,oneof"` +} + +type DryRunStateQuery_InvokeInstance struct { + // Invoke an entrypoint on a smart contract instance. + // No changes made to the state are retained at the completion of the operation. + // + // The energy cost for this query is 200 plus the energy used by the smart contract + // execution. + InvokeInstance *DryRunInvokeInstance `protobuf:"bytes,3,opt,name=invoke_instance,json=invokeInstance,proto3,oneof"` +} + +func (*DryRunStateQuery_GetAccountInfo) isDryRunStateQuery_Query() {} + +func (*DryRunStateQuery_GetInstanceInfo) isDryRunStateQuery_Query() {} + +func (*DryRunStateQuery_InvokeInstance) isDryRunStateQuery_Query() {} + +// Invoke an entrypoint on a smart contract instance. +type DryRunInvokeInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ModuleRef *ModuleRef `protobuf:"bytes,1,opt,name=module_ref,json=moduleRef,proto3" json:"module_ref,omitempty"` - ReceiveName *ReceiveName `protobuf:"bytes,2,opt,name=receive_name,json=receiveName,proto3" json:"receive_name,omitempty"` + // Invoker of the contract. If this is not supplied then the contract will be + // invoked by an account with address 0, no credentials and sufficient amount + // of CCD to cover the transfer amount. If given, the relevant address (either + // account or contract) must exist in the blockstate. + Invoker *Address `protobuf:"bytes,1,opt,name=invoker,proto3,oneof" json:"invoker,omitempty"` + // Address of the contract instance to invoke. + Instance *ContractAddress `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + // Amount to invoke the smart contract instance with. + Amount *Amount `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` + // The entrypoint of the smart contract instance to invoke. + Entrypoint *ReceiveName `protobuf:"bytes,4,opt,name=entrypoint,proto3" json:"entrypoint,omitempty"` + // The parameter bytes to include in the invocation of the entrypoint. + Parameter *Parameter `protobuf:"bytes,5,opt,name=parameter,proto3" json:"parameter,omitempty"` + // The maximum energy to allow for the invocation. Note that the node imposes an energy + // quota that is enforced in addition to this limit. + Energy *Energy `protobuf:"bytes,6,opt,name=energy,proto3" json:"energy,omitempty"` } -func (x *RejectReason_InvalidReceiveMethod) Reset() { - *x = RejectReason_InvalidReceiveMethod{} +func (x *DryRunInvokeInstance) Reset() { + *x = DryRunInvokeInstance{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[210] + mi := &file_v2_concordium_types_proto_msgTypes[207] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RejectReason_InvalidReceiveMethod) String() string { +func (x *DryRunInvokeInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RejectReason_InvalidReceiveMethod) ProtoMessage() {} +func (*DryRunInvokeInstance) ProtoMessage() {} -func (x *RejectReason_InvalidReceiveMethod) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[210] +func (x *DryRunInvokeInstance) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[207] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17024,51 +17425,84 @@ func (x *RejectReason_InvalidReceiveMethod) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use RejectReason_InvalidReceiveMethod.ProtoReflect.Descriptor instead. -func (*RejectReason_InvalidReceiveMethod) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{72, 1} +// Deprecated: Use DryRunInvokeInstance.ProtoReflect.Descriptor instead. +func (*DryRunInvokeInstance) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{207} } -func (x *RejectReason_InvalidReceiveMethod) GetModuleRef() *ModuleRef { +func (x *DryRunInvokeInstance) GetInvoker() *Address { if x != nil { - return x.ModuleRef + return x.Invoker } return nil } -func (x *RejectReason_InvalidReceiveMethod) GetReceiveName() *ReceiveName { +func (x *DryRunInvokeInstance) GetInstance() *ContractAddress { if x != nil { - return x.ReceiveName + return x.Instance } return nil } -type RejectReason_AmountTooLarge struct { +func (x *DryRunInvokeInstance) GetAmount() *Amount { + if x != nil { + return x.Amount + } + return nil +} + +func (x *DryRunInvokeInstance) GetEntrypoint() *ReceiveName { + if x != nil { + return x.Entrypoint + } + return nil +} + +func (x *DryRunInvokeInstance) GetParameter() *Parameter { + if x != nil { + return x.Parameter + } + return nil +} + +func (x *DryRunInvokeInstance) GetEnergy() *Energy { + if x != nil { + return x.Energy + } + return nil +} + +// An operation that can update the state as part of a dry run. +type DryRunStateOperation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - Amount *Amount `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` + // Types that are assignable to Operation: + // + // *DryRunStateOperation_SetTimestamp + // *DryRunStateOperation_MintToAccount + // *DryRunStateOperation_RunTransaction + Operation isDryRunStateOperation_Operation `protobuf_oneof:"operation"` } -func (x *RejectReason_AmountTooLarge) Reset() { - *x = RejectReason_AmountTooLarge{} +func (x *DryRunStateOperation) Reset() { + *x = DryRunStateOperation{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[211] + mi := &file_v2_concordium_types_proto_msgTypes[208] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RejectReason_AmountTooLarge) String() string { +func (x *DryRunStateOperation) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RejectReason_AmountTooLarge) ProtoMessage() {} +func (*DryRunStateOperation) ProtoMessage() {} -func (x *RejectReason_AmountTooLarge) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[211] +func (x *DryRunStateOperation) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[208] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17079,50 +17513,102 @@ func (x *RejectReason_AmountTooLarge) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RejectReason_AmountTooLarge.ProtoReflect.Descriptor instead. -func (*RejectReason_AmountTooLarge) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{72, 2} +// Deprecated: Use DryRunStateOperation.ProtoReflect.Descriptor instead. +func (*DryRunStateOperation) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{208} } -func (x *RejectReason_AmountTooLarge) GetAddress() *Address { - if x != nil { - return x.Address +func (m *DryRunStateOperation) GetOperation() isDryRunStateOperation_Operation { + if m != nil { + return m.Operation } return nil } -func (x *RejectReason_AmountTooLarge) GetAmount() *Amount { - if x != nil { - return x.Amount +func (x *DryRunStateOperation) GetSetTimestamp() *Timestamp { + if x, ok := x.GetOperation().(*DryRunStateOperation_SetTimestamp); ok { + return x.SetTimestamp } return nil } -type RejectReason_RejectedInit struct { +func (x *DryRunStateOperation) GetMintToAccount() *DryRunMintToAccount { + if x, ok := x.GetOperation().(*DryRunStateOperation_MintToAccount); ok { + return x.MintToAccount + } + return nil +} + +func (x *DryRunStateOperation) GetRunTransaction() *DryRunTransaction { + if x, ok := x.GetOperation().(*DryRunStateOperation_RunTransaction); ok { + return x.RunTransaction + } + return nil +} + +type isDryRunStateOperation_Operation interface { + isDryRunStateOperation_Operation() +} + +type DryRunStateOperation_SetTimestamp struct { + // Sets the current block time to the given timestamp for the purposes of future + // transactions. + // + // The energy cost of this operation is 50. + SetTimestamp *Timestamp `protobuf:"bytes,1,opt,name=set_timestamp,json=setTimestamp,proto3,oneof"` +} + +type DryRunStateOperation_MintToAccount struct { + // Add a specified amount of newly-minted CCDs to a specified account. + // The amount cannot cause the total circulating supply to overflow. + // + // The energy cost of this operation is 400. + MintToAccount *DryRunMintToAccount `protobuf:"bytes,2,opt,name=mint_to_account,json=mintToAccount,proto3,oneof"` +} + +type DryRunStateOperation_RunTransaction struct { + // Dry run a transaction, updating the state if it succeeds. + // + // The energy cost of this operation is 400 plus the energy used by executing the + // transaction. + RunTransaction *DryRunTransaction `protobuf:"bytes,3,opt,name=run_transaction,json=runTransaction,proto3,oneof"` +} + +func (*DryRunStateOperation_SetTimestamp) isDryRunStateOperation_Operation() {} + +func (*DryRunStateOperation_MintToAccount) isDryRunStateOperation_Operation() {} + +func (*DryRunStateOperation_RunTransaction) isDryRunStateOperation_Operation() {} + +// Mint a specified amount and credit it to the specified account as part of a dry run. +type DryRunMintToAccount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RejectReason int32 `protobuf:"varint,1,opt,name=reject_reason,json=rejectReason,proto3" json:"reject_reason,omitempty"` + // The account to mint to. + Account *AccountAddress `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + // The amount to mint and credit to the account. + Amount *Amount `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` } -func (x *RejectReason_RejectedInit) Reset() { - *x = RejectReason_RejectedInit{} +func (x *DryRunMintToAccount) Reset() { + *x = DryRunMintToAccount{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[212] + mi := &file_v2_concordium_types_proto_msgTypes[209] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RejectReason_RejectedInit) String() string { +func (x *DryRunMintToAccount) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RejectReason_RejectedInit) ProtoMessage() {} +func (*DryRunMintToAccount) ProtoMessage() {} -func (x *RejectReason_RejectedInit) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[212] +func (x *DryRunMintToAccount) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[209] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17133,46 +17619,69 @@ func (x *RejectReason_RejectedInit) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RejectReason_RejectedInit.ProtoReflect.Descriptor instead. -func (*RejectReason_RejectedInit) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{72, 3} +// Deprecated: Use DryRunMintToAccount.ProtoReflect.Descriptor instead. +func (*DryRunMintToAccount) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{209} } -func (x *RejectReason_RejectedInit) GetRejectReason() int32 { +func (x *DryRunMintToAccount) GetAccount() *AccountAddress { if x != nil { - return x.RejectReason + return x.Account } - return 0 + return nil } -type RejectReason_RejectedReceive struct { +func (x *DryRunMintToAccount) GetAmount() *Amount { + if x != nil { + return x.Amount + } + return nil +} + +// Dry run an account transaction +type DryRunTransaction struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RejectReason int32 `protobuf:"varint,1,opt,name=reject_reason,json=rejectReason,proto3" json:"reject_reason,omitempty"` - ContractAddress *ContractAddress `protobuf:"bytes,2,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"` - ReceiveName *ReceiveName `protobuf:"bytes,3,opt,name=receive_name,json=receiveName,proto3" json:"receive_name,omitempty"` - Parameter *Parameter `protobuf:"bytes,4,opt,name=parameter,proto3" json:"parameter,omitempty"` + // The account to use as the sender of the transaction. + Sender *AccountAddress `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + // The energy limit set for executing the transaction. + EnergyAmount *Energy `protobuf:"bytes,2,opt,name=energy_amount,json=energyAmount,proto3" json:"energy_amount,omitempty"` + // The payload of the transaction. + Payload *AccountTransactionPayload `protobuf:"bytes,3,opt,name=payload,proto3" json:"payload,omitempty"` + // Which credentials and keys should be treated as having signed the transaction. + // If none is given, then the transaction is treated as having one signature for credential 0, + // key 0. Therefore, this is only required when the transaction is from a multi-signature + // account. There are two reasons why you might want to specify signatures: + // - The cost of the transaction depends on the number of signatures, so if you want to + // get the correct cost for a multi-signature transaction, then specifying the signatures + // supports this. + // - When changing account keys on a multi-credential account, the transaction must be signed + // by the credential whose keys are being changed. + // + // Note that the signature thresholds are not checked as part of the dry run. Duplicated + // signatures are only counted once. + Signatures []*DryRunSignature `protobuf:"bytes,4,rep,name=signatures,proto3" json:"signatures,omitempty"` } -func (x *RejectReason_RejectedReceive) Reset() { - *x = RejectReason_RejectedReceive{} +func (x *DryRunTransaction) Reset() { + *x = DryRunTransaction{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[213] + mi := &file_v2_concordium_types_proto_msgTypes[210] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RejectReason_RejectedReceive) String() string { +func (x *DryRunTransaction) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RejectReason_RejectedReceive) ProtoMessage() {} +func (*DryRunTransaction) ProtoMessage() {} -func (x *RejectReason_RejectedReceive) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[213] +func (x *DryRunTransaction) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[210] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17183,64 +17692,70 @@ func (x *RejectReason_RejectedReceive) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RejectReason_RejectedReceive.ProtoReflect.Descriptor instead. -func (*RejectReason_RejectedReceive) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{72, 4} +// Deprecated: Use DryRunTransaction.ProtoReflect.Descriptor instead. +func (*DryRunTransaction) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{210} } -func (x *RejectReason_RejectedReceive) GetRejectReason() int32 { +func (x *DryRunTransaction) GetSender() *AccountAddress { if x != nil { - return x.RejectReason + return x.Sender } - return 0 + return nil } -func (x *RejectReason_RejectedReceive) GetContractAddress() *ContractAddress { +func (x *DryRunTransaction) GetEnergyAmount() *Energy { if x != nil { - return x.ContractAddress + return x.EnergyAmount } return nil } -func (x *RejectReason_RejectedReceive) GetReceiveName() *ReceiveName { +func (x *DryRunTransaction) GetPayload() *AccountTransactionPayload { if x != nil { - return x.ReceiveName + return x.Payload } return nil } -func (x *RejectReason_RejectedReceive) GetParameter() *Parameter { +func (x *DryRunTransaction) GetSignatures() []*DryRunSignature { if x != nil { - return x.Parameter + return x.Signatures } return nil } -type RejectReason_DuplicateCredIds struct { +// A dry run signature is a pair of a credential index and key index, identifying the credential +// and key that is presumed to have signed the transaction. No actual cryptographic signature is +// included. +type DryRunSignature struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Ids []*CredentialRegistrationId `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"` + // Credential index. Must not exceed 255. + Credential uint32 `protobuf:"varint,1,opt,name=credential,proto3" json:"credential,omitempty"` + // Key index. Must not exceed 255. + Key uint32 `protobuf:"varint,2,opt,name=key,proto3" json:"key,omitempty"` } -func (x *RejectReason_DuplicateCredIds) Reset() { - *x = RejectReason_DuplicateCredIds{} +func (x *DryRunSignature) Reset() { + *x = DryRunSignature{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[214] + mi := &file_v2_concordium_types_proto_msgTypes[211] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RejectReason_DuplicateCredIds) String() string { +func (x *DryRunSignature) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RejectReason_DuplicateCredIds) ProtoMessage() {} +func (*DryRunSignature) ProtoMessage() {} -func (x *RejectReason_DuplicateCredIds) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[214] +func (x *DryRunSignature) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[211] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17251,43 +17766,57 @@ func (x *RejectReason_DuplicateCredIds) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RejectReason_DuplicateCredIds.ProtoReflect.Descriptor instead. -func (*RejectReason_DuplicateCredIds) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{72, 5} +// Deprecated: Use DryRunSignature.ProtoReflect.Descriptor instead. +func (*DryRunSignature) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{211} } -func (x *RejectReason_DuplicateCredIds) GetIds() []*CredentialRegistrationId { +func (x *DryRunSignature) GetCredential() uint32 { if x != nil { - return x.Ids + return x.Credential } - return nil + return 0 } -type RejectReason_NonExistentCredIds struct { +func (x *DryRunSignature) GetKey() uint32 { + if x != nil { + return x.Key + } + return 0 +} + +// A response to a `DryRunRequest`. +type DryRunResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Ids []*CredentialRegistrationId `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"` + // Types that are assignable to Response: + // + // *DryRunResponse_Error + // *DryRunResponse_Success + Response isDryRunResponse_Response `protobuf_oneof:"response"` + // The remaining available energy quota after the dry run operation. + QuotaRemaining *Energy `protobuf:"bytes,3,opt,name=quota_remaining,json=quotaRemaining,proto3" json:"quota_remaining,omitempty"` } -func (x *RejectReason_NonExistentCredIds) Reset() { - *x = RejectReason_NonExistentCredIds{} +func (x *DryRunResponse) Reset() { + *x = DryRunResponse{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[215] + mi := &file_v2_concordium_types_proto_msgTypes[212] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RejectReason_NonExistentCredIds) String() string { +func (x *DryRunResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RejectReason_NonExistentCredIds) ProtoMessage() {} +func (*DryRunResponse) ProtoMessage() {} -func (x *RejectReason_NonExistentCredIds) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[215] +func (x *DryRunResponse) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[212] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17298,49 +17827,92 @@ func (x *RejectReason_NonExistentCredIds) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RejectReason_NonExistentCredIds.ProtoReflect.Descriptor instead. -func (*RejectReason_NonExistentCredIds) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{72, 6} +// Deprecated: Use DryRunResponse.ProtoReflect.Descriptor instead. +func (*DryRunResponse) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{212} } -func (x *RejectReason_NonExistentCredIds) GetIds() []*CredentialRegistrationId { +func (m *DryRunResponse) GetResponse() isDryRunResponse_Response { + if m != nil { + return m.Response + } + return nil +} + +func (x *DryRunResponse) GetError() *DryRunErrorResponse { + if x, ok := x.GetResponse().(*DryRunResponse_Error); ok { + return x.Error + } + return nil +} + +func (x *DryRunResponse) GetSuccess() *DryRunSuccessResponse { + if x, ok := x.GetResponse().(*DryRunResponse_Success); ok { + return x.Success + } + return nil +} + +func (x *DryRunResponse) GetQuotaRemaining() *Energy { if x != nil { - return x.Ids + return x.QuotaRemaining } return nil } -// A contract transferred an amount to an account. -type ContractTraceElement_Transferred struct { +type isDryRunResponse_Response interface { + isDryRunResponse_Response() +} + +type DryRunResponse_Error struct { + // The request produced an error. The request otherwise has no effect on the state. + Error *DryRunErrorResponse `protobuf:"bytes,1,opt,name=error,proto3,oneof"` +} + +type DryRunResponse_Success struct { + // The request was successful. + Success *DryRunSuccessResponse `protobuf:"bytes,2,opt,name=success,proto3,oneof"` +} + +func (*DryRunResponse_Error) isDryRunResponse_Response() {} + +func (*DryRunResponse_Success) isDryRunResponse_Response() {} + +type DryRunErrorResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Sender contract. - Sender *ContractAddress `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` - // Amount transferred. - Amount *Amount `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` - // Receiver account. - Receiver *AccountAddress `protobuf:"bytes,3,opt,name=receiver,proto3" json:"receiver,omitempty"` + // Types that are assignable to Error: + // + // *DryRunErrorResponse_NoState_ + // *DryRunErrorResponse_BlockNotFound_ + // *DryRunErrorResponse_AccountNotFound_ + // *DryRunErrorResponse_InstanceNotFound_ + // *DryRunErrorResponse_AmountOverLimit_ + // *DryRunErrorResponse_BalanceInsufficient_ + // *DryRunErrorResponse_EnergyInsufficient_ + // *DryRunErrorResponse_InvokeFailed + Error isDryRunErrorResponse_Error `protobuf_oneof:"error"` } -func (x *ContractTraceElement_Transferred) Reset() { - *x = ContractTraceElement_Transferred{} +func (x *DryRunErrorResponse) Reset() { + *x = DryRunErrorResponse{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[216] + mi := &file_v2_concordium_types_proto_msgTypes[213] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ContractTraceElement_Transferred) String() string { +func (x *DryRunErrorResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ContractTraceElement_Transferred) ProtoMessage() {} +func (*DryRunErrorResponse) ProtoMessage() {} -func (x *ContractTraceElement_Transferred) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[216] +func (x *DryRunErrorResponse) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[213] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17351,62 +17923,177 @@ func (x *ContractTraceElement_Transferred) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ContractTraceElement_Transferred.ProtoReflect.Descriptor instead. -func (*ContractTraceElement_Transferred) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{76, 0} +// Deprecated: Use DryRunErrorResponse.ProtoReflect.Descriptor instead. +func (*DryRunErrorResponse) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{213} } -func (x *ContractTraceElement_Transferred) GetSender() *ContractAddress { - if x != nil { - return x.Sender +func (m *DryRunErrorResponse) GetError() isDryRunErrorResponse_Error { + if m != nil { + return m.Error } return nil } -func (x *ContractTraceElement_Transferred) GetAmount() *Amount { - if x != nil { - return x.Amount +func (x *DryRunErrorResponse) GetNoState() *DryRunErrorResponse_NoState { + if x, ok := x.GetError().(*DryRunErrorResponse_NoState_); ok { + return x.NoState } return nil } -func (x *ContractTraceElement_Transferred) GetReceiver() *AccountAddress { - if x != nil { - return x.Receiver +func (x *DryRunErrorResponse) GetBlockNotFound() *DryRunErrorResponse_BlockNotFound { + if x, ok := x.GetError().(*DryRunErrorResponse_BlockNotFound_); ok { + return x.BlockNotFound } return nil } -// A contract was interrupted. -// This occurs when a contract invokes another contract or makes a transfer to an account. -type ContractTraceElement_Interrupted struct { +func (x *DryRunErrorResponse) GetAccountNotFound() *DryRunErrorResponse_AccountNotFound { + if x, ok := x.GetError().(*DryRunErrorResponse_AccountNotFound_); ok { + return x.AccountNotFound + } + return nil +} + +func (x *DryRunErrorResponse) GetInstanceNotFound() *DryRunErrorResponse_InstanceNotFound { + if x, ok := x.GetError().(*DryRunErrorResponse_InstanceNotFound_); ok { + return x.InstanceNotFound + } + return nil +} + +func (x *DryRunErrorResponse) GetAmountOverLimit() *DryRunErrorResponse_AmountOverLimit { + if x, ok := x.GetError().(*DryRunErrorResponse_AmountOverLimit_); ok { + return x.AmountOverLimit + } + return nil +} + +func (x *DryRunErrorResponse) GetBalanceInsufficient() *DryRunErrorResponse_BalanceInsufficient { + if x, ok := x.GetError().(*DryRunErrorResponse_BalanceInsufficient_); ok { + return x.BalanceInsufficient + } + return nil +} + +func (x *DryRunErrorResponse) GetEnergyInsufficient() *DryRunErrorResponse_EnergyInsufficient { + if x, ok := x.GetError().(*DryRunErrorResponse_EnergyInsufficient_); ok { + return x.EnergyInsufficient + } + return nil +} + +func (x *DryRunErrorResponse) GetInvokeFailed() *DryRunErrorResponse_InvokeFailure { + if x, ok := x.GetError().(*DryRunErrorResponse_InvokeFailed); ok { + return x.InvokeFailed + } + return nil +} + +type isDryRunErrorResponse_Error interface { + isDryRunErrorResponse_Error() +} + +type DryRunErrorResponse_NoState_ struct { + // The current block state is undefined. It should be initialized with + // a 'load_block_state' request before any other operations. + NoState *DryRunErrorResponse_NoState `protobuf:"bytes,1,opt,name=no_state,json=noState,proto3,oneof"` +} + +type DryRunErrorResponse_BlockNotFound_ struct { + // The requested block was not found, so its state could not be loaded. + // Response to 'load_block_state'. + BlockNotFound *DryRunErrorResponse_BlockNotFound `protobuf:"bytes,2,opt,name=block_not_found,json=blockNotFound,proto3,oneof"` +} + +type DryRunErrorResponse_AccountNotFound_ struct { + // The specified account was not found. + // Response to 'get_account_info', 'mint_to_account' and 'run_transaction'. + AccountNotFound *DryRunErrorResponse_AccountNotFound `protobuf:"bytes,3,opt,name=account_not_found,json=accountNotFound,proto3,oneof"` +} + +type DryRunErrorResponse_InstanceNotFound_ struct { + // The specified instance was not found. + // Response to 'get_instance_info'. + InstanceNotFound *DryRunErrorResponse_InstanceNotFound `protobuf:"bytes,4,opt,name=instance_not_found,json=instanceNotFound,proto3,oneof"` +} + +type DryRunErrorResponse_AmountOverLimit_ struct { + // The amount to mint would overflow the total CCD supply. + // Response to 'mint_to_account'. + AmountOverLimit *DryRunErrorResponse_AmountOverLimit `protobuf:"bytes,5,opt,name=amount_over_limit,json=amountOverLimit,proto3,oneof"` +} + +type DryRunErrorResponse_BalanceInsufficient_ struct { + // The balance of the sender account is not sufficient to pay for the operation. + // Response to 'run_transaction'. + BalanceInsufficient *DryRunErrorResponse_BalanceInsufficient `protobuf:"bytes,6,opt,name=balance_insufficient,json=balanceInsufficient,proto3,oneof"` +} + +type DryRunErrorResponse_EnergyInsufficient_ struct { + // The energy supplied for the transaction was not sufficient to perform the basic checks. + // Response to 'run_transaction'. + EnergyInsufficient *DryRunErrorResponse_EnergyInsufficient `protobuf:"bytes,8,opt,name=energy_insufficient,json=energyInsufficient,proto3,oneof"` +} + +type DryRunErrorResponse_InvokeFailed struct { + // The contract invocation failed. + // Response to 'invoke_instance'. + InvokeFailed *DryRunErrorResponse_InvokeFailure `protobuf:"bytes,9,opt,name=invoke_failed,json=invokeFailed,proto3,oneof"` +} + +func (*DryRunErrorResponse_NoState_) isDryRunErrorResponse_Error() {} + +func (*DryRunErrorResponse_BlockNotFound_) isDryRunErrorResponse_Error() {} + +func (*DryRunErrorResponse_AccountNotFound_) isDryRunErrorResponse_Error() {} + +func (*DryRunErrorResponse_InstanceNotFound_) isDryRunErrorResponse_Error() {} + +func (*DryRunErrorResponse_AmountOverLimit_) isDryRunErrorResponse_Error() {} + +func (*DryRunErrorResponse_BalanceInsufficient_) isDryRunErrorResponse_Error() {} + +func (*DryRunErrorResponse_EnergyInsufficient_) isDryRunErrorResponse_Error() {} + +func (*DryRunErrorResponse_InvokeFailed) isDryRunErrorResponse_Error() {} + +// The dry run operation completed successfully. +type DryRunSuccessResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The contract interrupted. - Address *ContractAddress `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - // The events generated up until the interruption. - Events []*ContractEvent `protobuf:"bytes,2,rep,name=events,proto3" json:"events,omitempty"` + // Types that are assignable to Response: + // + // *DryRunSuccessResponse_BlockStateLoaded_ + // *DryRunSuccessResponse_AccountInfo + // *DryRunSuccessResponse_InstanceInfo + // *DryRunSuccessResponse_InvokeSucceeded + // *DryRunSuccessResponse_TimestampSet_ + // *DryRunSuccessResponse_MintedToAccount_ + // *DryRunSuccessResponse_TransactionExecuted_ + Response isDryRunSuccessResponse_Response `protobuf_oneof:"response"` } -func (x *ContractTraceElement_Interrupted) Reset() { - *x = ContractTraceElement_Interrupted{} +func (x *DryRunSuccessResponse) Reset() { + *x = DryRunSuccessResponse{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[217] + mi := &file_v2_concordium_types_proto_msgTypes[214] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ContractTraceElement_Interrupted) String() string { +func (x *DryRunSuccessResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ContractTraceElement_Interrupted) ProtoMessage() {} +func (*DryRunSuccessResponse) ProtoMessage() {} -func (x *ContractTraceElement_Interrupted) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[217] +func (x *DryRunSuccessResponse) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[214] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17417,114 +18104,153 @@ func (x *ContractTraceElement_Interrupted) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ContractTraceElement_Interrupted.ProtoReflect.Descriptor instead. -func (*ContractTraceElement_Interrupted) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{76, 1} +// Deprecated: Use DryRunSuccessResponse.ProtoReflect.Descriptor instead. +func (*DryRunSuccessResponse) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{214} } -func (x *ContractTraceElement_Interrupted) GetAddress() *ContractAddress { - if x != nil { - return x.Address +func (m *DryRunSuccessResponse) GetResponse() isDryRunSuccessResponse_Response { + if m != nil { + return m.Response } return nil } -func (x *ContractTraceElement_Interrupted) GetEvents() []*ContractEvent { - if x != nil { - return x.Events +func (x *DryRunSuccessResponse) GetBlockStateLoaded() *DryRunSuccessResponse_BlockStateLoaded { + if x, ok := x.GetResponse().(*DryRunSuccessResponse_BlockStateLoaded_); ok { + return x.BlockStateLoaded } return nil } -// A previously interrupted contract was resumed. -type ContractTraceElement_Resumed struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The contract resumed. - Address *ContractAddress `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - // Whether the action that caused the interruption (invoke contract or make transfer) was successful or not. - Success bool `protobuf:"varint,2,opt,name=success,proto3" json:"success,omitempty"` +func (x *DryRunSuccessResponse) GetAccountInfo() *AccountInfo { + if x, ok := x.GetResponse().(*DryRunSuccessResponse_AccountInfo); ok { + return x.AccountInfo + } + return nil } -func (x *ContractTraceElement_Resumed) Reset() { - *x = ContractTraceElement_Resumed{} - if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[218] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *DryRunSuccessResponse) GetInstanceInfo() *InstanceInfo { + if x, ok := x.GetResponse().(*DryRunSuccessResponse_InstanceInfo); ok { + return x.InstanceInfo } + return nil } -func (x *ContractTraceElement_Resumed) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *DryRunSuccessResponse) GetInvokeSucceeded() *DryRunSuccessResponse_InvokeSuccess { + if x, ok := x.GetResponse().(*DryRunSuccessResponse_InvokeSucceeded); ok { + return x.InvokeSucceeded + } + return nil } -func (*ContractTraceElement_Resumed) ProtoMessage() {} - -func (x *ContractTraceElement_Resumed) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[218] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *DryRunSuccessResponse) GetTimestampSet() *DryRunSuccessResponse_TimestampSet { + if x, ok := x.GetResponse().(*DryRunSuccessResponse_TimestampSet_); ok { + return x.TimestampSet } - return mi.MessageOf(x) + return nil } -// Deprecated: Use ContractTraceElement_Resumed.ProtoReflect.Descriptor instead. -func (*ContractTraceElement_Resumed) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{76, 2} +func (x *DryRunSuccessResponse) GetMintedToAccount() *DryRunSuccessResponse_MintedToAccount { + if x, ok := x.GetResponse().(*DryRunSuccessResponse_MintedToAccount_); ok { + return x.MintedToAccount + } + return nil } -func (x *ContractTraceElement_Resumed) GetAddress() *ContractAddress { - if x != nil { - return x.Address +func (x *DryRunSuccessResponse) GetTransactionExecuted() *DryRunSuccessResponse_TransactionExecuted { + if x, ok := x.GetResponse().(*DryRunSuccessResponse_TransactionExecuted_); ok { + return x.TransactionExecuted } return nil } -func (x *ContractTraceElement_Resumed) GetSuccess() bool { - if x != nil { - return x.Success - } - return false +type isDryRunSuccessResponse_Response interface { + isDryRunSuccessResponse_Response() } -// A previously interrupted contract was resumed. -type ContractTraceElement_Upgraded struct { +type DryRunSuccessResponse_BlockStateLoaded_ struct { + // The state from the specified block was successfully loaded. + // Response to 'load_block_state'. + BlockStateLoaded *DryRunSuccessResponse_BlockStateLoaded `protobuf:"bytes,1,opt,name=block_state_loaded,json=blockStateLoaded,proto3,oneof"` +} + +type DryRunSuccessResponse_AccountInfo struct { + // Details of the requested account. + // Response to 'get_account_info'. + AccountInfo *AccountInfo `protobuf:"bytes,2,opt,name=account_info,json=accountInfo,proto3,oneof"` +} + +type DryRunSuccessResponse_InstanceInfo struct { + // Details of the requested smart contract instance. + // Response to 'get_instance_info'. + InstanceInfo *InstanceInfo `protobuf:"bytes,3,opt,name=instance_info,json=instanceInfo,proto3,oneof"` +} + +type DryRunSuccessResponse_InvokeSucceeded struct { + // The smart contract instance was invoked successfully. + InvokeSucceeded *DryRunSuccessResponse_InvokeSuccess `protobuf:"bytes,4,opt,name=invoke_succeeded,json=invokeSucceeded,proto3,oneof"` +} + +type DryRunSuccessResponse_TimestampSet_ struct { + // The current timestamp was set successfully. + // Response to 'set_timestamp'. + TimestampSet *DryRunSuccessResponse_TimestampSet `protobuf:"bytes,5,opt,name=timestamp_set,json=timestampSet,proto3,oneof"` +} + +type DryRunSuccessResponse_MintedToAccount_ struct { + // The specified amount was minted and credited to the account. + // Response to 'mint_to_account'. + MintedToAccount *DryRunSuccessResponse_MintedToAccount `protobuf:"bytes,6,opt,name=minted_to_account,json=mintedToAccount,proto3,oneof"` +} + +type DryRunSuccessResponse_TransactionExecuted_ struct { + // The specified transaction was executed. Note that the transaction could still have + // been rejected. + // Response to 'run_transaction'. + TransactionExecuted *DryRunSuccessResponse_TransactionExecuted `protobuf:"bytes,7,opt,name=transaction_executed,json=transactionExecuted,proto3,oneof"` +} + +func (*DryRunSuccessResponse_BlockStateLoaded_) isDryRunSuccessResponse_Response() {} + +func (*DryRunSuccessResponse_AccountInfo) isDryRunSuccessResponse_Response() {} + +func (*DryRunSuccessResponse_InstanceInfo) isDryRunSuccessResponse_Response() {} + +func (*DryRunSuccessResponse_InvokeSucceeded) isDryRunSuccessResponse_Response() {} + +func (*DryRunSuccessResponse_TimestampSet_) isDryRunSuccessResponse_Response() {} + +func (*DryRunSuccessResponse_MintedToAccount_) isDryRunSuccessResponse_Response() {} + +func (*DryRunSuccessResponse_TransactionExecuted_) isDryRunSuccessResponse_Response() {} + +// Source bytes of a smart contract v0 module. +type VersionedModuleSource_ModuleSourceV0 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The that was upgraded. - Address *ContractAddress `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - // The module from which the contract was upgraded. - From *ModuleRef `protobuf:"bytes,2,opt,name=from,proto3" json:"from,omitempty"` - // The module to which it was upgraded. - To *ModuleRef `protobuf:"bytes,3,opt,name=to,proto3" json:"to,omitempty"` + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } -func (x *ContractTraceElement_Upgraded) Reset() { - *x = ContractTraceElement_Upgraded{} +func (x *VersionedModuleSource_ModuleSourceV0) Reset() { + *x = VersionedModuleSource_ModuleSourceV0{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[219] + mi := &file_v2_concordium_types_proto_msgTypes[215] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ContractTraceElement_Upgraded) String() string { +func (x *VersionedModuleSource_ModuleSourceV0) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ContractTraceElement_Upgraded) ProtoMessage() {} +func (*VersionedModuleSource_ModuleSourceV0) ProtoMessage() {} -func (x *ContractTraceElement_Upgraded) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[219] +func (x *VersionedModuleSource_ModuleSourceV0) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[215] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17535,65 +18261,44 @@ func (x *ContractTraceElement_Upgraded) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ContractTraceElement_Upgraded.ProtoReflect.Descriptor instead. -func (*ContractTraceElement_Upgraded) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{76, 3} -} - -func (x *ContractTraceElement_Upgraded) GetAddress() *ContractAddress { - if x != nil { - return x.Address - } - return nil -} - -func (x *ContractTraceElement_Upgraded) GetFrom() *ModuleRef { - if x != nil { - return x.From - } - return nil +// Deprecated: Use VersionedModuleSource_ModuleSourceV0.ProtoReflect.Descriptor instead. +func (*VersionedModuleSource_ModuleSourceV0) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{10, 0} } -func (x *ContractTraceElement_Upgraded) GetTo() *ModuleRef { +func (x *VersionedModuleSource_ModuleSourceV0) GetValue() []byte { if x != nil { - return x.To + return x.Value } return nil } -// A baker was added. -type BakerEvent_BakerAdded struct { +// Source bytes of a smart contract v1 module. +type VersionedModuleSource_ModuleSourceV1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The keys with which the baker registered. - KeysEvent *BakerKeysEvent `protobuf:"bytes,1,opt,name=keys_event,json=keysEvent,proto3" json:"keys_event,omitempty"` - // The amount the account staked to become a baker. This amount is - // locked. - Stake *Amount `protobuf:"bytes,2,opt,name=stake,proto3" json:"stake,omitempty"` - // Whether the baker will automatically add earnings to their stake or - // not. - RestakeEarnings bool `protobuf:"varint,3,opt,name=restake_earnings,json=restakeEarnings,proto3" json:"restake_earnings,omitempty"` + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } -func (x *BakerEvent_BakerAdded) Reset() { - *x = BakerEvent_BakerAdded{} +func (x *VersionedModuleSource_ModuleSourceV1) Reset() { + *x = VersionedModuleSource_ModuleSourceV1{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[220] + mi := &file_v2_concordium_types_proto_msgTypes[216] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BakerEvent_BakerAdded) String() string { +func (x *VersionedModuleSource_ModuleSourceV1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BakerEvent_BakerAdded) ProtoMessage() {} +func (*VersionedModuleSource_ModuleSourceV1) ProtoMessage() {} -func (x *BakerEvent_BakerAdded) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[220] +func (x *VersionedModuleSource_ModuleSourceV1) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[216] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17604,61 +18309,45 @@ func (x *BakerEvent_BakerAdded) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BakerEvent_BakerAdded.ProtoReflect.Descriptor instead. -func (*BakerEvent_BakerAdded) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{84, 0} -} - -func (x *BakerEvent_BakerAdded) GetKeysEvent() *BakerKeysEvent { - if x != nil { - return x.KeysEvent - } - return nil +// Deprecated: Use VersionedModuleSource_ModuleSourceV1.ProtoReflect.Descriptor instead. +func (*VersionedModuleSource_ModuleSourceV1) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{10, 1} } -func (x *BakerEvent_BakerAdded) GetStake() *Amount { +func (x *VersionedModuleSource_ModuleSourceV1) GetValue() []byte { if x != nil { - return x.Stake + return x.Value } return nil } -func (x *BakerEvent_BakerAdded) GetRestakeEarnings() bool { - if x != nil { - return x.RestakeEarnings - } - return false -} - -// Baker stake increased. -type BakerEvent_BakerStakeIncreased struct { +type StakePendingChange_Reduce struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Baker's id. - BakerId *BakerId `protobuf:"bytes,1,opt,name=baker_id,json=bakerId,proto3" json:"baker_id,omitempty"` - // The new stake. - NewStake *Amount `protobuf:"bytes,2,opt,name=new_stake,json=newStake,proto3" json:"new_stake,omitempty"` + NewStake *Amount `protobuf:"bytes,1,opt,name=new_stake,json=newStake,proto3" json:"new_stake,omitempty"` + // Unix timestamp in milliseconds when the change takes effect. + EffectiveTime *Timestamp `protobuf:"bytes,2,opt,name=effective_time,json=effectiveTime,proto3" json:"effective_time,omitempty"` } -func (x *BakerEvent_BakerStakeIncreased) Reset() { - *x = BakerEvent_BakerStakeIncreased{} +func (x *StakePendingChange_Reduce) Reset() { + *x = StakePendingChange_Reduce{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[221] + mi := &file_v2_concordium_types_proto_msgTypes[217] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BakerEvent_BakerStakeIncreased) String() string { +func (x *StakePendingChange_Reduce) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BakerEvent_BakerStakeIncreased) ProtoMessage() {} +func (*StakePendingChange_Reduce) ProtoMessage() {} -func (x *BakerEvent_BakerStakeIncreased) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[221] +func (x *StakePendingChange_Reduce) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[217] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17669,53 +18358,61 @@ func (x *BakerEvent_BakerStakeIncreased) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BakerEvent_BakerStakeIncreased.ProtoReflect.Descriptor instead. -func (*BakerEvent_BakerStakeIncreased) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{84, 1} +// Deprecated: Use StakePendingChange_Reduce.ProtoReflect.Descriptor instead. +func (*StakePendingChange_Reduce) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{22, 0} } -func (x *BakerEvent_BakerStakeIncreased) GetBakerId() *BakerId { +func (x *StakePendingChange_Reduce) GetNewStake() *Amount { if x != nil { - return x.BakerId + return x.NewStake } return nil } -func (x *BakerEvent_BakerStakeIncreased) GetNewStake() *Amount { +func (x *StakePendingChange_Reduce) GetEffectiveTime() *Timestamp { if x != nil { - return x.NewStake + return x.EffectiveTime } return nil } -type BakerEvent_BakerStakeDecreased struct { +type AccountStakingInfo_Baker struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Baker's id. - BakerId *BakerId `protobuf:"bytes,1,opt,name=baker_id,json=bakerId,proto3" json:"baker_id,omitempty"` - // The new stake. - NewStake *Amount `protobuf:"bytes,2,opt,name=new_stake,json=newStake,proto3" json:"new_stake,omitempty"` + // Amount staked at present. + StakedAmount *Amount `protobuf:"bytes,1,opt,name=staked_amount,json=stakedAmount,proto3" json:"staked_amount,omitempty"` + // A flag indicating whether rewards paid to the baker are automatically + // restaked or not. + RestakeEarnings bool `protobuf:"varint,2,opt,name=restake_earnings,json=restakeEarnings,proto3" json:"restake_earnings,omitempty"` + // Information about the baker that is staking. + BakerInfo *BakerInfo `protobuf:"bytes,3,opt,name=baker_info,json=bakerInfo,proto3" json:"baker_info,omitempty"` + // If present, any pending change to the delegated stake. + PendingChange *StakePendingChange `protobuf:"bytes,4,opt,name=pending_change,json=pendingChange,proto3,oneof" json:"pending_change,omitempty"` + // Present if the account is currently a baker, i.e., it is in the baking + // committee of the current epoch. + PoolInfo *BakerPoolInfo `protobuf:"bytes,5,opt,name=pool_info,json=poolInfo,proto3,oneof" json:"pool_info,omitempty"` } -func (x *BakerEvent_BakerStakeDecreased) Reset() { - *x = BakerEvent_BakerStakeDecreased{} +func (x *AccountStakingInfo_Baker) Reset() { + *x = AccountStakingInfo_Baker{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[222] + mi := &file_v2_concordium_types_proto_msgTypes[218] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BakerEvent_BakerStakeDecreased) String() string { +func (x *AccountStakingInfo_Baker) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BakerEvent_BakerStakeDecreased) ProtoMessage() {} +func (*AccountStakingInfo_Baker) ProtoMessage() {} -func (x *BakerEvent_BakerStakeDecreased) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[222] +func (x *AccountStakingInfo_Baker) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[218] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17726,53 +18423,78 @@ func (x *BakerEvent_BakerStakeDecreased) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BakerEvent_BakerStakeDecreased.ProtoReflect.Descriptor instead. -func (*BakerEvent_BakerStakeDecreased) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{84, 2} +// Deprecated: Use AccountStakingInfo_Baker.ProtoReflect.Descriptor instead. +func (*AccountStakingInfo_Baker) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{26, 0} } -func (x *BakerEvent_BakerStakeDecreased) GetBakerId() *BakerId { +func (x *AccountStakingInfo_Baker) GetStakedAmount() *Amount { if x != nil { - return x.BakerId + return x.StakedAmount } return nil } -func (x *BakerEvent_BakerStakeDecreased) GetNewStake() *Amount { +func (x *AccountStakingInfo_Baker) GetRestakeEarnings() bool { if x != nil { - return x.NewStake + return x.RestakeEarnings + } + return false +} + +func (x *AccountStakingInfo_Baker) GetBakerInfo() *BakerInfo { + if x != nil { + return x.BakerInfo } return nil } -type BakerEvent_BakerRestakeEarningsUpdated struct { +func (x *AccountStakingInfo_Baker) GetPendingChange() *StakePendingChange { + if x != nil { + return x.PendingChange + } + return nil +} + +func (x *AccountStakingInfo_Baker) GetPoolInfo() *BakerPoolInfo { + if x != nil { + return x.PoolInfo + } + return nil +} + +type AccountStakingInfo_Delegator struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Baker's id. - BakerId *BakerId `protobuf:"bytes,1,opt,name=baker_id,json=bakerId,proto3" json:"baker_id,omitempty"` - // The new value of the flag. + // The amount that the account delegates. + StakedAmount *Amount `protobuf:"bytes,1,opt,name=staked_amount,json=stakedAmount,proto3" json:"staked_amount,omitempty"` + // Whether the earnings are automatically added to the staked amount. RestakeEarnings bool `protobuf:"varint,2,opt,name=restake_earnings,json=restakeEarnings,proto3" json:"restake_earnings,omitempty"` + // The entity to which the account delegates. + Target *DelegationTarget `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"` + // If present, any pending change to the delegated stake. + PendingChange *StakePendingChange `protobuf:"bytes,4,opt,name=pending_change,json=pendingChange,proto3,oneof" json:"pending_change,omitempty"` } -func (x *BakerEvent_BakerRestakeEarningsUpdated) Reset() { - *x = BakerEvent_BakerRestakeEarningsUpdated{} +func (x *AccountStakingInfo_Delegator) Reset() { + *x = AccountStakingInfo_Delegator{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[223] + mi := &file_v2_concordium_types_proto_msgTypes[219] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BakerEvent_BakerRestakeEarningsUpdated) String() string { +func (x *AccountStakingInfo_Delegator) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BakerEvent_BakerRestakeEarningsUpdated) ProtoMessage() {} +func (*AccountStakingInfo_Delegator) ProtoMessage() {} -func (x *BakerEvent_BakerRestakeEarningsUpdated) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[223] +func (x *AccountStakingInfo_Delegator) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[219] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17783,54 +18505,71 @@ func (x *BakerEvent_BakerRestakeEarningsUpdated) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use BakerEvent_BakerRestakeEarningsUpdated.ProtoReflect.Descriptor instead. -func (*BakerEvent_BakerRestakeEarningsUpdated) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{84, 3} +// Deprecated: Use AccountStakingInfo_Delegator.ProtoReflect.Descriptor instead. +func (*AccountStakingInfo_Delegator) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{26, 1} } -func (x *BakerEvent_BakerRestakeEarningsUpdated) GetBakerId() *BakerId { +func (x *AccountStakingInfo_Delegator) GetStakedAmount() *Amount { if x != nil { - return x.BakerId + return x.StakedAmount } return nil } -func (x *BakerEvent_BakerRestakeEarningsUpdated) GetRestakeEarnings() bool { +func (x *AccountStakingInfo_Delegator) GetRestakeEarnings() bool { if x != nil { return x.RestakeEarnings } return false } -// Updated open status for a baker pool. -type BakerEvent_BakerSetOpenStatus struct { +func (x *AccountStakingInfo_Delegator) GetTarget() *DelegationTarget { + if x != nil { + return x.Target + } + return nil +} + +func (x *AccountStakingInfo_Delegator) GetPendingChange() *StakePendingChange { + if x != nil { + return x.PendingChange + } + return nil +} + +// Request using a relative block height. +type BlockHashInput_RelativeHeight struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Baker's id. - BakerId *BakerId `protobuf:"bytes,1,opt,name=baker_id,json=bakerId,proto3" json:"baker_id,omitempty"` - // The new open status. - OpenStatus OpenStatus `protobuf:"varint,2,opt,name=open_status,json=openStatus,proto3,enum=concordium.v2.OpenStatus" json:"open_status,omitempty"` + // Genesis index to start from. + GenesisIndex *GenesisIndex `protobuf:"bytes,1,opt,name=genesis_index,json=genesisIndex,proto3" json:"genesis_index,omitempty"` + // Height starting from the genesis block at the genesis index. + Height *BlockHeight `protobuf:"bytes,2,opt,name=height,proto3" json:"height,omitempty"` + // Whether to return results only from the specified genesis index (`true`), + // or allow results from more recent genesis indices as well (`false`). + Restrict bool `protobuf:"varint,3,opt,name=restrict,proto3" json:"restrict,omitempty"` } -func (x *BakerEvent_BakerSetOpenStatus) Reset() { - *x = BakerEvent_BakerSetOpenStatus{} +func (x *BlockHashInput_RelativeHeight) Reset() { + *x = BlockHashInput_RelativeHeight{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[224] + mi := &file_v2_concordium_types_proto_msgTypes[225] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BakerEvent_BakerSetOpenStatus) String() string { +func (x *BlockHashInput_RelativeHeight) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BakerEvent_BakerSetOpenStatus) ProtoMessage() {} +func (*BlockHashInput_RelativeHeight) ProtoMessage() {} -func (x *BakerEvent_BakerSetOpenStatus) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[224] +func (x *BlockHashInput_RelativeHeight) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[225] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17841,54 +18580,62 @@ func (x *BakerEvent_BakerSetOpenStatus) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BakerEvent_BakerSetOpenStatus.ProtoReflect.Descriptor instead. -func (*BakerEvent_BakerSetOpenStatus) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{84, 4} +// Deprecated: Use BlockHashInput_RelativeHeight.ProtoReflect.Descriptor instead. +func (*BlockHashInput_RelativeHeight) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{50, 0} } -func (x *BakerEvent_BakerSetOpenStatus) GetBakerId() *BakerId { +func (x *BlockHashInput_RelativeHeight) GetGenesisIndex() *GenesisIndex { if x != nil { - return x.BakerId + return x.GenesisIndex } return nil } -func (x *BakerEvent_BakerSetOpenStatus) GetOpenStatus() OpenStatus { +func (x *BlockHashInput_RelativeHeight) GetHeight() *BlockHeight { if x != nil { - return x.OpenStatus + return x.Height } - return OpenStatus_OPEN_STATUS_OPEN_FOR_ALL + return nil } -// Updated metadata url for a baker pool. -type BakerEvent_BakerSetMetadataUrl struct { +func (x *BlockHashInput_RelativeHeight) GetRestrict() bool { + if x != nil { + return x.Restrict + } + return false +} + +// Request an epoch by number at a given genesis index. +type EpochRequest_RelativeEpoch struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Baker's id. - BakerId *BakerId `protobuf:"bytes,1,opt,name=baker_id,json=bakerId,proto3" json:"baker_id,omitempty"` - // The URL. - Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + // The genesis index to query at. The query is restricted to this genesis index, and + // will not return results for other indices even if the epoch number is out of bounds. + GenesisIndex *GenesisIndex `protobuf:"bytes,1,opt,name=genesis_index,json=genesisIndex,proto3" json:"genesis_index,omitempty"` + // The epoch number to query at. + Epoch *Epoch `protobuf:"bytes,2,opt,name=epoch,proto3" json:"epoch,omitempty"` } -func (x *BakerEvent_BakerSetMetadataUrl) Reset() { - *x = BakerEvent_BakerSetMetadataUrl{} +func (x *EpochRequest_RelativeEpoch) Reset() { + *x = EpochRequest_RelativeEpoch{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[225] + mi := &file_v2_concordium_types_proto_msgTypes[226] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BakerEvent_BakerSetMetadataUrl) String() string { +func (x *EpochRequest_RelativeEpoch) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BakerEvent_BakerSetMetadataUrl) ProtoMessage() {} +func (*EpochRequest_RelativeEpoch) ProtoMessage() {} -func (x *BakerEvent_BakerSetMetadataUrl) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[225] +func (x *EpochRequest_RelativeEpoch) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[226] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17899,54 +18646,62 @@ func (x *BakerEvent_BakerSetMetadataUrl) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BakerEvent_BakerSetMetadataUrl.ProtoReflect.Descriptor instead. -func (*BakerEvent_BakerSetMetadataUrl) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{84, 5} +// Deprecated: Use EpochRequest_RelativeEpoch.ProtoReflect.Descriptor instead. +func (*EpochRequest_RelativeEpoch) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{51, 0} } -func (x *BakerEvent_BakerSetMetadataUrl) GetBakerId() *BakerId { +func (x *EpochRequest_RelativeEpoch) GetGenesisIndex() *GenesisIndex { if x != nil { - return x.BakerId + return x.GenesisIndex } return nil } -func (x *BakerEvent_BakerSetMetadataUrl) GetUrl() string { +func (x *EpochRequest_RelativeEpoch) GetEpoch() *Epoch { if x != nil { - return x.Url + return x.Epoch } - return "" + return nil } -// Updated transaction fee commission for a baker pool. -type BakerEvent_BakerSetTransactionFeeCommission struct { +// Version 0 smart contract instance information. +type InstanceInfo_V0 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Baker's id. - BakerId *BakerId `protobuf:"bytes,1,opt,name=baker_id,json=bakerId,proto3" json:"baker_id,omitempty"` - // The transaction fee commission. - TransactionFeeCommission *AmountFraction `protobuf:"bytes,2,opt,name=transaction_fee_commission,json=transactionFeeCommission,proto3" json:"transaction_fee_commission,omitempty"` + // The state of the instance. + Model *ContractStateV0 `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"` + // The account address which deployed the instance. + Owner *AccountAddress `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"` + // The amount of CCD tokens in the balance of the instance. + Amount *Amount `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` + // A list of endpoints exposed by the instance. + Methods []*ReceiveName `protobuf:"bytes,4,rep,name=methods,proto3" json:"methods,omitempty"` + // The name of the smart contract of the instance. + Name *InitName `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + // The module reference for the smart contract module of the instance. + SourceModule *ModuleRef `protobuf:"bytes,6,opt,name=source_module,json=sourceModule,proto3" json:"source_module,omitempty"` } -func (x *BakerEvent_BakerSetTransactionFeeCommission) Reset() { - *x = BakerEvent_BakerSetTransactionFeeCommission{} +func (x *InstanceInfo_V0) Reset() { + *x = InstanceInfo_V0{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[226] + mi := &file_v2_concordium_types_proto_msgTypes[227] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BakerEvent_BakerSetTransactionFeeCommission) String() string { +func (x *InstanceInfo_V0) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BakerEvent_BakerSetTransactionFeeCommission) ProtoMessage() {} +func (*InstanceInfo_V0) ProtoMessage() {} -func (x *BakerEvent_BakerSetTransactionFeeCommission) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[226] +func (x *InstanceInfo_V0) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[227] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17957,54 +18712,88 @@ func (x *BakerEvent_BakerSetTransactionFeeCommission) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use BakerEvent_BakerSetTransactionFeeCommission.ProtoReflect.Descriptor instead. -func (*BakerEvent_BakerSetTransactionFeeCommission) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{84, 6} +// Deprecated: Use InstanceInfo_V0.ProtoReflect.Descriptor instead. +func (*InstanceInfo_V0) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{59, 0} } -func (x *BakerEvent_BakerSetTransactionFeeCommission) GetBakerId() *BakerId { +func (x *InstanceInfo_V0) GetModel() *ContractStateV0 { if x != nil { - return x.BakerId + return x.Model } return nil } -func (x *BakerEvent_BakerSetTransactionFeeCommission) GetTransactionFeeCommission() *AmountFraction { +func (x *InstanceInfo_V0) GetOwner() *AccountAddress { if x != nil { - return x.TransactionFeeCommission + return x.Owner } return nil } -// Updated baking reward commission for baker pool -type BakerEvent_BakerSetBakingRewardCommission struct { +func (x *InstanceInfo_V0) GetAmount() *Amount { + if x != nil { + return x.Amount + } + return nil +} + +func (x *InstanceInfo_V0) GetMethods() []*ReceiveName { + if x != nil { + return x.Methods + } + return nil +} + +func (x *InstanceInfo_V0) GetName() *InitName { + if x != nil { + return x.Name + } + return nil +} + +func (x *InstanceInfo_V0) GetSourceModule() *ModuleRef { + if x != nil { + return x.SourceModule + } + return nil +} + +// Version 1 smart contract instance information. +type InstanceInfo_V1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Baker's id - BakerId *BakerId `protobuf:"bytes,1,opt,name=baker_id,json=bakerId,proto3" json:"baker_id,omitempty"` - // The baking reward commission - BakingRewardCommission *AmountFraction `protobuf:"bytes,2,opt,name=baking_reward_commission,json=bakingRewardCommission,proto3" json:"baking_reward_commission,omitempty"` + // The account address which deployed the instance. + Owner *AccountAddress `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"` + // The amount of CCD tokens in the balance of the instance. + Amount *Amount `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` + // A list of endpoints exposed by the instance. + Methods []*ReceiveName `protobuf:"bytes,4,rep,name=methods,proto3" json:"methods,omitempty"` + // The name of the smart contract of the instance. + Name *InitName `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + // The module reference for the smart contract module of the instance. + SourceModule *ModuleRef `protobuf:"bytes,6,opt,name=source_module,json=sourceModule,proto3" json:"source_module,omitempty"` } -func (x *BakerEvent_BakerSetBakingRewardCommission) Reset() { - *x = BakerEvent_BakerSetBakingRewardCommission{} +func (x *InstanceInfo_V1) Reset() { + *x = InstanceInfo_V1{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[227] + mi := &file_v2_concordium_types_proto_msgTypes[228] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BakerEvent_BakerSetBakingRewardCommission) String() string { +func (x *InstanceInfo_V1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BakerEvent_BakerSetBakingRewardCommission) ProtoMessage() {} +func (*InstanceInfo_V1) ProtoMessage() {} -func (x *BakerEvent_BakerSetBakingRewardCommission) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[227] +func (x *InstanceInfo_V1) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[228] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18015,54 +18804,71 @@ func (x *BakerEvent_BakerSetBakingRewardCommission) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use BakerEvent_BakerSetBakingRewardCommission.ProtoReflect.Descriptor instead. -func (*BakerEvent_BakerSetBakingRewardCommission) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{84, 7} +// Deprecated: Use InstanceInfo_V1.ProtoReflect.Descriptor instead. +func (*InstanceInfo_V1) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{59, 1} } -func (x *BakerEvent_BakerSetBakingRewardCommission) GetBakerId() *BakerId { +func (x *InstanceInfo_V1) GetOwner() *AccountAddress { if x != nil { - return x.BakerId + return x.Owner } return nil } -func (x *BakerEvent_BakerSetBakingRewardCommission) GetBakingRewardCommission() *AmountFraction { +func (x *InstanceInfo_V1) GetAmount() *Amount { if x != nil { - return x.BakingRewardCommission + return x.Amount } return nil } -// Updated finalization reward commission for baker pool -type BakerEvent_BakerSetFinalizationRewardCommission struct { +func (x *InstanceInfo_V1) GetMethods() []*ReceiveName { + if x != nil { + return x.Methods + } + return nil +} + +func (x *InstanceInfo_V1) GetName() *InitName { + if x != nil { + return x.Name + } + return nil +} + +func (x *InstanceInfo_V1) GetSourceModule() *ModuleRef { + if x != nil { + return x.SourceModule + } + return nil +} + +type BlockItemStatus_Committed struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Baker's id - BakerId *BakerId `protobuf:"bytes,1,opt,name=baker_id,json=bakerId,proto3" json:"baker_id,omitempty"` - // The finalization reward commission - FinalizationRewardCommission *AmountFraction `protobuf:"bytes,2,opt,name=finalization_reward_commission,json=finalizationRewardCommission,proto3" json:"finalization_reward_commission,omitempty"` + Outcomes []*BlockItemSummaryInBlock `protobuf:"bytes,1,rep,name=outcomes,proto3" json:"outcomes,omitempty"` } -func (x *BakerEvent_BakerSetFinalizationRewardCommission) Reset() { - *x = BakerEvent_BakerSetFinalizationRewardCommission{} +func (x *BlockItemStatus_Committed) Reset() { + *x = BlockItemStatus_Committed{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[228] + mi := &file_v2_concordium_types_proto_msgTypes[229] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BakerEvent_BakerSetFinalizationRewardCommission) String() string { +func (x *BlockItemStatus_Committed) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BakerEvent_BakerSetFinalizationRewardCommission) ProtoMessage() {} +func (*BlockItemStatus_Committed) ProtoMessage() {} -func (x *BakerEvent_BakerSetFinalizationRewardCommission) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[228] +func (x *BlockItemStatus_Committed) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[229] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18073,53 +18879,43 @@ func (x *BakerEvent_BakerSetFinalizationRewardCommission) ProtoReflect() protore return mi.MessageOf(x) } -// Deprecated: Use BakerEvent_BakerSetFinalizationRewardCommission.ProtoReflect.Descriptor instead. -func (*BakerEvent_BakerSetFinalizationRewardCommission) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{84, 8} -} - -func (x *BakerEvent_BakerSetFinalizationRewardCommission) GetBakerId() *BakerId { - if x != nil { - return x.BakerId - } - return nil +// Deprecated: Use BlockItemStatus_Committed.ProtoReflect.Descriptor instead. +func (*BlockItemStatus_Committed) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{67, 0} } -func (x *BakerEvent_BakerSetFinalizationRewardCommission) GetFinalizationRewardCommission() *AmountFraction { +func (x *BlockItemStatus_Committed) GetOutcomes() []*BlockItemSummaryInBlock { if x != nil { - return x.FinalizationRewardCommission + return x.Outcomes } return nil } -type DelegationEvent_DelegationStakeIncreased struct { +type BlockItemStatus_Finalized struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Delegator's id - DelegatorId *DelegatorId `protobuf:"bytes,1,opt,name=delegator_id,json=delegatorId,proto3" json:"delegator_id,omitempty"` - // New stake - NewStake *Amount `protobuf:"bytes,2,opt,name=new_stake,json=newStake,proto3" json:"new_stake,omitempty"` + Outcome *BlockItemSummaryInBlock `protobuf:"bytes,1,opt,name=outcome,proto3" json:"outcome,omitempty"` } -func (x *DelegationEvent_DelegationStakeIncreased) Reset() { - *x = DelegationEvent_DelegationStakeIncreased{} +func (x *BlockItemStatus_Finalized) Reset() { + *x = BlockItemStatus_Finalized{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[229] + mi := &file_v2_concordium_types_proto_msgTypes[230] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DelegationEvent_DelegationStakeIncreased) String() string { +func (x *BlockItemStatus_Finalized) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DelegationEvent_DelegationStakeIncreased) ProtoMessage() {} +func (*BlockItemStatus_Finalized) ProtoMessage() {} -func (x *DelegationEvent_DelegationStakeIncreased) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[229] +func (x *BlockItemStatus_Finalized) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[230] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18130,53 +18926,44 @@ func (x *DelegationEvent_DelegationStakeIncreased) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use DelegationEvent_DelegationStakeIncreased.ProtoReflect.Descriptor instead. -func (*DelegationEvent_DelegationStakeIncreased) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{86, 0} -} - -func (x *DelegationEvent_DelegationStakeIncreased) GetDelegatorId() *DelegatorId { - if x != nil { - return x.DelegatorId - } - return nil +// Deprecated: Use BlockItemStatus_Finalized.ProtoReflect.Descriptor instead. +func (*BlockItemStatus_Finalized) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{67, 1} } -func (x *DelegationEvent_DelegationStakeIncreased) GetNewStake() *Amount { +func (x *BlockItemStatus_Finalized) GetOutcome() *BlockItemSummaryInBlock { if x != nil { - return x.NewStake + return x.Outcome } return nil } -type DelegationEvent_DelegationStakeDecreased struct { +type RejectReason_InvalidInitMethod struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Delegator's id - DelegatorId *DelegatorId `protobuf:"bytes,1,opt,name=delegator_id,json=delegatorId,proto3" json:"delegator_id,omitempty"` - // New stake - NewStake *Amount `protobuf:"bytes,2,opt,name=new_stake,json=newStake,proto3" json:"new_stake,omitempty"` + ModuleRef *ModuleRef `protobuf:"bytes,1,opt,name=module_ref,json=moduleRef,proto3" json:"module_ref,omitempty"` + InitName *InitName `protobuf:"bytes,2,opt,name=init_name,json=initName,proto3" json:"init_name,omitempty"` } -func (x *DelegationEvent_DelegationStakeDecreased) Reset() { - *x = DelegationEvent_DelegationStakeDecreased{} +func (x *RejectReason_InvalidInitMethod) Reset() { + *x = RejectReason_InvalidInitMethod{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[230] + mi := &file_v2_concordium_types_proto_msgTypes[231] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DelegationEvent_DelegationStakeDecreased) String() string { +func (x *RejectReason_InvalidInitMethod) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DelegationEvent_DelegationStakeDecreased) ProtoMessage() {} +func (*RejectReason_InvalidInitMethod) ProtoMessage() {} -func (x *DelegationEvent_DelegationStakeDecreased) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[230] +func (x *RejectReason_InvalidInitMethod) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[231] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18187,53 +18974,51 @@ func (x *DelegationEvent_DelegationStakeDecreased) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use DelegationEvent_DelegationStakeDecreased.ProtoReflect.Descriptor instead. -func (*DelegationEvent_DelegationStakeDecreased) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{86, 1} +// Deprecated: Use RejectReason_InvalidInitMethod.ProtoReflect.Descriptor instead. +func (*RejectReason_InvalidInitMethod) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{73, 0} } -func (x *DelegationEvent_DelegationStakeDecreased) GetDelegatorId() *DelegatorId { +func (x *RejectReason_InvalidInitMethod) GetModuleRef() *ModuleRef { if x != nil { - return x.DelegatorId + return x.ModuleRef } return nil } -func (x *DelegationEvent_DelegationStakeDecreased) GetNewStake() *Amount { +func (x *RejectReason_InvalidInitMethod) GetInitName() *InitName { if x != nil { - return x.NewStake + return x.InitName } return nil } -type DelegationEvent_DelegationSetRestakeEarnings struct { +type RejectReason_InvalidReceiveMethod struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Delegator's id - DelegatorId *DelegatorId `protobuf:"bytes,1,opt,name=delegator_id,json=delegatorId,proto3" json:"delegator_id,omitempty"` - // Whether earnings will be restaked - RestakeEarnings bool `protobuf:"varint,2,opt,name=restake_earnings,json=restakeEarnings,proto3" json:"restake_earnings,omitempty"` + ModuleRef *ModuleRef `protobuf:"bytes,1,opt,name=module_ref,json=moduleRef,proto3" json:"module_ref,omitempty"` + ReceiveName *ReceiveName `protobuf:"bytes,2,opt,name=receive_name,json=receiveName,proto3" json:"receive_name,omitempty"` } -func (x *DelegationEvent_DelegationSetRestakeEarnings) Reset() { - *x = DelegationEvent_DelegationSetRestakeEarnings{} +func (x *RejectReason_InvalidReceiveMethod) Reset() { + *x = RejectReason_InvalidReceiveMethod{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[231] + mi := &file_v2_concordium_types_proto_msgTypes[232] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DelegationEvent_DelegationSetRestakeEarnings) String() string { +func (x *RejectReason_InvalidReceiveMethod) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DelegationEvent_DelegationSetRestakeEarnings) ProtoMessage() {} +func (*RejectReason_InvalidReceiveMethod) ProtoMessage() {} -func (x *DelegationEvent_DelegationSetRestakeEarnings) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[231] +func (x *RejectReason_InvalidReceiveMethod) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[232] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18244,53 +19029,51 @@ func (x *DelegationEvent_DelegationSetRestakeEarnings) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use DelegationEvent_DelegationSetRestakeEarnings.ProtoReflect.Descriptor instead. -func (*DelegationEvent_DelegationSetRestakeEarnings) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{86, 2} +// Deprecated: Use RejectReason_InvalidReceiveMethod.ProtoReflect.Descriptor instead. +func (*RejectReason_InvalidReceiveMethod) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{73, 1} } -func (x *DelegationEvent_DelegationSetRestakeEarnings) GetDelegatorId() *DelegatorId { +func (x *RejectReason_InvalidReceiveMethod) GetModuleRef() *ModuleRef { if x != nil { - return x.DelegatorId + return x.ModuleRef } return nil } -func (x *DelegationEvent_DelegationSetRestakeEarnings) GetRestakeEarnings() bool { +func (x *RejectReason_InvalidReceiveMethod) GetReceiveName() *ReceiveName { if x != nil { - return x.RestakeEarnings + return x.ReceiveName } - return false + return nil } -type DelegationEvent_DelegationSetDelegationTarget struct { +type RejectReason_AmountTooLarge struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Delegator's id - DelegatorId *DelegatorId `protobuf:"bytes,1,opt,name=delegator_id,json=delegatorId,proto3" json:"delegator_id,omitempty"` - // New delegation target - DelegationTarget *DelegationTarget `protobuf:"bytes,2,opt,name=delegation_target,json=delegationTarget,proto3" json:"delegation_target,omitempty"` + Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Amount *Amount `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` } -func (x *DelegationEvent_DelegationSetDelegationTarget) Reset() { - *x = DelegationEvent_DelegationSetDelegationTarget{} +func (x *RejectReason_AmountTooLarge) Reset() { + *x = RejectReason_AmountTooLarge{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[232] + mi := &file_v2_concordium_types_proto_msgTypes[233] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DelegationEvent_DelegationSetDelegationTarget) String() string { +func (x *RejectReason_AmountTooLarge) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DelegationEvent_DelegationSetDelegationTarget) ProtoMessage() {} +func (*RejectReason_AmountTooLarge) ProtoMessage() {} -func (x *DelegationEvent_DelegationSetDelegationTarget) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[232] +func (x *RejectReason_AmountTooLarge) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[233] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18301,56 +19084,50 @@ func (x *DelegationEvent_DelegationSetDelegationTarget) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use DelegationEvent_DelegationSetDelegationTarget.ProtoReflect.Descriptor instead. -func (*DelegationEvent_DelegationSetDelegationTarget) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{86, 3} +// Deprecated: Use RejectReason_AmountTooLarge.ProtoReflect.Descriptor instead. +func (*RejectReason_AmountTooLarge) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{73, 2} } -func (x *DelegationEvent_DelegationSetDelegationTarget) GetDelegatorId() *DelegatorId { +func (x *RejectReason_AmountTooLarge) GetAddress() *Address { if x != nil { - return x.DelegatorId + return x.Address } return nil } -func (x *DelegationEvent_DelegationSetDelegationTarget) GetDelegationTarget() *DelegationTarget { +func (x *RejectReason_AmountTooLarge) GetAmount() *Amount { if x != nil { - return x.DelegationTarget + return x.Amount } return nil } -// No effects other than payment from this transaction. -// The rejection reason indicates why the transaction failed. -type AccountTransactionEffects_None struct { +type RejectReason_RejectedInit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Transaction type of a failed transaction, if known. - // In case of serialization failure this will not be set. - TransactionType *TransactionType `protobuf:"varint,1,opt,name=transaction_type,json=transactionType,proto3,enum=concordium.v2.TransactionType,oneof" json:"transaction_type,omitempty"` - // Reason for rejection of the transaction. - RejectReason *RejectReason `protobuf:"bytes,2,opt,name=reject_reason,json=rejectReason,proto3" json:"reject_reason,omitempty"` + RejectReason int32 `protobuf:"varint,1,opt,name=reject_reason,json=rejectReason,proto3" json:"reject_reason,omitempty"` } -func (x *AccountTransactionEffects_None) Reset() { - *x = AccountTransactionEffects_None{} +func (x *RejectReason_RejectedInit) Reset() { + *x = RejectReason_RejectedInit{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[233] + mi := &file_v2_concordium_types_proto_msgTypes[234] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AccountTransactionEffects_None) String() string { +func (x *RejectReason_RejectedInit) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AccountTransactionEffects_None) ProtoMessage() {} +func (*RejectReason_RejectedInit) ProtoMessage() {} -func (x *AccountTransactionEffects_None) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[233] +func (x *RejectReason_RejectedInit) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[234] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18361,52 +19138,46 @@ func (x *AccountTransactionEffects_None) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AccountTransactionEffects_None.ProtoReflect.Descriptor instead. -func (*AccountTransactionEffects_None) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{87, 0} -} - -func (x *AccountTransactionEffects_None) GetTransactionType() TransactionType { - if x != nil && x.TransactionType != nil { - return *x.TransactionType - } - return TransactionType_DEPLOY_MODULE +// Deprecated: Use RejectReason_RejectedInit.ProtoReflect.Descriptor instead. +func (*RejectReason_RejectedInit) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{73, 3} } -func (x *AccountTransactionEffects_None) GetRejectReason() *RejectReason { +func (x *RejectReason_RejectedInit) GetRejectReason() int32 { if x != nil { return x.RejectReason } - return nil + return 0 } -// A contract update transaction was issued and produced the given trace. -// This is the result of Update transaction. -type AccountTransactionEffects_ContractUpdateIssued struct { +type RejectReason_RejectedReceive struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Effects []*ContractTraceElement `protobuf:"bytes,1,rep,name=effects,proto3" json:"effects,omitempty"` + RejectReason int32 `protobuf:"varint,1,opt,name=reject_reason,json=rejectReason,proto3" json:"reject_reason,omitempty"` + ContractAddress *ContractAddress `protobuf:"bytes,2,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"` + ReceiveName *ReceiveName `protobuf:"bytes,3,opt,name=receive_name,json=receiveName,proto3" json:"receive_name,omitempty"` + Parameter *Parameter `protobuf:"bytes,4,opt,name=parameter,proto3" json:"parameter,omitempty"` } -func (x *AccountTransactionEffects_ContractUpdateIssued) Reset() { - *x = AccountTransactionEffects_ContractUpdateIssued{} +func (x *RejectReason_RejectedReceive) Reset() { + *x = RejectReason_RejectedReceive{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[234] + mi := &file_v2_concordium_types_proto_msgTypes[235] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AccountTransactionEffects_ContractUpdateIssued) String() string { +func (x *RejectReason_RejectedReceive) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AccountTransactionEffects_ContractUpdateIssued) ProtoMessage() {} +func (*RejectReason_RejectedReceive) ProtoMessage() {} -func (x *AccountTransactionEffects_ContractUpdateIssued) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[234] +func (x *RejectReason_RejectedReceive) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[235] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18417,50 +19188,64 @@ func (x *AccountTransactionEffects_ContractUpdateIssued) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use AccountTransactionEffects_ContractUpdateIssued.ProtoReflect.Descriptor instead. -func (*AccountTransactionEffects_ContractUpdateIssued) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{87, 1} +// Deprecated: Use RejectReason_RejectedReceive.ProtoReflect.Descriptor instead. +func (*RejectReason_RejectedReceive) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{73, 4} } -func (x *AccountTransactionEffects_ContractUpdateIssued) GetEffects() []*ContractTraceElement { +func (x *RejectReason_RejectedReceive) GetRejectReason() int32 { if x != nil { - return x.Effects + return x.RejectReason + } + return 0 +} + +func (x *RejectReason_RejectedReceive) GetContractAddress() *ContractAddress { + if x != nil { + return x.ContractAddress } return nil } -// A simple account to account transfer occurred. This is the result of a -// successful Transfer transaction. -type AccountTransactionEffects_AccountTransfer struct { +func (x *RejectReason_RejectedReceive) GetReceiveName() *ReceiveName { + if x != nil { + return x.ReceiveName + } + return nil +} + +func (x *RejectReason_RejectedReceive) GetParameter() *Parameter { + if x != nil { + return x.Parameter + } + return nil +} + +type RejectReason_DuplicateCredIds struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Amount that was transferred. - Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` - // Receiver account. - Receiver *AccountAddress `protobuf:"bytes,2,opt,name=receiver,proto3" json:"receiver,omitempty"` - // Memo. - Memo *Memo `protobuf:"bytes,3,opt,name=memo,proto3,oneof" json:"memo,omitempty"` + Ids []*CredentialRegistrationId `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"` } -func (x *AccountTransactionEffects_AccountTransfer) Reset() { - *x = AccountTransactionEffects_AccountTransfer{} +func (x *RejectReason_DuplicateCredIds) Reset() { + *x = RejectReason_DuplicateCredIds{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[235] + mi := &file_v2_concordium_types_proto_msgTypes[236] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AccountTransactionEffects_AccountTransfer) String() string { +func (x *RejectReason_DuplicateCredIds) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AccountTransactionEffects_AccountTransfer) ProtoMessage() {} +func (*RejectReason_DuplicateCredIds) ProtoMessage() {} -func (x *AccountTransactionEffects_AccountTransfer) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[235] +func (x *RejectReason_DuplicateCredIds) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[236] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18471,61 +19256,43 @@ func (x *AccountTransactionEffects_AccountTransfer) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use AccountTransactionEffects_AccountTransfer.ProtoReflect.Descriptor instead. -func (*AccountTransactionEffects_AccountTransfer) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{87, 2} -} - -func (x *AccountTransactionEffects_AccountTransfer) GetAmount() *Amount { - if x != nil { - return x.Amount - } - return nil -} - -func (x *AccountTransactionEffects_AccountTransfer) GetReceiver() *AccountAddress { - if x != nil { - return x.Receiver - } - return nil +// Deprecated: Use RejectReason_DuplicateCredIds.ProtoReflect.Descriptor instead. +func (*RejectReason_DuplicateCredIds) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{73, 5} } -func (x *AccountTransactionEffects_AccountTransfer) GetMemo() *Memo { +func (x *RejectReason_DuplicateCredIds) GetIds() []*CredentialRegistrationId { if x != nil { - return x.Memo + return x.Ids } return nil } -// An account was deregistered as a baker. This is the result of a -// successful UpdateBakerStake transaction. -type AccountTransactionEffects_BakerStakeUpdated struct { +type RejectReason_NonExistentCredIds struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // If the stake was updated (that is, it changed and did not stay the - // same) then this is present, otherwise it is not present. - Update *BakerStakeUpdatedData `protobuf:"bytes,1,opt,name=update,proto3,oneof" json:"update,omitempty"` + Ids []*CredentialRegistrationId `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"` } -func (x *AccountTransactionEffects_BakerStakeUpdated) Reset() { - *x = AccountTransactionEffects_BakerStakeUpdated{} +func (x *RejectReason_NonExistentCredIds) Reset() { + *x = RejectReason_NonExistentCredIds{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[236] + mi := &file_v2_concordium_types_proto_msgTypes[237] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AccountTransactionEffects_BakerStakeUpdated) String() string { +func (x *RejectReason_NonExistentCredIds) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AccountTransactionEffects_BakerStakeUpdated) ProtoMessage() {} +func (*RejectReason_NonExistentCredIds) ProtoMessage() {} -func (x *AccountTransactionEffects_BakerStakeUpdated) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[236] +func (x *RejectReason_NonExistentCredIds) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[237] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18536,47 +19303,49 @@ func (x *AccountTransactionEffects_BakerStakeUpdated) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use AccountTransactionEffects_BakerStakeUpdated.ProtoReflect.Descriptor instead. -func (*AccountTransactionEffects_BakerStakeUpdated) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{87, 3} +// Deprecated: Use RejectReason_NonExistentCredIds.ProtoReflect.Descriptor instead. +func (*RejectReason_NonExistentCredIds) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{73, 6} } -func (x *AccountTransactionEffects_BakerStakeUpdated) GetUpdate() *BakerStakeUpdatedData { +func (x *RejectReason_NonExistentCredIds) GetIds() []*CredentialRegistrationId { if x != nil { - return x.Update + return x.Ids } return nil } -// An encrypted amount was transferred. This is the result of a successful -// EncryptedAmountTransfer transaction. -type AccountTransactionEffects_EncryptedAmountTransferred struct { +// A contract transferred an amount to an account. +type ContractTraceElement_Transferred struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Removed *EncryptedAmountRemovedEvent `protobuf:"bytes,1,opt,name=removed,proto3" json:"removed,omitempty"` - Added *NewEncryptedAmountEvent `protobuf:"bytes,2,opt,name=added,proto3" json:"added,omitempty"` - Memo *Memo `protobuf:"bytes,3,opt,name=memo,proto3,oneof" json:"memo,omitempty"` + // Sender contract. + Sender *ContractAddress `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + // Amount transferred. + Amount *Amount `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` + // Receiver account. + Receiver *AccountAddress `protobuf:"bytes,3,opt,name=receiver,proto3" json:"receiver,omitempty"` } -func (x *AccountTransactionEffects_EncryptedAmountTransferred) Reset() { - *x = AccountTransactionEffects_EncryptedAmountTransferred{} +func (x *ContractTraceElement_Transferred) Reset() { + *x = ContractTraceElement_Transferred{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[237] + mi := &file_v2_concordium_types_proto_msgTypes[238] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AccountTransactionEffects_EncryptedAmountTransferred) String() string { +func (x *ContractTraceElement_Transferred) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AccountTransactionEffects_EncryptedAmountTransferred) ProtoMessage() {} +func (*ContractTraceElement_Transferred) ProtoMessage() {} -func (x *AccountTransactionEffects_EncryptedAmountTransferred) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[237] +func (x *ContractTraceElement_Transferred) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[238] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18587,60 +19356,62 @@ func (x *AccountTransactionEffects_EncryptedAmountTransferred) ProtoReflect() pr return mi.MessageOf(x) } -// Deprecated: Use AccountTransactionEffects_EncryptedAmountTransferred.ProtoReflect.Descriptor instead. -func (*AccountTransactionEffects_EncryptedAmountTransferred) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{87, 4} +// Deprecated: Use ContractTraceElement_Transferred.ProtoReflect.Descriptor instead. +func (*ContractTraceElement_Transferred) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{77, 0} } -func (x *AccountTransactionEffects_EncryptedAmountTransferred) GetRemoved() *EncryptedAmountRemovedEvent { +func (x *ContractTraceElement_Transferred) GetSender() *ContractAddress { if x != nil { - return x.Removed + return x.Sender } return nil } -func (x *AccountTransactionEffects_EncryptedAmountTransferred) GetAdded() *NewEncryptedAmountEvent { +func (x *ContractTraceElement_Transferred) GetAmount() *Amount { if x != nil { - return x.Added + return x.Amount } return nil } -func (x *AccountTransactionEffects_EncryptedAmountTransferred) GetMemo() *Memo { +func (x *ContractTraceElement_Transferred) GetReceiver() *AccountAddress { if x != nil { - return x.Memo + return x.Receiver } return nil } -// An account transferred part of its encrypted balance to its public -// balance. This is the result of a successful TransferToPublic transaction. -type AccountTransactionEffects_TransferredToPublic struct { +// A contract was interrupted. +// This occurs when a contract invokes another contract or makes a transfer to an account. +type ContractTraceElement_Interrupted struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Removed *EncryptedAmountRemovedEvent `protobuf:"bytes,1,opt,name=removed,proto3" json:"removed,omitempty"` - Amount *Amount `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` + // The contract interrupted. + Address *ContractAddress `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + // The events generated up until the interruption. + Events []*ContractEvent `protobuf:"bytes,2,rep,name=events,proto3" json:"events,omitempty"` } -func (x *AccountTransactionEffects_TransferredToPublic) Reset() { - *x = AccountTransactionEffects_TransferredToPublic{} +func (x *ContractTraceElement_Interrupted) Reset() { + *x = ContractTraceElement_Interrupted{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[238] + mi := &file_v2_concordium_types_proto_msgTypes[239] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AccountTransactionEffects_TransferredToPublic) String() string { +func (x *ContractTraceElement_Interrupted) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AccountTransactionEffects_TransferredToPublic) ProtoMessage() {} +func (*ContractTraceElement_Interrupted) ProtoMessage() {} -func (x *AccountTransactionEffects_TransferredToPublic) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[238] +func (x *ContractTraceElement_Interrupted) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[239] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18651,57 +19422,54 @@ func (x *AccountTransactionEffects_TransferredToPublic) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use AccountTransactionEffects_TransferredToPublic.ProtoReflect.Descriptor instead. -func (*AccountTransactionEffects_TransferredToPublic) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{87, 5} +// Deprecated: Use ContractTraceElement_Interrupted.ProtoReflect.Descriptor instead. +func (*ContractTraceElement_Interrupted) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{77, 1} } -func (x *AccountTransactionEffects_TransferredToPublic) GetRemoved() *EncryptedAmountRemovedEvent { +func (x *ContractTraceElement_Interrupted) GetAddress() *ContractAddress { if x != nil { - return x.Removed + return x.Address } return nil } -func (x *AccountTransactionEffects_TransferredToPublic) GetAmount() *Amount { +func (x *ContractTraceElement_Interrupted) GetEvents() []*ContractEvent { if x != nil { - return x.Amount + return x.Events } return nil } -// A transfer with schedule was performed. This is the result of a -// successful TransferWithSchedule transaction. -type AccountTransactionEffects_TransferredWithSchedule struct { +// A previously interrupted contract was resumed. +type ContractTraceElement_Resumed struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Receiver account. - Receiver *AccountAddress `protobuf:"bytes,1,opt,name=receiver,proto3" json:"receiver,omitempty"` - // The list of releases. Ordered by increasing timestamp. - Amount []*NewRelease `protobuf:"bytes,2,rep,name=amount,proto3" json:"amount,omitempty"` - // Optional memo. - Memo *Memo `protobuf:"bytes,3,opt,name=memo,proto3,oneof" json:"memo,omitempty"` + // The contract resumed. + Address *ContractAddress `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + // Whether the action that caused the interruption (invoke contract or make transfer) was successful or not. + Success bool `protobuf:"varint,2,opt,name=success,proto3" json:"success,omitempty"` } -func (x *AccountTransactionEffects_TransferredWithSchedule) Reset() { - *x = AccountTransactionEffects_TransferredWithSchedule{} +func (x *ContractTraceElement_Resumed) Reset() { + *x = ContractTraceElement_Resumed{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[239] + mi := &file_v2_concordium_types_proto_msgTypes[240] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AccountTransactionEffects_TransferredWithSchedule) String() string { +func (x *ContractTraceElement_Resumed) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AccountTransactionEffects_TransferredWithSchedule) ProtoMessage() {} +func (*ContractTraceElement_Resumed) ProtoMessage() {} -func (x *AccountTransactionEffects_TransferredWithSchedule) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[239] +func (x *ContractTraceElement_Resumed) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[240] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18712,64 +19480,56 @@ func (x *AccountTransactionEffects_TransferredWithSchedule) ProtoReflect() proto return mi.MessageOf(x) } -// Deprecated: Use AccountTransactionEffects_TransferredWithSchedule.ProtoReflect.Descriptor instead. -func (*AccountTransactionEffects_TransferredWithSchedule) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{87, 6} -} - -func (x *AccountTransactionEffects_TransferredWithSchedule) GetReceiver() *AccountAddress { - if x != nil { - return x.Receiver - } - return nil +// Deprecated: Use ContractTraceElement_Resumed.ProtoReflect.Descriptor instead. +func (*ContractTraceElement_Resumed) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{77, 2} } -func (x *AccountTransactionEffects_TransferredWithSchedule) GetAmount() []*NewRelease { +func (x *ContractTraceElement_Resumed) GetAddress() *ContractAddress { if x != nil { - return x.Amount + return x.Address } return nil } -func (x *AccountTransactionEffects_TransferredWithSchedule) GetMemo() *Memo { +func (x *ContractTraceElement_Resumed) GetSuccess() bool { if x != nil { - return x.Memo + return x.Success } - return nil + return false } -// Account's credentials were updated. This is the result of a -// successful UpdateCredentials transaction. -type AccountTransactionEffects_CredentialsUpdated struct { +// A previously interrupted contract was resumed. +type ContractTraceElement_Upgraded struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The credential ids that were added. - NewCredIds []*CredentialRegistrationId `protobuf:"bytes,1,rep,name=new_cred_ids,json=newCredIds,proto3" json:"new_cred_ids,omitempty"` - // The credentials that were removed. - RemovedCredIds []*CredentialRegistrationId `protobuf:"bytes,2,rep,name=removed_cred_ids,json=removedCredIds,proto3" json:"removed_cred_ids,omitempty"` - // The (possibly) updated account threshold. - NewThreshold *AccountThreshold `protobuf:"bytes,3,opt,name=new_threshold,json=newThreshold,proto3" json:"new_threshold,omitempty"` + // The that was upgraded. + Address *ContractAddress `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + // The module from which the contract was upgraded. + From *ModuleRef `protobuf:"bytes,2,opt,name=from,proto3" json:"from,omitempty"` + // The module to which it was upgraded. + To *ModuleRef `protobuf:"bytes,3,opt,name=to,proto3" json:"to,omitempty"` } -func (x *AccountTransactionEffects_CredentialsUpdated) Reset() { - *x = AccountTransactionEffects_CredentialsUpdated{} +func (x *ContractTraceElement_Upgraded) Reset() { + *x = ContractTraceElement_Upgraded{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[240] + mi := &file_v2_concordium_types_proto_msgTypes[241] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AccountTransactionEffects_CredentialsUpdated) String() string { +func (x *ContractTraceElement_Upgraded) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AccountTransactionEffects_CredentialsUpdated) ProtoMessage() {} +func (*ContractTraceElement_Upgraded) ProtoMessage() {} -func (x *AccountTransactionEffects_CredentialsUpdated) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[240] +func (x *ContractTraceElement_Upgraded) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[241] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18780,59 +19540,65 @@ func (x *AccountTransactionEffects_CredentialsUpdated) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use AccountTransactionEffects_CredentialsUpdated.ProtoReflect.Descriptor instead. -func (*AccountTransactionEffects_CredentialsUpdated) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{87, 7} +// Deprecated: Use ContractTraceElement_Upgraded.ProtoReflect.Descriptor instead. +func (*ContractTraceElement_Upgraded) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{77, 3} } -func (x *AccountTransactionEffects_CredentialsUpdated) GetNewCredIds() []*CredentialRegistrationId { +func (x *ContractTraceElement_Upgraded) GetAddress() *ContractAddress { if x != nil { - return x.NewCredIds + return x.Address } return nil } -func (x *AccountTransactionEffects_CredentialsUpdated) GetRemovedCredIds() []*CredentialRegistrationId { +func (x *ContractTraceElement_Upgraded) GetFrom() *ModuleRef { if x != nil { - return x.RemovedCredIds + return x.From } return nil } -func (x *AccountTransactionEffects_CredentialsUpdated) GetNewThreshold() *AccountThreshold { +func (x *ContractTraceElement_Upgraded) GetTo() *ModuleRef { if x != nil { - return x.NewThreshold + return x.To } return nil } -// A baker was configured. The details of what happened are contained in -// the list of BakerEvents. -type AccountTransactionEffects_BakerConfigured struct { +// A baker was added. +type BakerEvent_BakerAdded struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Events []*BakerEvent `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` + // The keys with which the baker registered. + KeysEvent *BakerKeysEvent `protobuf:"bytes,1,opt,name=keys_event,json=keysEvent,proto3" json:"keys_event,omitempty"` + // The amount the account staked to become a baker. This amount is + // locked. + Stake *Amount `protobuf:"bytes,2,opt,name=stake,proto3" json:"stake,omitempty"` + // Whether the baker will automatically add earnings to their stake or + // not. + RestakeEarnings bool `protobuf:"varint,3,opt,name=restake_earnings,json=restakeEarnings,proto3" json:"restake_earnings,omitempty"` } -func (x *AccountTransactionEffects_BakerConfigured) Reset() { - *x = AccountTransactionEffects_BakerConfigured{} +func (x *BakerEvent_BakerAdded) Reset() { + *x = BakerEvent_BakerAdded{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[241] + mi := &file_v2_concordium_types_proto_msgTypes[242] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AccountTransactionEffects_BakerConfigured) String() string { +func (x *BakerEvent_BakerAdded) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AccountTransactionEffects_BakerConfigured) ProtoMessage() {} +func (*BakerEvent_BakerAdded) ProtoMessage() {} -func (x *AccountTransactionEffects_BakerConfigured) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[241] +func (x *BakerEvent_BakerAdded) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[242] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18843,45 +19609,61 @@ func (x *AccountTransactionEffects_BakerConfigured) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use AccountTransactionEffects_BakerConfigured.ProtoReflect.Descriptor instead. -func (*AccountTransactionEffects_BakerConfigured) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{87, 8} +// Deprecated: Use BakerEvent_BakerAdded.ProtoReflect.Descriptor instead. +func (*BakerEvent_BakerAdded) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{85, 0} } -func (x *AccountTransactionEffects_BakerConfigured) GetEvents() []*BakerEvent { +func (x *BakerEvent_BakerAdded) GetKeysEvent() *BakerKeysEvent { if x != nil { - return x.Events + return x.KeysEvent } return nil } -// An account configured delegation. The details of what happened are -// contained in the list of DelegationEvents. -type AccountTransactionEffects_DelegationConfigured struct { +func (x *BakerEvent_BakerAdded) GetStake() *Amount { + if x != nil { + return x.Stake + } + return nil +} + +func (x *BakerEvent_BakerAdded) GetRestakeEarnings() bool { + if x != nil { + return x.RestakeEarnings + } + return false +} + +// Baker stake increased. +type BakerEvent_BakerStakeIncreased struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Events []*DelegationEvent `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` + // Baker's id. + BakerId *BakerId `protobuf:"bytes,1,opt,name=baker_id,json=bakerId,proto3" json:"baker_id,omitempty"` + // The new stake. + NewStake *Amount `protobuf:"bytes,2,opt,name=new_stake,json=newStake,proto3" json:"new_stake,omitempty"` } -func (x *AccountTransactionEffects_DelegationConfigured) Reset() { - *x = AccountTransactionEffects_DelegationConfigured{} +func (x *BakerEvent_BakerStakeIncreased) Reset() { + *x = BakerEvent_BakerStakeIncreased{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[242] + mi := &file_v2_concordium_types_proto_msgTypes[243] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AccountTransactionEffects_DelegationConfigured) String() string { +func (x *BakerEvent_BakerStakeIncreased) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AccountTransactionEffects_DelegationConfigured) ProtoMessage() {} +func (*BakerEvent_BakerStakeIncreased) ProtoMessage() {} -func (x *AccountTransactionEffects_DelegationConfigured) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[242] +func (x *BakerEvent_BakerStakeIncreased) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[243] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18892,45 +19674,53 @@ func (x *AccountTransactionEffects_DelegationConfigured) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use AccountTransactionEffects_DelegationConfigured.ProtoReflect.Descriptor instead. -func (*AccountTransactionEffects_DelegationConfigured) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{87, 9} +// Deprecated: Use BakerEvent_BakerStakeIncreased.ProtoReflect.Descriptor instead. +func (*BakerEvent_BakerStakeIncreased) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{85, 1} } -func (x *AccountTransactionEffects_DelegationConfigured) GetEvents() []*DelegationEvent { +func (x *BakerEvent_BakerStakeIncreased) GetBakerId() *BakerId { if x != nil { - return x.Events + return x.BakerId } return nil } -// Identity of the anonymity revoker on the chain. This defines their -// evaluateion point for secret sharing, and thus it cannot be 0. -type ArInfo_ArIdentity struct { +func (x *BakerEvent_BakerStakeIncreased) GetNewStake() *Amount { + if x != nil { + return x.NewStake + } + return nil +} + +type BakerEvent_BakerStakeDecreased struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Value uint32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` + // Baker's id. + BakerId *BakerId `protobuf:"bytes,1,opt,name=baker_id,json=bakerId,proto3" json:"baker_id,omitempty"` + // The new stake. + NewStake *Amount `protobuf:"bytes,2,opt,name=new_stake,json=newStake,proto3" json:"new_stake,omitempty"` } -func (x *ArInfo_ArIdentity) Reset() { - *x = ArInfo_ArIdentity{} +func (x *BakerEvent_BakerStakeDecreased) Reset() { + *x = BakerEvent_BakerStakeDecreased{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[243] + mi := &file_v2_concordium_types_proto_msgTypes[244] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ArInfo_ArIdentity) String() string { +func (x *BakerEvent_BakerStakeDecreased) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ArInfo_ArIdentity) ProtoMessage() {} +func (*BakerEvent_BakerStakeDecreased) ProtoMessage() {} -func (x *ArInfo_ArIdentity) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[243] +func (x *BakerEvent_BakerStakeDecreased) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[244] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18941,44 +19731,53 @@ func (x *ArInfo_ArIdentity) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ArInfo_ArIdentity.ProtoReflect.Descriptor instead. -func (*ArInfo_ArIdentity) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{102, 0} +// Deprecated: Use BakerEvent_BakerStakeDecreased.ProtoReflect.Descriptor instead. +func (*BakerEvent_BakerStakeDecreased) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{85, 2} } -func (x *ArInfo_ArIdentity) GetValue() uint32 { +func (x *BakerEvent_BakerStakeDecreased) GetBakerId() *BakerId { if x != nil { - return x.Value + return x.BakerId } - return 0 + return nil } -// Public key of an anonymity revoker. -type ArInfo_ArPublicKey struct { +func (x *BakerEvent_BakerStakeDecreased) GetNewStake() *Amount { + if x != nil { + return x.NewStake + } + return nil +} + +type BakerEvent_BakerRestakeEarningsUpdated struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + // Baker's id. + BakerId *BakerId `protobuf:"bytes,1,opt,name=baker_id,json=bakerId,proto3" json:"baker_id,omitempty"` + // The new value of the flag. + RestakeEarnings bool `protobuf:"varint,2,opt,name=restake_earnings,json=restakeEarnings,proto3" json:"restake_earnings,omitempty"` } -func (x *ArInfo_ArPublicKey) Reset() { - *x = ArInfo_ArPublicKey{} +func (x *BakerEvent_BakerRestakeEarningsUpdated) Reset() { + *x = BakerEvent_BakerRestakeEarningsUpdated{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[244] + mi := &file_v2_concordium_types_proto_msgTypes[245] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ArInfo_ArPublicKey) String() string { +func (x *BakerEvent_BakerRestakeEarningsUpdated) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ArInfo_ArPublicKey) ProtoMessage() {} +func (*BakerEvent_BakerRestakeEarningsUpdated) ProtoMessage() {} -func (x *ArInfo_ArPublicKey) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[244] +func (x *BakerEvent_BakerRestakeEarningsUpdated) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[245] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18989,44 +19788,54 @@ func (x *ArInfo_ArPublicKey) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ArInfo_ArPublicKey.ProtoReflect.Descriptor instead. -func (*ArInfo_ArPublicKey) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{102, 1} +// Deprecated: Use BakerEvent_BakerRestakeEarningsUpdated.ProtoReflect.Descriptor instead. +func (*BakerEvent_BakerRestakeEarningsUpdated) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{85, 3} } -func (x *ArInfo_ArPublicKey) GetValue() []byte { +func (x *BakerEvent_BakerRestakeEarningsUpdated) GetBakerId() *BakerId { if x != nil { - return x.Value + return x.BakerId } return nil } -// Pointcheval-Sanders public key of the identity provider. -type IpInfo_IpVerifyKey struct { +func (x *BakerEvent_BakerRestakeEarningsUpdated) GetRestakeEarnings() bool { + if x != nil { + return x.RestakeEarnings + } + return false +} + +// Updated open status for a baker pool. +type BakerEvent_BakerSetOpenStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + // Baker's id. + BakerId *BakerId `protobuf:"bytes,1,opt,name=baker_id,json=bakerId,proto3" json:"baker_id,omitempty"` + // The new open status. + OpenStatus OpenStatus `protobuf:"varint,2,opt,name=open_status,json=openStatus,proto3,enum=concordium.v2.OpenStatus" json:"open_status,omitempty"` } -func (x *IpInfo_IpVerifyKey) Reset() { - *x = IpInfo_IpVerifyKey{} +func (x *BakerEvent_BakerSetOpenStatus) Reset() { + *x = BakerEvent_BakerSetOpenStatus{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[245] + mi := &file_v2_concordium_types_proto_msgTypes[246] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IpInfo_IpVerifyKey) String() string { +func (x *BakerEvent_BakerSetOpenStatus) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IpInfo_IpVerifyKey) ProtoMessage() {} +func (*BakerEvent_BakerSetOpenStatus) ProtoMessage() {} -func (x *IpInfo_IpVerifyKey) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[245] +func (x *BakerEvent_BakerSetOpenStatus) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[246] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19037,44 +19846,54 @@ func (x *IpInfo_IpVerifyKey) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IpInfo_IpVerifyKey.ProtoReflect.Descriptor instead. -func (*IpInfo_IpVerifyKey) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{104, 0} +// Deprecated: Use BakerEvent_BakerSetOpenStatus.ProtoReflect.Descriptor instead. +func (*BakerEvent_BakerSetOpenStatus) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{85, 4} } -func (x *IpInfo_IpVerifyKey) GetValue() []byte { +func (x *BakerEvent_BakerSetOpenStatus) GetBakerId() *BakerId { if x != nil { - return x.Value + return x.BakerId } return nil } -// Ed25519 public key of the identity provider. -type IpInfo_IpCdiVerifyKey struct { +func (x *BakerEvent_BakerSetOpenStatus) GetOpenStatus() OpenStatus { + if x != nil { + return x.OpenStatus + } + return OpenStatus_OPEN_STATUS_OPEN_FOR_ALL +} + +// Updated metadata url for a baker pool. +type BakerEvent_BakerSetMetadataUrl struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + // Baker's id. + BakerId *BakerId `protobuf:"bytes,1,opt,name=baker_id,json=bakerId,proto3" json:"baker_id,omitempty"` + // The URL. + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` } -func (x *IpInfo_IpCdiVerifyKey) Reset() { - *x = IpInfo_IpCdiVerifyKey{} +func (x *BakerEvent_BakerSetMetadataUrl) Reset() { + *x = BakerEvent_BakerSetMetadataUrl{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[246] + mi := &file_v2_concordium_types_proto_msgTypes[247] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IpInfo_IpCdiVerifyKey) String() string { +func (x *BakerEvent_BakerSetMetadataUrl) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IpInfo_IpCdiVerifyKey) ProtoMessage() {} +func (*BakerEvent_BakerSetMetadataUrl) ProtoMessage() {} -func (x *IpInfo_IpCdiVerifyKey) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[246] +func (x *BakerEvent_BakerSetMetadataUrl) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[247] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19085,43 +19904,54 @@ func (x *IpInfo_IpCdiVerifyKey) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IpInfo_IpCdiVerifyKey.ProtoReflect.Descriptor instead. -func (*IpInfo_IpCdiVerifyKey) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{104, 1} +// Deprecated: Use BakerEvent_BakerSetMetadataUrl.ProtoReflect.Descriptor instead. +func (*BakerEvent_BakerSetMetadataUrl) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{85, 5} } -func (x *IpInfo_IpCdiVerifyKey) GetValue() []byte { +func (x *BakerEvent_BakerSetMetadataUrl) GetBakerId() *BakerId { if x != nil { - return x.Value + return x.BakerId } return nil } -type BlockItemSummary_TransactionIndex struct { +func (x *BakerEvent_BakerSetMetadataUrl) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +// Updated transaction fee commission for a baker pool. +type BakerEvent_BakerSetTransactionFeeCommission struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Value uint64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` + // Baker's id. + BakerId *BakerId `protobuf:"bytes,1,opt,name=baker_id,json=bakerId,proto3" json:"baker_id,omitempty"` + // The transaction fee commission. + TransactionFeeCommission *AmountFraction `protobuf:"bytes,2,opt,name=transaction_fee_commission,json=transactionFeeCommission,proto3" json:"transaction_fee_commission,omitempty"` } -func (x *BlockItemSummary_TransactionIndex) Reset() { - *x = BlockItemSummary_TransactionIndex{} +func (x *BakerEvent_BakerSetTransactionFeeCommission) Reset() { + *x = BakerEvent_BakerSetTransactionFeeCommission{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[247] + mi := &file_v2_concordium_types_proto_msgTypes[248] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BlockItemSummary_TransactionIndex) String() string { +func (x *BakerEvent_BakerSetTransactionFeeCommission) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BlockItemSummary_TransactionIndex) ProtoMessage() {} +func (*BakerEvent_BakerSetTransactionFeeCommission) ProtoMessage() {} -func (x *BlockItemSummary_TransactionIndex) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[247] +func (x *BakerEvent_BakerSetTransactionFeeCommission) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[248] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19132,47 +19962,54 @@ func (x *BlockItemSummary_TransactionIndex) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BlockItemSummary_TransactionIndex.ProtoReflect.Descriptor instead. -func (*BlockItemSummary_TransactionIndex) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{130, 0} +// Deprecated: Use BakerEvent_BakerSetTransactionFeeCommission.ProtoReflect.Descriptor instead. +func (*BakerEvent_BakerSetTransactionFeeCommission) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{85, 6} } -func (x *BlockItemSummary_TransactionIndex) GetValue() uint64 { +func (x *BakerEvent_BakerSetTransactionFeeCommission) GetBakerId() *BakerId { if x != nil { - return x.Value + return x.BakerId } - return 0 + return nil } -// A reduction in baker equity capital is pending. -type PoolPendingChange_Reduce struct { +func (x *BakerEvent_BakerSetTransactionFeeCommission) GetTransactionFeeCommission() *AmountFraction { + if x != nil { + return x.TransactionFeeCommission + } + return nil +} + +// Updated baking reward commission for baker pool +type BakerEvent_BakerSetBakingRewardCommission struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // New baker equity capital. - ReducedEquityCapital *Amount `protobuf:"bytes,1,opt,name=reduced_equity_capital,json=reducedEquityCapital,proto3" json:"reduced_equity_capital,omitempty"` - // Timestamp when the change takes effect. - EffectiveTime *Timestamp `protobuf:"bytes,2,opt,name=effective_time,json=effectiveTime,proto3" json:"effective_time,omitempty"` + // Baker's id + BakerId *BakerId `protobuf:"bytes,1,opt,name=baker_id,json=bakerId,proto3" json:"baker_id,omitempty"` + // The baking reward commission + BakingRewardCommission *AmountFraction `protobuf:"bytes,2,opt,name=baking_reward_commission,json=bakingRewardCommission,proto3" json:"baking_reward_commission,omitempty"` } -func (x *PoolPendingChange_Reduce) Reset() { - *x = PoolPendingChange_Reduce{} +func (x *BakerEvent_BakerSetBakingRewardCommission) Reset() { + *x = BakerEvent_BakerSetBakingRewardCommission{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[248] + mi := &file_v2_concordium_types_proto_msgTypes[249] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PoolPendingChange_Reduce) String() string { +func (x *BakerEvent_BakerSetBakingRewardCommission) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PoolPendingChange_Reduce) ProtoMessage() {} +func (*BakerEvent_BakerSetBakingRewardCommission) ProtoMessage() {} -func (x *PoolPendingChange_Reduce) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[248] +func (x *BakerEvent_BakerSetBakingRewardCommission) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[249] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19183,52 +20020,54 @@ func (x *PoolPendingChange_Reduce) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PoolPendingChange_Reduce.ProtoReflect.Descriptor instead. -func (*PoolPendingChange_Reduce) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{137, 0} +// Deprecated: Use BakerEvent_BakerSetBakingRewardCommission.ProtoReflect.Descriptor instead. +func (*BakerEvent_BakerSetBakingRewardCommission) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{85, 7} } -func (x *PoolPendingChange_Reduce) GetReducedEquityCapital() *Amount { +func (x *BakerEvent_BakerSetBakingRewardCommission) GetBakerId() *BakerId { if x != nil { - return x.ReducedEquityCapital + return x.BakerId } return nil } -func (x *PoolPendingChange_Reduce) GetEffectiveTime() *Timestamp { +func (x *BakerEvent_BakerSetBakingRewardCommission) GetBakingRewardCommission() *AmountFraction { if x != nil { - return x.EffectiveTime + return x.BakingRewardCommission } return nil } -// Removal of the pool is pending. -type PoolPendingChange_Remove struct { +// Updated finalization reward commission for baker pool +type BakerEvent_BakerSetFinalizationRewardCommission struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Timestamp when the change takes effect. - EffectiveTime *Timestamp `protobuf:"bytes,1,opt,name=effective_time,json=effectiveTime,proto3" json:"effective_time,omitempty"` + // Baker's id + BakerId *BakerId `protobuf:"bytes,1,opt,name=baker_id,json=bakerId,proto3" json:"baker_id,omitempty"` + // The finalization reward commission + FinalizationRewardCommission *AmountFraction `protobuf:"bytes,2,opt,name=finalization_reward_commission,json=finalizationRewardCommission,proto3" json:"finalization_reward_commission,omitempty"` } -func (x *PoolPendingChange_Remove) Reset() { - *x = PoolPendingChange_Remove{} +func (x *BakerEvent_BakerSetFinalizationRewardCommission) Reset() { + *x = BakerEvent_BakerSetFinalizationRewardCommission{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[249] + mi := &file_v2_concordium_types_proto_msgTypes[250] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PoolPendingChange_Remove) String() string { +func (x *BakerEvent_BakerSetFinalizationRewardCommission) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PoolPendingChange_Remove) ProtoMessage() {} +func (*BakerEvent_BakerSetFinalizationRewardCommission) ProtoMessage() {} -func (x *PoolPendingChange_Remove) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[249] +func (x *BakerEvent_BakerSetFinalizationRewardCommission) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[250] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19239,45 +20078,53 @@ func (x *PoolPendingChange_Remove) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PoolPendingChange_Remove.ProtoReflect.Descriptor instead. -func (*PoolPendingChange_Remove) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{137, 1} +// Deprecated: Use BakerEvent_BakerSetFinalizationRewardCommission.ProtoReflect.Descriptor instead. +func (*BakerEvent_BakerSetFinalizationRewardCommission) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{85, 8} } -func (x *PoolPendingChange_Remove) GetEffectiveTime() *Timestamp { +func (x *BakerEvent_BakerSetFinalizationRewardCommission) GetBakerId() *BakerId { if x != nil { - return x.EffectiveTime + return x.BakerId } return nil } -// Request using an absolute block height. -type BlocksAtHeightRequest_Absolute struct { +func (x *BakerEvent_BakerSetFinalizationRewardCommission) GetFinalizationRewardCommission() *AmountFraction { + if x != nil { + return x.FinalizationRewardCommission + } + return nil +} + +type DelegationEvent_DelegationStakeIncreased struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The absolute block height. - Height *AbsoluteBlockHeight `protobuf:"bytes,1,opt,name=height,proto3" json:"height,omitempty"` + // Delegator's id + DelegatorId *DelegatorId `protobuf:"bytes,1,opt,name=delegator_id,json=delegatorId,proto3" json:"delegator_id,omitempty"` + // New stake + NewStake *Amount `protobuf:"bytes,2,opt,name=new_stake,json=newStake,proto3" json:"new_stake,omitempty"` } -func (x *BlocksAtHeightRequest_Absolute) Reset() { - *x = BlocksAtHeightRequest_Absolute{} +func (x *DelegationEvent_DelegationStakeIncreased) Reset() { + *x = DelegationEvent_DelegationStakeIncreased{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[250] + mi := &file_v2_concordium_types_proto_msgTypes[251] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BlocksAtHeightRequest_Absolute) String() string { +func (x *DelegationEvent_DelegationStakeIncreased) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BlocksAtHeightRequest_Absolute) ProtoMessage() {} +func (*DelegationEvent_DelegationStakeIncreased) ProtoMessage() {} -func (x *BlocksAtHeightRequest_Absolute) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[250] +func (x *DelegationEvent_DelegationStakeIncreased) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[251] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19288,50 +20135,53 @@ func (x *BlocksAtHeightRequest_Absolute) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BlocksAtHeightRequest_Absolute.ProtoReflect.Descriptor instead. -func (*BlocksAtHeightRequest_Absolute) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{141, 0} +// Deprecated: Use DelegationEvent_DelegationStakeIncreased.ProtoReflect.Descriptor instead. +func (*DelegationEvent_DelegationStakeIncreased) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{87, 0} } -func (x *BlocksAtHeightRequest_Absolute) GetHeight() *AbsoluteBlockHeight { +func (x *DelegationEvent_DelegationStakeIncreased) GetDelegatorId() *DelegatorId { if x != nil { - return x.Height + return x.DelegatorId } return nil } -// Request using a relative block height. -type BlocksAtHeightRequest_Relative struct { +func (x *DelegationEvent_DelegationStakeIncreased) GetNewStake() *Amount { + if x != nil { + return x.NewStake + } + return nil +} + +type DelegationEvent_DelegationStakeDecreased struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Genesis index to start from. - GenesisIndex *GenesisIndex `protobuf:"bytes,1,opt,name=genesis_index,json=genesisIndex,proto3" json:"genesis_index,omitempty"` - // Height starting from the genesis block at the genesis index. - Height *BlockHeight `protobuf:"bytes,2,opt,name=height,proto3" json:"height,omitempty"` - // Whether to return results only from the specified genesis index (`true`), - // or allow results from more recent genesis indices as well (`false`). - Restrict bool `protobuf:"varint,3,opt,name=restrict,proto3" json:"restrict,omitempty"` + // Delegator's id + DelegatorId *DelegatorId `protobuf:"bytes,1,opt,name=delegator_id,json=delegatorId,proto3" json:"delegator_id,omitempty"` + // New stake + NewStake *Amount `protobuf:"bytes,2,opt,name=new_stake,json=newStake,proto3" json:"new_stake,omitempty"` } -func (x *BlocksAtHeightRequest_Relative) Reset() { - *x = BlocksAtHeightRequest_Relative{} +func (x *DelegationEvent_DelegationStakeDecreased) Reset() { + *x = DelegationEvent_DelegationStakeDecreased{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[251] + mi := &file_v2_concordium_types_proto_msgTypes[252] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BlocksAtHeightRequest_Relative) String() string { +func (x *DelegationEvent_DelegationStakeDecreased) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BlocksAtHeightRequest_Relative) ProtoMessage() {} +func (*DelegationEvent_DelegationStakeDecreased) ProtoMessage() {} -func (x *BlocksAtHeightRequest_Relative) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[251] +func (x *DelegationEvent_DelegationStakeDecreased) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[252] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19342,69 +20192,53 @@ func (x *BlocksAtHeightRequest_Relative) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BlocksAtHeightRequest_Relative.ProtoReflect.Descriptor instead. -func (*BlocksAtHeightRequest_Relative) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{141, 1} +// Deprecated: Use DelegationEvent_DelegationStakeDecreased.ProtoReflect.Descriptor instead. +func (*DelegationEvent_DelegationStakeDecreased) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{87, 1} } -func (x *BlocksAtHeightRequest_Relative) GetGenesisIndex() *GenesisIndex { +func (x *DelegationEvent_DelegationStakeDecreased) GetDelegatorId() *DelegatorId { if x != nil { - return x.GenesisIndex + return x.DelegatorId } return nil } -func (x *BlocksAtHeightRequest_Relative) GetHeight() *BlockHeight { +func (x *DelegationEvent_DelegationStakeDecreased) GetNewStake() *Amount { if x != nil { - return x.Height + return x.NewStake } return nil } -func (x *BlocksAtHeightRequest_Relative) GetRestrict() bool { - if x != nil { - return x.Restrict - } - return false -} - -// Version 0 tokenomics. -type TokenomicsInfo_V0 struct { +type DelegationEvent_DelegationSetRestakeEarnings struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The total CCD in existence. - TotalAmount *Amount `protobuf:"bytes,1,opt,name=total_amount,json=totalAmount,proto3" json:"total_amount,omitempty"` - // The total CCD in encrypted balances. - TotalEncryptedAmount *Amount `protobuf:"bytes,2,opt,name=total_encrypted_amount,json=totalEncryptedAmount,proto3" json:"total_encrypted_amount,omitempty"` - // The amount in the baking reward account. - BakingRewardAccount *Amount `protobuf:"bytes,3,opt,name=baking_reward_account,json=bakingRewardAccount,proto3" json:"baking_reward_account,omitempty"` - // The amount in the finalization reward account. - FinalizationRewardAccount *Amount `protobuf:"bytes,4,opt,name=finalization_reward_account,json=finalizationRewardAccount,proto3" json:"finalization_reward_account,omitempty"` - // The amount in the GAS account. - GasAccount *Amount `protobuf:"bytes,5,opt,name=gas_account,json=gasAccount,proto3" json:"gas_account,omitempty"` - // The protocol version. - ProtocolVersion ProtocolVersion `protobuf:"varint,6,opt,name=protocol_version,json=protocolVersion,proto3,enum=concordium.v2.ProtocolVersion" json:"protocol_version,omitempty"` + // Delegator's id + DelegatorId *DelegatorId `protobuf:"bytes,1,opt,name=delegator_id,json=delegatorId,proto3" json:"delegator_id,omitempty"` + // Whether earnings will be restaked + RestakeEarnings bool `protobuf:"varint,2,opt,name=restake_earnings,json=restakeEarnings,proto3" json:"restake_earnings,omitempty"` } -func (x *TokenomicsInfo_V0) Reset() { - *x = TokenomicsInfo_V0{} +func (x *DelegationEvent_DelegationSetRestakeEarnings) Reset() { + *x = DelegationEvent_DelegationSetRestakeEarnings{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[252] + mi := &file_v2_concordium_types_proto_msgTypes[253] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *TokenomicsInfo_V0) String() string { +func (x *DelegationEvent_DelegationSetRestakeEarnings) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TokenomicsInfo_V0) ProtoMessage() {} +func (*DelegationEvent_DelegationSetRestakeEarnings) ProtoMessage() {} -func (x *TokenomicsInfo_V0) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[252] +func (x *DelegationEvent_DelegationSetRestakeEarnings) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[253] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19415,98 +20249,53 @@ func (x *TokenomicsInfo_V0) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TokenomicsInfo_V0.ProtoReflect.Descriptor instead. -func (*TokenomicsInfo_V0) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{143, 0} -} - -func (x *TokenomicsInfo_V0) GetTotalAmount() *Amount { - if x != nil { - return x.TotalAmount - } - return nil +// Deprecated: Use DelegationEvent_DelegationSetRestakeEarnings.ProtoReflect.Descriptor instead. +func (*DelegationEvent_DelegationSetRestakeEarnings) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{87, 2} } -func (x *TokenomicsInfo_V0) GetTotalEncryptedAmount() *Amount { +func (x *DelegationEvent_DelegationSetRestakeEarnings) GetDelegatorId() *DelegatorId { if x != nil { - return x.TotalEncryptedAmount + return x.DelegatorId } return nil } -func (x *TokenomicsInfo_V0) GetBakingRewardAccount() *Amount { +func (x *DelegationEvent_DelegationSetRestakeEarnings) GetRestakeEarnings() bool { if x != nil { - return x.BakingRewardAccount + return x.RestakeEarnings } - return nil + return false } -func (x *TokenomicsInfo_V0) GetFinalizationRewardAccount() *Amount { - if x != nil { - return x.FinalizationRewardAccount - } - return nil -} - -func (x *TokenomicsInfo_V0) GetGasAccount() *Amount { - if x != nil { - return x.GasAccount - } - return nil -} - -func (x *TokenomicsInfo_V0) GetProtocolVersion() ProtocolVersion { - if x != nil { - return x.ProtocolVersion - } - return ProtocolVersion_PROTOCOL_VERSION_1 -} - -// Version 1 tokenomics. -type TokenomicsInfo_V1 struct { +type DelegationEvent_DelegationSetDelegationTarget struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The total CCD in existence. - TotalAmount *Amount `protobuf:"bytes,1,opt,name=total_amount,json=totalAmount,proto3" json:"total_amount,omitempty"` - // The total CCD in encrypted balances. - TotalEncryptedAmount *Amount `protobuf:"bytes,2,opt,name=total_encrypted_amount,json=totalEncryptedAmount,proto3" json:"total_encrypted_amount,omitempty"` - // The amount in the baking reward account. - BakingRewardAccount *Amount `protobuf:"bytes,3,opt,name=baking_reward_account,json=bakingRewardAccount,proto3" json:"baking_reward_account,omitempty"` - // The amount in the finalization reward account. - FinalizationRewardAccount *Amount `protobuf:"bytes,4,opt,name=finalization_reward_account,json=finalizationRewardAccount,proto3" json:"finalization_reward_account,omitempty"` - // The amount in the GAS account. - GasAccount *Amount `protobuf:"bytes,5,opt,name=gas_account,json=gasAccount,proto3" json:"gas_account,omitempty"` - // The transaction reward fraction accruing to the foundation (to be paid at next payday). - FoundationTransactionRewards *Amount `protobuf:"bytes,6,opt,name=foundation_transaction_rewards,json=foundationTransactionRewards,proto3" json:"foundation_transaction_rewards,omitempty"` - // The time of the next payday. - NextPaydayTime *Timestamp `protobuf:"bytes,7,opt,name=next_payday_time,json=nextPaydayTime,proto3" json:"next_payday_time,omitempty"` - // The rate at which CCD will be minted (as a proportion of the total supply) at the next payday. - NextPaydayMintRate *MintRate `protobuf:"bytes,8,opt,name=next_payday_mint_rate,json=nextPaydayMintRate,proto3" json:"next_payday_mint_rate,omitempty"` - // The total capital put up as stake by bakers and delegators. - TotalStakedCapital *Amount `protobuf:"bytes,9,opt,name=total_staked_capital,json=totalStakedCapital,proto3" json:"total_staked_capital,omitempty"` - // The protocol version. - ProtocolVersion ProtocolVersion `protobuf:"varint,10,opt,name=protocol_version,json=protocolVersion,proto3,enum=concordium.v2.ProtocolVersion" json:"protocol_version,omitempty"` + // Delegator's id + DelegatorId *DelegatorId `protobuf:"bytes,1,opt,name=delegator_id,json=delegatorId,proto3" json:"delegator_id,omitempty"` + // New delegation target + DelegationTarget *DelegationTarget `protobuf:"bytes,2,opt,name=delegation_target,json=delegationTarget,proto3" json:"delegation_target,omitempty"` } -func (x *TokenomicsInfo_V1) Reset() { - *x = TokenomicsInfo_V1{} +func (x *DelegationEvent_DelegationSetDelegationTarget) Reset() { + *x = DelegationEvent_DelegationSetDelegationTarget{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[253] + mi := &file_v2_concordium_types_proto_msgTypes[254] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *TokenomicsInfo_V1) String() string { +func (x *DelegationEvent_DelegationSetDelegationTarget) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TokenomicsInfo_V1) ProtoMessage() {} +func (*DelegationEvent_DelegationSetDelegationTarget) ProtoMessage() {} -func (x *TokenomicsInfo_V1) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[253] +func (x *DelegationEvent_DelegationSetDelegationTarget) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[254] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19517,115 +20306,112 @@ func (x *TokenomicsInfo_V1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TokenomicsInfo_V1.ProtoReflect.Descriptor instead. -func (*TokenomicsInfo_V1) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{143, 1} +// Deprecated: Use DelegationEvent_DelegationSetDelegationTarget.ProtoReflect.Descriptor instead. +func (*DelegationEvent_DelegationSetDelegationTarget) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{87, 3} } -func (x *TokenomicsInfo_V1) GetTotalAmount() *Amount { +func (x *DelegationEvent_DelegationSetDelegationTarget) GetDelegatorId() *DelegatorId { if x != nil { - return x.TotalAmount + return x.DelegatorId } return nil } -func (x *TokenomicsInfo_V1) GetTotalEncryptedAmount() *Amount { +func (x *DelegationEvent_DelegationSetDelegationTarget) GetDelegationTarget() *DelegationTarget { if x != nil { - return x.TotalEncryptedAmount + return x.DelegationTarget } return nil } -func (x *TokenomicsInfo_V1) GetBakingRewardAccount() *Amount { - if x != nil { - return x.BakingRewardAccount - } - return nil -} +// No effects other than payment from this transaction. +// The rejection reason indicates why the transaction failed. +type AccountTransactionEffects_None struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *TokenomicsInfo_V1) GetFinalizationRewardAccount() *Amount { - if x != nil { - return x.FinalizationRewardAccount - } - return nil + // Transaction type of a failed transaction, if known. + // In case of serialization failure this will not be set. + TransactionType *TransactionType `protobuf:"varint,1,opt,name=transaction_type,json=transactionType,proto3,enum=concordium.v2.TransactionType,oneof" json:"transaction_type,omitempty"` + // Reason for rejection of the transaction. + RejectReason *RejectReason `protobuf:"bytes,2,opt,name=reject_reason,json=rejectReason,proto3" json:"reject_reason,omitempty"` } -func (x *TokenomicsInfo_V1) GetGasAccount() *Amount { - if x != nil { - return x.GasAccount +func (x *AccountTransactionEffects_None) Reset() { + *x = AccountTransactionEffects_None{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[255] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *TokenomicsInfo_V1) GetFoundationTransactionRewards() *Amount { - if x != nil { - return x.FoundationTransactionRewards - } - return nil +func (x *AccountTransactionEffects_None) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *TokenomicsInfo_V1) GetNextPaydayTime() *Timestamp { - if x != nil { - return x.NextPaydayTime +func (*AccountTransactionEffects_None) ProtoMessage() {} + +func (x *AccountTransactionEffects_None) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[255] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *TokenomicsInfo_V1) GetNextPaydayMintRate() *MintRate { - if x != nil { - return x.NextPaydayMintRate - } - return nil +// Deprecated: Use AccountTransactionEffects_None.ProtoReflect.Descriptor instead. +func (*AccountTransactionEffects_None) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{88, 0} } -func (x *TokenomicsInfo_V1) GetTotalStakedCapital() *Amount { - if x != nil { - return x.TotalStakedCapital +func (x *AccountTransactionEffects_None) GetTransactionType() TransactionType { + if x != nil && x.TransactionType != nil { + return *x.TransactionType } - return nil + return TransactionType_DEPLOY_MODULE } -func (x *TokenomicsInfo_V1) GetProtocolVersion() ProtocolVersion { +func (x *AccountTransactionEffects_None) GetRejectReason() *RejectReason { if x != nil { - return x.ProtocolVersion + return x.RejectReason } - return ProtocolVersion_PROTOCOL_VERSION_1 + return nil } -// Contract execution failed. -type InvokeInstanceResponse_Failure struct { +// A contract update transaction was issued and produced the given trace. +// This is the result of Update transaction. +type AccountTransactionEffects_ContractUpdateIssued struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // If invoking a V0 contract this is not provided, otherwise it is - // potentially return value produced by the call unless the call failed with - // out of energy or runtime error. If the V1 contract terminated with a - // logic error then the return value is present. - ReturnValue []byte `protobuf:"bytes,1,opt,name=return_value,json=returnValue,proto3,oneof" json:"return_value,omitempty"` - // Energy used by the execution. - UsedEnergy *Energy `protobuf:"bytes,2,opt,name=used_energy,json=usedEnergy,proto3" json:"used_energy,omitempty"` - // Contract execution failed for the given reason. - Reason *RejectReason `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"` + Effects []*ContractTraceElement `protobuf:"bytes,1,rep,name=effects,proto3" json:"effects,omitempty"` } -func (x *InvokeInstanceResponse_Failure) Reset() { - *x = InvokeInstanceResponse_Failure{} +func (x *AccountTransactionEffects_ContractUpdateIssued) Reset() { + *x = AccountTransactionEffects_ContractUpdateIssued{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[254] + mi := &file_v2_concordium_types_proto_msgTypes[256] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *InvokeInstanceResponse_Failure) String() string { +func (x *AccountTransactionEffects_ContractUpdateIssued) String() string { return protoimpl.X.MessageStringOf(x) } -func (*InvokeInstanceResponse_Failure) ProtoMessage() {} +func (*AccountTransactionEffects_ContractUpdateIssued) ProtoMessage() {} -func (x *InvokeInstanceResponse_Failure) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[254] +func (x *AccountTransactionEffects_ContractUpdateIssued) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[256] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19636,64 +20422,50 @@ func (x *InvokeInstanceResponse_Failure) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use InvokeInstanceResponse_Failure.ProtoReflect.Descriptor instead. -func (*InvokeInstanceResponse_Failure) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{145, 0} -} - -func (x *InvokeInstanceResponse_Failure) GetReturnValue() []byte { - if x != nil { - return x.ReturnValue - } - return nil -} - -func (x *InvokeInstanceResponse_Failure) GetUsedEnergy() *Energy { - if x != nil { - return x.UsedEnergy - } - return nil +// Deprecated: Use AccountTransactionEffects_ContractUpdateIssued.ProtoReflect.Descriptor instead. +func (*AccountTransactionEffects_ContractUpdateIssued) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{88, 1} } -func (x *InvokeInstanceResponse_Failure) GetReason() *RejectReason { +func (x *AccountTransactionEffects_ContractUpdateIssued) GetEffects() []*ContractTraceElement { if x != nil { - return x.Reason + return x.Effects } return nil } -// Contract execution succeeded. -type InvokeInstanceResponse_Success struct { +// A simple account to account transfer occurred. This is the result of a +// successful Transfer transaction. +type AccountTransactionEffects_AccountTransfer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // If invoking a V0 contract this is absent. Otherwise it is the return - // value produced by the contract. - ReturnValue []byte `protobuf:"bytes,1,opt,name=return_value,json=returnValue,proto3,oneof" json:"return_value,omitempty"` - // Energy used by the execution. - UsedEnergy *Energy `protobuf:"bytes,2,opt,name=used_energy,json=usedEnergy,proto3" json:"used_energy,omitempty"` - // Effects produced by contract execution. - Effects []*ContractTraceElement `protobuf:"bytes,3,rep,name=effects,proto3" json:"effects,omitempty"` + // Amount that was transferred. + Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + // Receiver account. + Receiver *AccountAddress `protobuf:"bytes,2,opt,name=receiver,proto3" json:"receiver,omitempty"` + // Memo. + Memo *Memo `protobuf:"bytes,3,opt,name=memo,proto3,oneof" json:"memo,omitempty"` } -func (x *InvokeInstanceResponse_Success) Reset() { - *x = InvokeInstanceResponse_Success{} +func (x *AccountTransactionEffects_AccountTransfer) Reset() { + *x = AccountTransactionEffects_AccountTransfer{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[255] + mi := &file_v2_concordium_types_proto_msgTypes[257] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *InvokeInstanceResponse_Success) String() string { +func (x *AccountTransactionEffects_AccountTransfer) String() string { return protoimpl.X.MessageStringOf(x) } -func (*InvokeInstanceResponse_Success) ProtoMessage() {} +func (*AccountTransactionEffects_AccountTransfer) ProtoMessage() {} -func (x *InvokeInstanceResponse_Success) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[255] +func (x *AccountTransactionEffects_AccountTransfer) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[257] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19704,62 +20476,61 @@ func (x *InvokeInstanceResponse_Success) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use InvokeInstanceResponse_Success.ProtoReflect.Descriptor instead. -func (*InvokeInstanceResponse_Success) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{145, 1} +// Deprecated: Use AccountTransactionEffects_AccountTransfer.ProtoReflect.Descriptor instead. +func (*AccountTransactionEffects_AccountTransfer) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{88, 2} } -func (x *InvokeInstanceResponse_Success) GetReturnValue() []byte { +func (x *AccountTransactionEffects_AccountTransfer) GetAmount() *Amount { if x != nil { - return x.ReturnValue + return x.Amount } return nil } -func (x *InvokeInstanceResponse_Success) GetUsedEnergy() *Energy { +func (x *AccountTransactionEffects_AccountTransfer) GetReceiver() *AccountAddress { if x != nil { - return x.UsedEnergy + return x.Receiver } return nil } -func (x *InvokeInstanceResponse_Success) GetEffects() []*ContractTraceElement { +func (x *AccountTransactionEffects_AccountTransfer) GetMemo() *Memo { if x != nil { - return x.Effects + return x.Memo } return nil } -type ElectionInfo_Baker struct { +// An account was deregistered as a baker. This is the result of a +// successful UpdateBakerStake transaction. +type AccountTransactionEffects_BakerStakeUpdated struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The ID of the baker. - Baker *BakerId `protobuf:"bytes,1,opt,name=baker,proto3" json:"baker,omitempty"` - // The account address of the baker. - Account *AccountAddress `protobuf:"bytes,2,opt,name=account,proto3" json:"account,omitempty"` - // The lottery power of the baker, rounded to the nearest representable "double". - LotteryPower float64 `protobuf:"fixed64,3,opt,name=lottery_power,json=lotteryPower,proto3" json:"lottery_power,omitempty"` + // If the stake was updated (that is, it changed and did not stay the + // same) then this is present, otherwise it is not present. + Update *BakerStakeUpdatedData `protobuf:"bytes,1,opt,name=update,proto3,oneof" json:"update,omitempty"` } -func (x *ElectionInfo_Baker) Reset() { - *x = ElectionInfo_Baker{} +func (x *AccountTransactionEffects_BakerStakeUpdated) Reset() { + *x = AccountTransactionEffects_BakerStakeUpdated{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[256] + mi := &file_v2_concordium_types_proto_msgTypes[258] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ElectionInfo_Baker) String() string { +func (x *AccountTransactionEffects_BakerStakeUpdated) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ElectionInfo_Baker) ProtoMessage() {} +func (*AccountTransactionEffects_BakerStakeUpdated) ProtoMessage() {} -func (x *ElectionInfo_Baker) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[256] +func (x *AccountTransactionEffects_BakerStakeUpdated) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[258] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19770,58 +20541,47 @@ func (x *ElectionInfo_Baker) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ElectionInfo_Baker.ProtoReflect.Descriptor instead. -func (*ElectionInfo_Baker) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{151, 0} -} - -func (x *ElectionInfo_Baker) GetBaker() *BakerId { - if x != nil { - return x.Baker - } - return nil +// Deprecated: Use AccountTransactionEffects_BakerStakeUpdated.ProtoReflect.Descriptor instead. +func (*AccountTransactionEffects_BakerStakeUpdated) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{88, 3} } -func (x *ElectionInfo_Baker) GetAccount() *AccountAddress { +func (x *AccountTransactionEffects_BakerStakeUpdated) GetUpdate() *BakerStakeUpdatedData { if x != nil { - return x.Account + return x.Update } return nil } -func (x *ElectionInfo_Baker) GetLotteryPower() float64 { - if x != nil { - return x.LotteryPower - } - return 0 -} - -// A representation of a mapping from an account address to an amount. -type BlockSpecialEvent_AccountAmounts struct { +// An encrypted amount was transferred. This is the result of a successful +// EncryptedAmountTransfer transaction. +type AccountTransactionEffects_EncryptedAmountTransferred struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Entries []*BlockSpecialEvent_AccountAmounts_Entry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` + Removed *EncryptedAmountRemovedEvent `protobuf:"bytes,1,opt,name=removed,proto3" json:"removed,omitempty"` + Added *NewEncryptedAmountEvent `protobuf:"bytes,2,opt,name=added,proto3" json:"added,omitempty"` + Memo *Memo `protobuf:"bytes,3,opt,name=memo,proto3,oneof" json:"memo,omitempty"` } -func (x *BlockSpecialEvent_AccountAmounts) Reset() { - *x = BlockSpecialEvent_AccountAmounts{} +func (x *AccountTransactionEffects_EncryptedAmountTransferred) Reset() { + *x = AccountTransactionEffects_EncryptedAmountTransferred{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[257] + mi := &file_v2_concordium_types_proto_msgTypes[259] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BlockSpecialEvent_AccountAmounts) String() string { +func (x *AccountTransactionEffects_EncryptedAmountTransferred) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BlockSpecialEvent_AccountAmounts) ProtoMessage() {} +func (*AccountTransactionEffects_EncryptedAmountTransferred) ProtoMessage() {} -func (x *BlockSpecialEvent_AccountAmounts) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[257] +func (x *AccountTransactionEffects_EncryptedAmountTransferred) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[259] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19832,48 +20592,60 @@ func (x *BlockSpecialEvent_AccountAmounts) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BlockSpecialEvent_AccountAmounts.ProtoReflect.Descriptor instead. -func (*BlockSpecialEvent_AccountAmounts) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{152, 0} +// Deprecated: Use AccountTransactionEffects_EncryptedAmountTransferred.ProtoReflect.Descriptor instead. +func (*AccountTransactionEffects_EncryptedAmountTransferred) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{88, 4} } -func (x *BlockSpecialEvent_AccountAmounts) GetEntries() []*BlockSpecialEvent_AccountAmounts_Entry { +func (x *AccountTransactionEffects_EncryptedAmountTransferred) GetRemoved() *EncryptedAmountRemovedEvent { if x != nil { - return x.Entries + return x.Removed } return nil } -// Payment to each baker of a previous epoch, in proportion to the number -// of blocks they contributed. -type BlockSpecialEvent_BakingRewards struct { +func (x *AccountTransactionEffects_EncryptedAmountTransferred) GetAdded() *NewEncryptedAmountEvent { + if x != nil { + return x.Added + } + return nil +} + +func (x *AccountTransactionEffects_EncryptedAmountTransferred) GetMemo() *Memo { + if x != nil { + return x.Memo + } + return nil +} + +// An account transferred part of its encrypted balance to its public +// balance. This is the result of a successful TransferToPublic transaction. +type AccountTransactionEffects_TransferredToPublic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The amount awarded to each baker. - BakerRewards *BlockSpecialEvent_AccountAmounts `protobuf:"bytes,1,opt,name=baker_rewards,json=bakerRewards,proto3" json:"baker_rewards,omitempty"` - // The remaining balance of the baker reward account. - Remainder *Amount `protobuf:"bytes,2,opt,name=remainder,proto3" json:"remainder,omitempty"` + Removed *EncryptedAmountRemovedEvent `protobuf:"bytes,1,opt,name=removed,proto3" json:"removed,omitempty"` + Amount *Amount `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` } -func (x *BlockSpecialEvent_BakingRewards) Reset() { - *x = BlockSpecialEvent_BakingRewards{} +func (x *AccountTransactionEffects_TransferredToPublic) Reset() { + *x = AccountTransactionEffects_TransferredToPublic{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[258] + mi := &file_v2_concordium_types_proto_msgTypes[260] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BlockSpecialEvent_BakingRewards) String() string { +func (x *AccountTransactionEffects_TransferredToPublic) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BlockSpecialEvent_BakingRewards) ProtoMessage() {} +func (*AccountTransactionEffects_TransferredToPublic) ProtoMessage() {} -func (x *BlockSpecialEvent_BakingRewards) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[258] +func (x *AccountTransactionEffects_TransferredToPublic) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[260] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19884,58 +20656,57 @@ func (x *BlockSpecialEvent_BakingRewards) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BlockSpecialEvent_BakingRewards.ProtoReflect.Descriptor instead. -func (*BlockSpecialEvent_BakingRewards) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{152, 1} +// Deprecated: Use AccountTransactionEffects_TransferredToPublic.ProtoReflect.Descriptor instead. +func (*AccountTransactionEffects_TransferredToPublic) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{88, 5} } -func (x *BlockSpecialEvent_BakingRewards) GetBakerRewards() *BlockSpecialEvent_AccountAmounts { +func (x *AccountTransactionEffects_TransferredToPublic) GetRemoved() *EncryptedAmountRemovedEvent { if x != nil { - return x.BakerRewards + return x.Removed } return nil } -func (x *BlockSpecialEvent_BakingRewards) GetRemainder() *Amount { +func (x *AccountTransactionEffects_TransferredToPublic) GetAmount() *Amount { if x != nil { - return x.Remainder + return x.Amount } return nil } -// Minting of new CCD. -type BlockSpecialEvent_Mint struct { +// A transfer with schedule was performed. This is the result of a +// successful TransferWithSchedule transaction. +type AccountTransactionEffects_TransferredWithSchedule struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The amount allocated to the banking reward account. - MintBakingReward *Amount `protobuf:"bytes,1,opt,name=mint_baking_reward,json=mintBakingReward,proto3" json:"mint_baking_reward,omitempty"` - // The amount allocated to the finalization reward account. - MintFinalizationReward *Amount `protobuf:"bytes,2,opt,name=mint_finalization_reward,json=mintFinalizationReward,proto3" json:"mint_finalization_reward,omitempty"` - // The amount allocated as the platform development charge. - MintPlatformDevelopmentCharge *Amount `protobuf:"bytes,3,opt,name=mint_platform_development_charge,json=mintPlatformDevelopmentCharge,proto3" json:"mint_platform_development_charge,omitempty"` - // The account to which the platform development charge is paid. - FoundationAccount *AccountAddress `protobuf:"bytes,4,opt,name=foundation_account,json=foundationAccount,proto3" json:"foundation_account,omitempty"` + // Receiver account. + Receiver *AccountAddress `protobuf:"bytes,1,opt,name=receiver,proto3" json:"receiver,omitempty"` + // The list of releases. Ordered by increasing timestamp. + Amount []*NewRelease `protobuf:"bytes,2,rep,name=amount,proto3" json:"amount,omitempty"` + // Optional memo. + Memo *Memo `protobuf:"bytes,3,opt,name=memo,proto3,oneof" json:"memo,omitempty"` } -func (x *BlockSpecialEvent_Mint) Reset() { - *x = BlockSpecialEvent_Mint{} +func (x *AccountTransactionEffects_TransferredWithSchedule) Reset() { + *x = AccountTransactionEffects_TransferredWithSchedule{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[259] + mi := &file_v2_concordium_types_proto_msgTypes[261] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BlockSpecialEvent_Mint) String() string { +func (x *AccountTransactionEffects_TransferredWithSchedule) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BlockSpecialEvent_Mint) ProtoMessage() {} +func (*AccountTransactionEffects_TransferredWithSchedule) ProtoMessage() {} -func (x *BlockSpecialEvent_Mint) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[259] +func (x *AccountTransactionEffects_TransferredWithSchedule) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[261] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19946,68 +20717,64 @@ func (x *BlockSpecialEvent_Mint) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BlockSpecialEvent_Mint.ProtoReflect.Descriptor instead. -func (*BlockSpecialEvent_Mint) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{152, 2} -} - -func (x *BlockSpecialEvent_Mint) GetMintBakingReward() *Amount { - if x != nil { - return x.MintBakingReward - } - return nil +// Deprecated: Use AccountTransactionEffects_TransferredWithSchedule.ProtoReflect.Descriptor instead. +func (*AccountTransactionEffects_TransferredWithSchedule) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{88, 6} } -func (x *BlockSpecialEvent_Mint) GetMintFinalizationReward() *Amount { +func (x *AccountTransactionEffects_TransferredWithSchedule) GetReceiver() *AccountAddress { if x != nil { - return x.MintFinalizationReward + return x.Receiver } return nil } -func (x *BlockSpecialEvent_Mint) GetMintPlatformDevelopmentCharge() *Amount { +func (x *AccountTransactionEffects_TransferredWithSchedule) GetAmount() []*NewRelease { if x != nil { - return x.MintPlatformDevelopmentCharge + return x.Amount } return nil } -func (x *BlockSpecialEvent_Mint) GetFoundationAccount() *AccountAddress { +func (x *AccountTransactionEffects_TransferredWithSchedule) GetMemo() *Memo { if x != nil { - return x.FoundationAccount + return x.Memo } return nil } -// Payment to each finalizer on inclusion of a finalization record in a block. -type BlockSpecialEvent_FinalizationRewards struct { +// Account's credentials were updated. This is the result of a +// successful UpdateCredentials transaction. +type AccountTransactionEffects_CredentialsUpdated struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The amount awarded to each finalizer. - FinalizationRewards *BlockSpecialEvent_AccountAmounts `protobuf:"bytes,1,opt,name=finalization_rewards,json=finalizationRewards,proto3" json:"finalization_rewards,omitempty"` - // The remaining balance of the finalization reward account. - Remainder *Amount `protobuf:"bytes,2,opt,name=remainder,proto3" json:"remainder,omitempty"` + // The credential ids that were added. + NewCredIds []*CredentialRegistrationId `protobuf:"bytes,1,rep,name=new_cred_ids,json=newCredIds,proto3" json:"new_cred_ids,omitempty"` + // The credentials that were removed. + RemovedCredIds []*CredentialRegistrationId `protobuf:"bytes,2,rep,name=removed_cred_ids,json=removedCredIds,proto3" json:"removed_cred_ids,omitempty"` + // The (possibly) updated account threshold. + NewThreshold *AccountThreshold `protobuf:"bytes,3,opt,name=new_threshold,json=newThreshold,proto3" json:"new_threshold,omitempty"` } -func (x *BlockSpecialEvent_FinalizationRewards) Reset() { - *x = BlockSpecialEvent_FinalizationRewards{} +func (x *AccountTransactionEffects_CredentialsUpdated) Reset() { + *x = AccountTransactionEffects_CredentialsUpdated{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[260] + mi := &file_v2_concordium_types_proto_msgTypes[262] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BlockSpecialEvent_FinalizationRewards) String() string { +func (x *AccountTransactionEffects_CredentialsUpdated) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BlockSpecialEvent_FinalizationRewards) ProtoMessage() {} +func (*AccountTransactionEffects_CredentialsUpdated) ProtoMessage() {} -func (x *BlockSpecialEvent_FinalizationRewards) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[260] +func (x *AccountTransactionEffects_CredentialsUpdated) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[262] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20018,67 +20785,59 @@ func (x *BlockSpecialEvent_FinalizationRewards) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use BlockSpecialEvent_FinalizationRewards.ProtoReflect.Descriptor instead. -func (*BlockSpecialEvent_FinalizationRewards) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{152, 3} +// Deprecated: Use AccountTransactionEffects_CredentialsUpdated.ProtoReflect.Descriptor instead. +func (*AccountTransactionEffects_CredentialsUpdated) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{88, 7} } -func (x *BlockSpecialEvent_FinalizationRewards) GetFinalizationRewards() *BlockSpecialEvent_AccountAmounts { +func (x *AccountTransactionEffects_CredentialsUpdated) GetNewCredIds() []*CredentialRegistrationId { if x != nil { - return x.FinalizationRewards + return x.NewCredIds } return nil } -func (x *BlockSpecialEvent_FinalizationRewards) GetRemainder() *Amount { +func (x *AccountTransactionEffects_CredentialsUpdated) GetRemovedCredIds() []*CredentialRegistrationId { if x != nil { - return x.Remainder + return x.RemovedCredIds } return nil } -// Disbursement of fees from a block between the GAS account, -// the baker, and the foundation. It should always be that: -// -// ```transaction_fees + old_gas_account = new_gas_account + baker_reward + foundation_charge``` -type BlockSpecialEvent_BlockReward struct { +func (x *AccountTransactionEffects_CredentialsUpdated) GetNewThreshold() *AccountThreshold { + if x != nil { + return x.NewThreshold + } + return nil +} + +// A baker was configured. The details of what happened are contained in +// the list of BakerEvents. +type AccountTransactionEffects_BakerConfigured struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The total fees paid for transactions in the block. - TransactionFees *Amount `protobuf:"bytes,1,opt,name=transaction_fees,json=transactionFees,proto3" json:"transaction_fees,omitempty"` - // The old balance of the GAS account. - OldGasAccount *Amount `protobuf:"bytes,2,opt,name=old_gas_account,json=oldGasAccount,proto3" json:"old_gas_account,omitempty"` - // The new balance of the GAS account. - NewGasAccount *Amount `protobuf:"bytes,3,opt,name=new_gas_account,json=newGasAccount,proto3" json:"new_gas_account,omitempty"` - // The amount awarded to the baker. - BakerReward *Amount `protobuf:"bytes,4,opt,name=baker_reward,json=bakerReward,proto3" json:"baker_reward,omitempty"` - // The amount awarded to the foundation. - FoundationCharge *Amount `protobuf:"bytes,5,opt,name=foundation_charge,json=foundationCharge,proto3" json:"foundation_charge,omitempty"` - // The baker of the block, who receives the award. - Baker *AccountAddress `protobuf:"bytes,6,opt,name=baker,proto3" json:"baker,omitempty"` - // The foundation account. - FoundationAccount *AccountAddress `protobuf:"bytes,7,opt,name=foundation_account,json=foundationAccount,proto3" json:"foundation_account,omitempty"` + Events []*BakerEvent `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` } -func (x *BlockSpecialEvent_BlockReward) Reset() { - *x = BlockSpecialEvent_BlockReward{} +func (x *AccountTransactionEffects_BakerConfigured) Reset() { + *x = AccountTransactionEffects_BakerConfigured{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[261] + mi := &file_v2_concordium_types_proto_msgTypes[263] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BlockSpecialEvent_BlockReward) String() string { +func (x *AccountTransactionEffects_BakerConfigured) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BlockSpecialEvent_BlockReward) ProtoMessage() {} +func (*AccountTransactionEffects_BakerConfigured) ProtoMessage() {} -func (x *BlockSpecialEvent_BlockReward) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[261] +func (x *AccountTransactionEffects_BakerConfigured) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[263] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20089,89 +20848,94 @@ func (x *BlockSpecialEvent_BlockReward) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BlockSpecialEvent_BlockReward.ProtoReflect.Descriptor instead. -func (*BlockSpecialEvent_BlockReward) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{152, 4} +// Deprecated: Use AccountTransactionEffects_BakerConfigured.ProtoReflect.Descriptor instead. +func (*AccountTransactionEffects_BakerConfigured) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{88, 8} } -func (x *BlockSpecialEvent_BlockReward) GetTransactionFees() *Amount { +func (x *AccountTransactionEffects_BakerConfigured) GetEvents() []*BakerEvent { if x != nil { - return x.TransactionFees + return x.Events } return nil } -func (x *BlockSpecialEvent_BlockReward) GetOldGasAccount() *Amount { - if x != nil { - return x.OldGasAccount - } - return nil +// An account configured delegation. The details of what happened are +// contained in the list of DelegationEvents. +type AccountTransactionEffects_DelegationConfigured struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Events []*DelegationEvent `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` } -func (x *BlockSpecialEvent_BlockReward) GetNewGasAccount() *Amount { - if x != nil { - return x.NewGasAccount +func (x *AccountTransactionEffects_DelegationConfigured) Reset() { + *x = AccountTransactionEffects_DelegationConfigured{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[264] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BlockSpecialEvent_BlockReward) GetBakerReward() *Amount { - if x != nil { - return x.BakerReward - } - return nil +func (x *AccountTransactionEffects_DelegationConfigured) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BlockSpecialEvent_BlockReward) GetFoundationCharge() *Amount { - if x != nil { - return x.FoundationCharge +func (*AccountTransactionEffects_DelegationConfigured) ProtoMessage() {} + +func (x *AccountTransactionEffects_DelegationConfigured) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[264] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BlockSpecialEvent_BlockReward) GetBaker() *AccountAddress { - if x != nil { - return x.Baker - } - return nil +// Deprecated: Use AccountTransactionEffects_DelegationConfigured.ProtoReflect.Descriptor instead. +func (*AccountTransactionEffects_DelegationConfigured) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{88, 9} } -func (x *BlockSpecialEvent_BlockReward) GetFoundationAccount() *AccountAddress { +func (x *AccountTransactionEffects_DelegationConfigured) GetEvents() []*DelegationEvent { if x != nil { - return x.FoundationAccount + return x.Events } return nil } -// Foundation tax. -type BlockSpecialEvent_PaydayFoundationReward struct { +// Identity of the anonymity revoker on the chain. This defines their +// evaluateion point for secret sharing, and thus it cannot be 0. +type ArInfo_ArIdentity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The account that got rewarded. - FoundationAccount *AccountAddress `protobuf:"bytes,1,opt,name=foundation_account,json=foundationAccount,proto3" json:"foundation_account,omitempty"` - // The transaction fee reward at payday to the account. - DevelopmentCharge *Amount `protobuf:"bytes,2,opt,name=development_charge,json=developmentCharge,proto3" json:"development_charge,omitempty"` + Value uint32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` } -func (x *BlockSpecialEvent_PaydayFoundationReward) Reset() { - *x = BlockSpecialEvent_PaydayFoundationReward{} +func (x *ArInfo_ArIdentity) Reset() { + *x = ArInfo_ArIdentity{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[262] + mi := &file_v2_concordium_types_proto_msgTypes[265] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BlockSpecialEvent_PaydayFoundationReward) String() string { +func (x *ArInfo_ArIdentity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BlockSpecialEvent_PaydayFoundationReward) ProtoMessage() {} +func (*ArInfo_ArIdentity) ProtoMessage() {} -func (x *BlockSpecialEvent_PaydayFoundationReward) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[262] +func (x *ArInfo_ArIdentity) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[265] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20182,58 +20946,44 @@ func (x *BlockSpecialEvent_PaydayFoundationReward) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use BlockSpecialEvent_PaydayFoundationReward.ProtoReflect.Descriptor instead. -func (*BlockSpecialEvent_PaydayFoundationReward) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{152, 5} -} - -func (x *BlockSpecialEvent_PaydayFoundationReward) GetFoundationAccount() *AccountAddress { - if x != nil { - return x.FoundationAccount - } - return nil +// Deprecated: Use ArInfo_ArIdentity.ProtoReflect.Descriptor instead. +func (*ArInfo_ArIdentity) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{103, 0} } -func (x *BlockSpecialEvent_PaydayFoundationReward) GetDevelopmentCharge() *Amount { +func (x *ArInfo_ArIdentity) GetValue() uint32 { if x != nil { - return x.DevelopmentCharge + return x.Value } - return nil + return 0 } -// Reward payment to the given account. -type BlockSpecialEvent_PaydayAccountReward struct { +// Public key of an anonymity revoker. +type ArInfo_ArPublicKey struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The account that got rewarded. - Account *AccountAddress `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` - // The transaction fee reward at payday to the account. - TransactionFees *Amount `protobuf:"bytes,2,opt,name=transaction_fees,json=transactionFees,proto3" json:"transaction_fees,omitempty"` - // The baking reward at payday to the account. - BakerReward *Amount `protobuf:"bytes,3,opt,name=baker_reward,json=bakerReward,proto3" json:"baker_reward,omitempty"` - // The finalization reward at payday to the account. - FinalizationReward *Amount `protobuf:"bytes,4,opt,name=finalization_reward,json=finalizationReward,proto3" json:"finalization_reward,omitempty"` + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } -func (x *BlockSpecialEvent_PaydayAccountReward) Reset() { - *x = BlockSpecialEvent_PaydayAccountReward{} +func (x *ArInfo_ArPublicKey) Reset() { + *x = ArInfo_ArPublicKey{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[263] + mi := &file_v2_concordium_types_proto_msgTypes[266] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BlockSpecialEvent_PaydayAccountReward) String() string { +func (x *ArInfo_ArPublicKey) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BlockSpecialEvent_PaydayAccountReward) ProtoMessage() {} +func (*ArInfo_ArPublicKey) ProtoMessage() {} -func (x *BlockSpecialEvent_PaydayAccountReward) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[263] +func (x *ArInfo_ArPublicKey) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[266] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20244,78 +20994,44 @@ func (x *BlockSpecialEvent_PaydayAccountReward) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use BlockSpecialEvent_PaydayAccountReward.ProtoReflect.Descriptor instead. -func (*BlockSpecialEvent_PaydayAccountReward) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{152, 6} -} - -func (x *BlockSpecialEvent_PaydayAccountReward) GetAccount() *AccountAddress { - if x != nil { - return x.Account - } - return nil -} - -func (x *BlockSpecialEvent_PaydayAccountReward) GetTransactionFees() *Amount { - if x != nil { - return x.TransactionFees - } - return nil -} - -func (x *BlockSpecialEvent_PaydayAccountReward) GetBakerReward() *Amount { - if x != nil { - return x.BakerReward - } - return nil +// Deprecated: Use ArInfo_ArPublicKey.ProtoReflect.Descriptor instead. +func (*ArInfo_ArPublicKey) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{103, 1} } -func (x *BlockSpecialEvent_PaydayAccountReward) GetFinalizationReward() *Amount { +func (x *ArInfo_ArPublicKey) GetValue() []byte { if x != nil { - return x.FinalizationReward + return x.Value } return nil } -// Amounts accrued to accounts for each baked block. -type BlockSpecialEvent_BlockAccrueReward struct { +// Pointcheval-Sanders public key of the identity provider. +type IpInfo_IpVerifyKey struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The total fees paid for transactions in the block. - TransactionFees *Amount `protobuf:"bytes,1,opt,name=transaction_fees,json=transactionFees,proto3" json:"transaction_fees,omitempty"` - // The old balance of the GAS account. - OldGasAccount *Amount `protobuf:"bytes,2,opt,name=old_gas_account,json=oldGasAccount,proto3" json:"old_gas_account,omitempty"` - // The new balance of the GAS account. - NewGasAccount *Amount `protobuf:"bytes,3,opt,name=new_gas_account,json=newGasAccount,proto3" json:"new_gas_account,omitempty"` - // The amount awarded to the baker. - BakerReward *Amount `protobuf:"bytes,4,opt,name=baker_reward,json=bakerReward,proto3" json:"baker_reward,omitempty"` - // The amount awarded to the passive delegators. - PassiveReward *Amount `protobuf:"bytes,5,opt,name=passive_reward,json=passiveReward,proto3" json:"passive_reward,omitempty"` - // The amount awarded to the foundation. - FoundationCharge *Amount `protobuf:"bytes,6,opt,name=foundation_charge,json=foundationCharge,proto3" json:"foundation_charge,omitempty"` - // The baker of the block, who will receive the award. - Baker *BakerId `protobuf:"bytes,7,opt,name=baker,proto3" json:"baker,omitempty"` + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } -func (x *BlockSpecialEvent_BlockAccrueReward) Reset() { - *x = BlockSpecialEvent_BlockAccrueReward{} +func (x *IpInfo_IpVerifyKey) Reset() { + *x = IpInfo_IpVerifyKey{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[264] + mi := &file_v2_concordium_types_proto_msgTypes[267] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BlockSpecialEvent_BlockAccrueReward) String() string { +func (x *IpInfo_IpVerifyKey) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BlockSpecialEvent_BlockAccrueReward) ProtoMessage() {} +func (*IpInfo_IpVerifyKey) ProtoMessage() {} -func (x *BlockSpecialEvent_BlockAccrueReward) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[264] +func (x *IpInfo_IpVerifyKey) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[267] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20326,93 +21042,91 @@ func (x *BlockSpecialEvent_BlockAccrueReward) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use BlockSpecialEvent_BlockAccrueReward.ProtoReflect.Descriptor instead. -func (*BlockSpecialEvent_BlockAccrueReward) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{152, 7} +// Deprecated: Use IpInfo_IpVerifyKey.ProtoReflect.Descriptor instead. +func (*IpInfo_IpVerifyKey) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{105, 0} } -func (x *BlockSpecialEvent_BlockAccrueReward) GetTransactionFees() *Amount { +func (x *IpInfo_IpVerifyKey) GetValue() []byte { if x != nil { - return x.TransactionFees + return x.Value } return nil } -func (x *BlockSpecialEvent_BlockAccrueReward) GetOldGasAccount() *Amount { - if x != nil { - return x.OldGasAccount - } - return nil +// Ed25519 public key of the identity provider. +type IpInfo_IpCdiVerifyKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` } -func (x *BlockSpecialEvent_BlockAccrueReward) GetNewGasAccount() *Amount { - if x != nil { - return x.NewGasAccount +func (x *IpInfo_IpCdiVerifyKey) Reset() { + *x = IpInfo_IpCdiVerifyKey{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[268] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BlockSpecialEvent_BlockAccrueReward) GetBakerReward() *Amount { - if x != nil { - return x.BakerReward - } - return nil +func (x *IpInfo_IpCdiVerifyKey) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BlockSpecialEvent_BlockAccrueReward) GetPassiveReward() *Amount { - if x != nil { - return x.PassiveReward +func (*IpInfo_IpCdiVerifyKey) ProtoMessage() {} + +func (x *IpInfo_IpCdiVerifyKey) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[268] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BlockSpecialEvent_BlockAccrueReward) GetFoundationCharge() *Amount { - if x != nil { - return x.FoundationCharge - } - return nil +// Deprecated: Use IpInfo_IpCdiVerifyKey.ProtoReflect.Descriptor instead. +func (*IpInfo_IpCdiVerifyKey) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{105, 1} } -func (x *BlockSpecialEvent_BlockAccrueReward) GetBaker() *BakerId { +func (x *IpInfo_IpCdiVerifyKey) GetValue() []byte { if x != nil { - return x.Baker + return x.Value } return nil } -// Payment distributed to a pool or passive delegators. -type BlockSpecialEvent_PaydayPoolReward struct { +type BlockItemSummary_TransactionIndex struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The pool owner (passive delegators when not present). - PoolOwner *BakerId `protobuf:"bytes,1,opt,name=pool_owner,json=poolOwner,proto3,oneof" json:"pool_owner,omitempty"` - // Accrued transaction fees for pool. - TransactionFees *Amount `protobuf:"bytes,2,opt,name=transaction_fees,json=transactionFees,proto3" json:"transaction_fees,omitempty"` - // Accrued baking rewards for pool. - BakerReward *Amount `protobuf:"bytes,3,opt,name=baker_reward,json=bakerReward,proto3" json:"baker_reward,omitempty"` - // Accrued finalization rewards for pool. - FinalizationReward *Amount `protobuf:"bytes,4,opt,name=finalization_reward,json=finalizationReward,proto3" json:"finalization_reward,omitempty"` + Value uint64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` } -func (x *BlockSpecialEvent_PaydayPoolReward) Reset() { - *x = BlockSpecialEvent_PaydayPoolReward{} +func (x *BlockItemSummary_TransactionIndex) Reset() { + *x = BlockItemSummary_TransactionIndex{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[265] + mi := &file_v2_concordium_types_proto_msgTypes[269] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BlockSpecialEvent_PaydayPoolReward) String() string { +func (x *BlockItemSummary_TransactionIndex) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BlockSpecialEvent_PaydayPoolReward) ProtoMessage() {} +func (*BlockItemSummary_TransactionIndex) ProtoMessage() {} -func (x *BlockSpecialEvent_PaydayPoolReward) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[265] +func (x *BlockItemSummary_TransactionIndex) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[269] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20423,68 +21137,47 @@ func (x *BlockSpecialEvent_PaydayPoolReward) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BlockSpecialEvent_PaydayPoolReward.ProtoReflect.Descriptor instead. -func (*BlockSpecialEvent_PaydayPoolReward) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{152, 8} +// Deprecated: Use BlockItemSummary_TransactionIndex.ProtoReflect.Descriptor instead. +func (*BlockItemSummary_TransactionIndex) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{132, 0} } -func (x *BlockSpecialEvent_PaydayPoolReward) GetPoolOwner() *BakerId { +func (x *BlockItemSummary_TransactionIndex) GetValue() uint64 { if x != nil { - return x.PoolOwner + return x.Value } - return nil + return 0 } -func (x *BlockSpecialEvent_PaydayPoolReward) GetTransactionFees() *Amount { - if x != nil { - return x.TransactionFees - } - return nil -} +// A reduction in baker equity capital is pending. +type PoolPendingChange_Reduce struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *BlockSpecialEvent_PaydayPoolReward) GetBakerReward() *Amount { - if x != nil { - return x.BakerReward - } - return nil -} - -func (x *BlockSpecialEvent_PaydayPoolReward) GetFinalizationReward() *Amount { - if x != nil { - return x.FinalizationReward - } - return nil -} - -// The entry for the map. -type BlockSpecialEvent_AccountAmounts_Entry struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The key type - Account *AccountAddress `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` - // The value type - Amount *Amount `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` + // New baker equity capital. + ReducedEquityCapital *Amount `protobuf:"bytes,1,opt,name=reduced_equity_capital,json=reducedEquityCapital,proto3" json:"reduced_equity_capital,omitempty"` + // Timestamp when the change takes effect. + EffectiveTime *Timestamp `protobuf:"bytes,2,opt,name=effective_time,json=effectiveTime,proto3" json:"effective_time,omitempty"` } -func (x *BlockSpecialEvent_AccountAmounts_Entry) Reset() { - *x = BlockSpecialEvent_AccountAmounts_Entry{} +func (x *PoolPendingChange_Reduce) Reset() { + *x = PoolPendingChange_Reduce{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[266] + mi := &file_v2_concordium_types_proto_msgTypes[270] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BlockSpecialEvent_AccountAmounts_Entry) String() string { +func (x *PoolPendingChange_Reduce) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BlockSpecialEvent_AccountAmounts_Entry) ProtoMessage() {} +func (*PoolPendingChange_Reduce) ProtoMessage() {} -func (x *BlockSpecialEvent_AccountAmounts_Entry) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[266] +func (x *PoolPendingChange_Reduce) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[270] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20495,63 +21188,52 @@ func (x *BlockSpecialEvent_AccountAmounts_Entry) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use BlockSpecialEvent_AccountAmounts_Entry.ProtoReflect.Descriptor instead. -func (*BlockSpecialEvent_AccountAmounts_Entry) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{152, 0, 0} +// Deprecated: Use PoolPendingChange_Reduce.ProtoReflect.Descriptor instead. +func (*PoolPendingChange_Reduce) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{139, 0} } -func (x *BlockSpecialEvent_AccountAmounts_Entry) GetAccount() *AccountAddress { +func (x *PoolPendingChange_Reduce) GetReducedEquityCapital() *Amount { if x != nil { - return x.Account + return x.ReducedEquityCapital } return nil } -func (x *BlockSpecialEvent_AccountAmounts_Entry) GetAmount() *Amount { +func (x *PoolPendingChange_Reduce) GetEffectiveTime() *Timestamp { if x != nil { - return x.Amount + return x.EffectiveTime } return nil } -// A peer that the node is connected to. -type PeersInfo_Peer struct { +// Removal of the pool is pending. +type PoolPendingChange_Remove struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The identifier of the peer that it - // wishes to be identified by. - PeerId *PeerId `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` - // The port of the peer. - SocketAddress *IpSocketAddress `protobuf:"bytes,2,opt,name=socket_address,json=socketAddress,proto3" json:"socket_address,omitempty"` - // Network related statistics for the peer. - NetworkStats *PeersInfo_Peer_NetworkStats `protobuf:"bytes,3,opt,name=network_stats,json=networkStats,proto3" json:"network_stats,omitempty"` - // consensus related information of the peer. - // - // Types that are assignable to ConsensusInfo: - // *PeersInfo_Peer_Bootstrapper - // *PeersInfo_Peer_NodeCatchupStatus - ConsensusInfo isPeersInfo_Peer_ConsensusInfo `protobuf_oneof:"consensus_info"` + // Timestamp when the change takes effect. + EffectiveTime *Timestamp `protobuf:"bytes,1,opt,name=effective_time,json=effectiveTime,proto3" json:"effective_time,omitempty"` } -func (x *PeersInfo_Peer) Reset() { - *x = PeersInfo_Peer{} +func (x *PoolPendingChange_Remove) Reset() { + *x = PoolPendingChange_Remove{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[267] + mi := &file_v2_concordium_types_proto_msgTypes[271] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PeersInfo_Peer) String() string { +func (x *PoolPendingChange_Remove) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PeersInfo_Peer) ProtoMessage() {} +func (*PoolPendingChange_Remove) ProtoMessage() {} -func (x *PeersInfo_Peer) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[267] +func (x *PoolPendingChange_Remove) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[271] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20562,108 +21244,99 @@ func (x *PeersInfo_Peer) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PeersInfo_Peer.ProtoReflect.Descriptor instead. -func (*PeersInfo_Peer) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{163, 0} +// Deprecated: Use PoolPendingChange_Remove.ProtoReflect.Descriptor instead. +func (*PoolPendingChange_Remove) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{139, 1} } -func (x *PeersInfo_Peer) GetPeerId() *PeerId { +func (x *PoolPendingChange_Remove) GetEffectiveTime() *Timestamp { if x != nil { - return x.PeerId + return x.EffectiveTime } return nil } -func (x *PeersInfo_Peer) GetSocketAddress() *IpSocketAddress { - if x != nil { - return x.SocketAddress - } - return nil -} +// Request using an absolute block height. +type BlocksAtHeightRequest_Absolute struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *PeersInfo_Peer) GetNetworkStats() *PeersInfo_Peer_NetworkStats { - if x != nil { - return x.NetworkStats - } - return nil + // The absolute block height. + Height *AbsoluteBlockHeight `protobuf:"bytes,1,opt,name=height,proto3" json:"height,omitempty"` } -func (m *PeersInfo_Peer) GetConsensusInfo() isPeersInfo_Peer_ConsensusInfo { - if m != nil { - return m.ConsensusInfo +func (x *BlocksAtHeightRequest_Absolute) Reset() { + *x = BlocksAtHeightRequest_Absolute{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[272] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *PeersInfo_Peer) GetBootstrapper() *Empty { - if x, ok := x.GetConsensusInfo().(*PeersInfo_Peer_Bootstrapper); ok { - return x.Bootstrapper - } - return nil +func (x *BlocksAtHeightRequest_Absolute) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *PeersInfo_Peer) GetNodeCatchupStatus() PeersInfo_Peer_CatchupStatus { - if x, ok := x.GetConsensusInfo().(*PeersInfo_Peer_NodeCatchupStatus); ok { - return x.NodeCatchupStatus - } - return PeersInfo_Peer_UPTODATE -} +func (*BlocksAtHeightRequest_Absolute) ProtoMessage() {} -type isPeersInfo_Peer_ConsensusInfo interface { - isPeersInfo_Peer_ConsensusInfo() +func (x *BlocksAtHeightRequest_Absolute) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[272] + 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) } -type PeersInfo_Peer_Bootstrapper struct { - // The peer is of type `Bootstrapper` is not participating in consensus - // and thus has no catchup status. - Bootstrapper *Empty `protobuf:"bytes,4,opt,name=bootstrapper,proto3,oneof"` +// Deprecated: Use BlocksAtHeightRequest_Absolute.ProtoReflect.Descriptor instead. +func (*BlocksAtHeightRequest_Absolute) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{143, 0} } -type PeersInfo_Peer_NodeCatchupStatus struct { - // The peer is a regular node and have - // an associated catchup status. - NodeCatchupStatus PeersInfo_Peer_CatchupStatus `protobuf:"varint,5,opt,name=node_catchup_status,json=nodeCatchupStatus,proto3,enum=concordium.v2.PeersInfo_Peer_CatchupStatus,oneof"` +func (x *BlocksAtHeightRequest_Absolute) GetHeight() *AbsoluteBlockHeight { + if x != nil { + return x.Height + } + return nil } -func (*PeersInfo_Peer_Bootstrapper) isPeersInfo_Peer_ConsensusInfo() {} - -func (*PeersInfo_Peer_NodeCatchupStatus) isPeersInfo_Peer_ConsensusInfo() {} - -// Network statistics for the peer -type PeersInfo_Peer_NetworkStats struct { +// Request using a relative block height. +type BlocksAtHeightRequest_Relative struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The number of messages sent to the peer. - // Packets are blocks, transactions, catchup messages, finalization records - // and network messages such as pings and peer requests. - PacketsSent uint64 `protobuf:"varint,2,opt,name=packets_sent,json=packetsSent,proto3" json:"packets_sent,omitempty"` - // The number of messages received from the peer. - // Packets are blocks, transactions, catchup messages, finalization records - // and network messages such as pings and peer requests. - PacketsReceived uint64 `protobuf:"varint,3,opt,name=packets_received,json=packetsReceived,proto3" json:"packets_received,omitempty"` - // The connection latency (i.e., ping time) in milliseconds. - Latency uint64 `protobuf:"varint,4,opt,name=latency,proto3" json:"latency,omitempty"` + // Genesis index to start from. + GenesisIndex *GenesisIndex `protobuf:"bytes,1,opt,name=genesis_index,json=genesisIndex,proto3" json:"genesis_index,omitempty"` + // Height starting from the genesis block at the genesis index. + Height *BlockHeight `protobuf:"bytes,2,opt,name=height,proto3" json:"height,omitempty"` + // Whether to return results only from the specified genesis index (`true`), + // or allow results from more recent genesis indices as well (`false`). + Restrict bool `protobuf:"varint,3,opt,name=restrict,proto3" json:"restrict,omitempty"` } -func (x *PeersInfo_Peer_NetworkStats) Reset() { - *x = PeersInfo_Peer_NetworkStats{} +func (x *BlocksAtHeightRequest_Relative) Reset() { + *x = BlocksAtHeightRequest_Relative{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[268] + mi := &file_v2_concordium_types_proto_msgTypes[273] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PeersInfo_Peer_NetworkStats) String() string { +func (x *BlocksAtHeightRequest_Relative) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PeersInfo_Peer_NetworkStats) ProtoMessage() {} +func (*BlocksAtHeightRequest_Relative) ProtoMessage() {} -func (x *PeersInfo_Peer_NetworkStats) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[268] +func (x *BlocksAtHeightRequest_Relative) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[273] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20674,67 +21347,69 @@ func (x *PeersInfo_Peer_NetworkStats) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PeersInfo_Peer_NetworkStats.ProtoReflect.Descriptor instead. -func (*PeersInfo_Peer_NetworkStats) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{163, 0, 0} +// Deprecated: Use BlocksAtHeightRequest_Relative.ProtoReflect.Descriptor instead. +func (*BlocksAtHeightRequest_Relative) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{143, 1} } -func (x *PeersInfo_Peer_NetworkStats) GetPacketsSent() uint64 { +func (x *BlocksAtHeightRequest_Relative) GetGenesisIndex() *GenesisIndex { if x != nil { - return x.PacketsSent + return x.GenesisIndex } - return 0 + return nil } -func (x *PeersInfo_Peer_NetworkStats) GetPacketsReceived() uint64 { +func (x *BlocksAtHeightRequest_Relative) GetHeight() *BlockHeight { if x != nil { - return x.PacketsReceived + return x.Height } - return 0 + return nil } -func (x *PeersInfo_Peer_NetworkStats) GetLatency() uint64 { +func (x *BlocksAtHeightRequest_Relative) GetRestrict() bool { if x != nil { - return x.Latency + return x.Restrict } - return 0 + return false } -// Network related information of the node. -type NodeInfo_NetworkInfo struct { +// Version 0 tokenomics. +type TokenomicsInfo_V0 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The node id. - NodeId *PeerId `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` - // Total number of packets sent by the node. - PeerTotalSent uint64 `protobuf:"varint,2,opt,name=peer_total_sent,json=peerTotalSent,proto3" json:"peer_total_sent,omitempty"` - // Total number of packets received by the node. - PeerTotalReceived uint64 `protobuf:"varint,3,opt,name=peer_total_received,json=peerTotalReceived,proto3" json:"peer_total_received,omitempty"` - // Average outbound throughput in bytes per second. - AvgBpsIn uint64 `protobuf:"varint,4,opt,name=avg_bps_in,json=avgBpsIn,proto3" json:"avg_bps_in,omitempty"` - // Average inbound throughput in bytes per second. - AvgBpsOut uint64 `protobuf:"varint,5,opt,name=avg_bps_out,json=avgBpsOut,proto3" json:"avg_bps_out,omitempty"` + // The total CCD in existence. + TotalAmount *Amount `protobuf:"bytes,1,opt,name=total_amount,json=totalAmount,proto3" json:"total_amount,omitempty"` + // The total CCD in encrypted balances. + TotalEncryptedAmount *Amount `protobuf:"bytes,2,opt,name=total_encrypted_amount,json=totalEncryptedAmount,proto3" json:"total_encrypted_amount,omitempty"` + // The amount in the baking reward account. + BakingRewardAccount *Amount `protobuf:"bytes,3,opt,name=baking_reward_account,json=bakingRewardAccount,proto3" json:"baking_reward_account,omitempty"` + // The amount in the finalization reward account. + FinalizationRewardAccount *Amount `protobuf:"bytes,4,opt,name=finalization_reward_account,json=finalizationRewardAccount,proto3" json:"finalization_reward_account,omitempty"` + // The amount in the GAS account. + GasAccount *Amount `protobuf:"bytes,5,opt,name=gas_account,json=gasAccount,proto3" json:"gas_account,omitempty"` + // The protocol version. + ProtocolVersion ProtocolVersion `protobuf:"varint,6,opt,name=protocol_version,json=protocolVersion,proto3,enum=concordium.v2.ProtocolVersion" json:"protocol_version,omitempty"` } -func (x *NodeInfo_NetworkInfo) Reset() { - *x = NodeInfo_NetworkInfo{} +func (x *TokenomicsInfo_V0) Reset() { + *x = TokenomicsInfo_V0{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[269] + mi := &file_v2_concordium_types_proto_msgTypes[274] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *NodeInfo_NetworkInfo) String() string { +func (x *TokenomicsInfo_V0) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NodeInfo_NetworkInfo) ProtoMessage() {} +func (*TokenomicsInfo_V0) ProtoMessage() {} -func (x *NodeInfo_NetworkInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[269] +func (x *TokenomicsInfo_V0) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[274] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20745,79 +21420,98 @@ func (x *NodeInfo_NetworkInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use NodeInfo_NetworkInfo.ProtoReflect.Descriptor instead. -func (*NodeInfo_NetworkInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{164, 0} +// Deprecated: Use TokenomicsInfo_V0.ProtoReflect.Descriptor instead. +func (*TokenomicsInfo_V0) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{145, 0} } -func (x *NodeInfo_NetworkInfo) GetNodeId() *PeerId { +func (x *TokenomicsInfo_V0) GetTotalAmount() *Amount { if x != nil { - return x.NodeId + return x.TotalAmount } return nil } -func (x *NodeInfo_NetworkInfo) GetPeerTotalSent() uint64 { +func (x *TokenomicsInfo_V0) GetTotalEncryptedAmount() *Amount { if x != nil { - return x.PeerTotalSent + return x.TotalEncryptedAmount } - return 0 + return nil } -func (x *NodeInfo_NetworkInfo) GetPeerTotalReceived() uint64 { +func (x *TokenomicsInfo_V0) GetBakingRewardAccount() *Amount { if x != nil { - return x.PeerTotalReceived + return x.BakingRewardAccount } - return 0 + return nil } -func (x *NodeInfo_NetworkInfo) GetAvgBpsIn() uint64 { +func (x *TokenomicsInfo_V0) GetFinalizationRewardAccount() *Amount { if x != nil { - return x.AvgBpsIn + return x.FinalizationRewardAccount } - return 0 + return nil } -func (x *NodeInfo_NetworkInfo) GetAvgBpsOut() uint64 { +func (x *TokenomicsInfo_V0) GetGasAccount() *Amount { if x != nil { - return x.AvgBpsOut + return x.GasAccount } - return 0 + return nil } -// Consensus info for a node configured with baker keys. -type NodeInfo_BakerConsensusInfo struct { +func (x *TokenomicsInfo_V0) GetProtocolVersion() ProtocolVersion { + if x != nil { + return x.ProtocolVersion + } + return ProtocolVersion_PROTOCOL_VERSION_1 +} + +// Version 1 tokenomics. +type TokenomicsInfo_V1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BakerId *BakerId `protobuf:"bytes,1,opt,name=baker_id,json=bakerId,proto3" json:"baker_id,omitempty"` - // Status of the baker configured node. - // - // Types that are assignable to Status: - // *NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo_ - // *NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo_ - // *NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo_ - Status isNodeInfo_BakerConsensusInfo_Status `protobuf_oneof:"status"` + // The total CCD in existence. + TotalAmount *Amount `protobuf:"bytes,1,opt,name=total_amount,json=totalAmount,proto3" json:"total_amount,omitempty"` + // The total CCD in encrypted balances. + TotalEncryptedAmount *Amount `protobuf:"bytes,2,opt,name=total_encrypted_amount,json=totalEncryptedAmount,proto3" json:"total_encrypted_amount,omitempty"` + // The amount in the baking reward account. + BakingRewardAccount *Amount `protobuf:"bytes,3,opt,name=baking_reward_account,json=bakingRewardAccount,proto3" json:"baking_reward_account,omitempty"` + // The amount in the finalization reward account. + FinalizationRewardAccount *Amount `protobuf:"bytes,4,opt,name=finalization_reward_account,json=finalizationRewardAccount,proto3" json:"finalization_reward_account,omitempty"` + // The amount in the GAS account. + GasAccount *Amount `protobuf:"bytes,5,opt,name=gas_account,json=gasAccount,proto3" json:"gas_account,omitempty"` + // The transaction reward fraction accruing to the foundation (to be paid at next payday). + FoundationTransactionRewards *Amount `protobuf:"bytes,6,opt,name=foundation_transaction_rewards,json=foundationTransactionRewards,proto3" json:"foundation_transaction_rewards,omitempty"` + // The time of the next payday. + NextPaydayTime *Timestamp `protobuf:"bytes,7,opt,name=next_payday_time,json=nextPaydayTime,proto3" json:"next_payday_time,omitempty"` + // The rate at which CCD will be minted (as a proportion of the total supply) at the next payday. + NextPaydayMintRate *MintRate `protobuf:"bytes,8,opt,name=next_payday_mint_rate,json=nextPaydayMintRate,proto3" json:"next_payday_mint_rate,omitempty"` + // The total capital put up as stake by bakers and delegators. + TotalStakedCapital *Amount `protobuf:"bytes,9,opt,name=total_staked_capital,json=totalStakedCapital,proto3" json:"total_staked_capital,omitempty"` + // The protocol version. + ProtocolVersion ProtocolVersion `protobuf:"varint,10,opt,name=protocol_version,json=protocolVersion,proto3,enum=concordium.v2.ProtocolVersion" json:"protocol_version,omitempty"` } -func (x *NodeInfo_BakerConsensusInfo) Reset() { - *x = NodeInfo_BakerConsensusInfo{} +func (x *TokenomicsInfo_V1) Reset() { + *x = TokenomicsInfo_V1{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[270] + mi := &file_v2_concordium_types_proto_msgTypes[275] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *NodeInfo_BakerConsensusInfo) String() string { +func (x *TokenomicsInfo_V1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NodeInfo_BakerConsensusInfo) ProtoMessage() {} +func (*TokenomicsInfo_V1) ProtoMessage() {} -func (x *NodeInfo_BakerConsensusInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[270] +func (x *TokenomicsInfo_V1) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[275] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20828,105 +21522,115 @@ func (x *NodeInfo_BakerConsensusInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use NodeInfo_BakerConsensusInfo.ProtoReflect.Descriptor instead. -func (*NodeInfo_BakerConsensusInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{164, 1} +// Deprecated: Use TokenomicsInfo_V1.ProtoReflect.Descriptor instead. +func (*TokenomicsInfo_V1) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{145, 1} } -func (x *NodeInfo_BakerConsensusInfo) GetBakerId() *BakerId { +func (x *TokenomicsInfo_V1) GetTotalAmount() *Amount { if x != nil { - return x.BakerId + return x.TotalAmount } return nil } -func (m *NodeInfo_BakerConsensusInfo) GetStatus() isNodeInfo_BakerConsensusInfo_Status { - if m != nil { - return m.Status +func (x *TokenomicsInfo_V1) GetTotalEncryptedAmount() *Amount { + if x != nil { + return x.TotalEncryptedAmount } return nil } -func (x *NodeInfo_BakerConsensusInfo) GetPassiveCommitteeInfo() NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo { - if x, ok := x.GetStatus().(*NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo_); ok { - return x.PassiveCommitteeInfo +func (x *TokenomicsInfo_V1) GetBakingRewardAccount() *Amount { + if x != nil { + return x.BakingRewardAccount } - return NodeInfo_BakerConsensusInfo_NOT_IN_COMMITTEE + return nil } -func (x *NodeInfo_BakerConsensusInfo) GetActiveBakerCommitteeInfo() *NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo { - if x, ok := x.GetStatus().(*NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo_); ok { - return x.ActiveBakerCommitteeInfo +func (x *TokenomicsInfo_V1) GetFinalizationRewardAccount() *Amount { + if x != nil { + return x.FinalizationRewardAccount } return nil } -func (x *NodeInfo_BakerConsensusInfo) GetActiveFinalizerCommitteeInfo() *NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo { - if x, ok := x.GetStatus().(*NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo_); ok { - return x.ActiveFinalizerCommitteeInfo +func (x *TokenomicsInfo_V1) GetGasAccount() *Amount { + if x != nil { + return x.GasAccount } return nil } -type isNodeInfo_BakerConsensusInfo_Status interface { - isNodeInfo_BakerConsensusInfo_Status() -} - -type NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo_ struct { - // The node is currently not baking. - PassiveCommitteeInfo NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo `protobuf:"varint,2,opt,name=passive_committee_info,json=passiveCommitteeInfo,proto3,enum=concordium.v2.NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo,oneof"` +func (x *TokenomicsInfo_V1) GetFoundationTransactionRewards() *Amount { + if x != nil { + return x.FoundationTransactionRewards + } + return nil } -type NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo_ struct { - // The node is configured with baker keys and - // is member of the baking committee. - ActiveBakerCommitteeInfo *NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo `protobuf:"bytes,3,opt,name=active_baker_committee_info,json=activeBakerCommitteeInfo,proto3,oneof"` +func (x *TokenomicsInfo_V1) GetNextPaydayTime() *Timestamp { + if x != nil { + return x.NextPaydayTime + } + return nil } -type NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo_ struct { - // The node is configured with baker keys and - // is member of the baking and finalization committees. - ActiveFinalizerCommitteeInfo *NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo `protobuf:"bytes,4,opt,name=active_finalizer_committee_info,json=activeFinalizerCommitteeInfo,proto3,oneof"` +func (x *TokenomicsInfo_V1) GetNextPaydayMintRate() *MintRate { + if x != nil { + return x.NextPaydayMintRate + } + return nil } -func (*NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo_) isNodeInfo_BakerConsensusInfo_Status() {} - -func (*NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo_) isNodeInfo_BakerConsensusInfo_Status() { +func (x *TokenomicsInfo_V1) GetTotalStakedCapital() *Amount { + if x != nil { + return x.TotalStakedCapital + } + return nil } -func (*NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo_) isNodeInfo_BakerConsensusInfo_Status() { +func (x *TokenomicsInfo_V1) GetProtocolVersion() ProtocolVersion { + if x != nil { + return x.ProtocolVersion + } + return ProtocolVersion_PROTOCOL_VERSION_1 } -// The node is a regular node. -type NodeInfo_Node struct { +// Contract execution failed. +type InvokeInstanceResponse_Failure struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Types that are assignable to ConsensusStatus: - // *NodeInfo_Node_NotRunning - // *NodeInfo_Node_Passive - // *NodeInfo_Node_Active - ConsensusStatus isNodeInfo_Node_ConsensusStatus `protobuf_oneof:"consensus_status"` + // If invoking a V0 contract this is not provided, otherwise it is + // potentially return value produced by the call unless the call failed with + // out of energy or runtime error. If the V1 contract terminated with a + // logic error then the return value is present. + ReturnValue []byte `protobuf:"bytes,1,opt,name=return_value,json=returnValue,proto3,oneof" json:"return_value,omitempty"` + // Energy used by the execution. + UsedEnergy *Energy `protobuf:"bytes,2,opt,name=used_energy,json=usedEnergy,proto3" json:"used_energy,omitempty"` + // Contract execution failed for the given reason. + Reason *RejectReason `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"` } -func (x *NodeInfo_Node) Reset() { - *x = NodeInfo_Node{} +func (x *InvokeInstanceResponse_Failure) Reset() { + *x = InvokeInstanceResponse_Failure{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[271] + mi := &file_v2_concordium_types_proto_msgTypes[276] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *NodeInfo_Node) String() string { +func (x *InvokeInstanceResponse_Failure) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NodeInfo_Node) ProtoMessage() {} +func (*InvokeInstanceResponse_Failure) ProtoMessage() {} -func (x *NodeInfo_Node) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[271] +func (x *InvokeInstanceResponse_Failure) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[276] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20937,97 +21641,64 @@ func (x *NodeInfo_Node) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use NodeInfo_Node.ProtoReflect.Descriptor instead. -func (*NodeInfo_Node) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{164, 2} -} - -func (m *NodeInfo_Node) GetConsensusStatus() isNodeInfo_Node_ConsensusStatus { - if m != nil { - return m.ConsensusStatus - } - return nil +// Deprecated: Use InvokeInstanceResponse_Failure.ProtoReflect.Descriptor instead. +func (*InvokeInstanceResponse_Failure) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{147, 0} } -func (x *NodeInfo_Node) GetNotRunning() *Empty { - if x, ok := x.GetConsensusStatus().(*NodeInfo_Node_NotRunning); ok { - return x.NotRunning +func (x *InvokeInstanceResponse_Failure) GetReturnValue() []byte { + if x != nil { + return x.ReturnValue } return nil } -func (x *NodeInfo_Node) GetPassive() *Empty { - if x, ok := x.GetConsensusStatus().(*NodeInfo_Node_Passive); ok { - return x.Passive +func (x *InvokeInstanceResponse_Failure) GetUsedEnergy() *Energy { + if x != nil { + return x.UsedEnergy } return nil } -func (x *NodeInfo_Node) GetActive() *NodeInfo_BakerConsensusInfo { - if x, ok := x.GetConsensusStatus().(*NodeInfo_Node_Active); ok { - return x.Active +func (x *InvokeInstanceResponse_Failure) GetReason() *RejectReason { + if x != nil { + return x.Reason } return nil } -type isNodeInfo_Node_ConsensusStatus interface { - isNodeInfo_Node_ConsensusStatus() -} - -type NodeInfo_Node_NotRunning struct { - // The node is not running consensus. - // This is the case only when the node is - // not supporting the protocol on the chain. - // The node does not process blocks. - NotRunning *Empty `protobuf:"bytes,1,opt,name=not_running,json=notRunning,proto3,oneof"` -} - -type NodeInfo_Node_Passive struct { - // Consensus info for a node that is - // not configured with baker keys. - // The node is only processing blocks and - // relaying blocks and transactions and responding to - // catchup messages. - Passive *Empty `protobuf:"bytes,2,opt,name=passive,proto3,oneof"` -} - -type NodeInfo_Node_Active struct { - // The node is configured with baker credentials and consensus is running. - Active *NodeInfo_BakerConsensusInfo `protobuf:"bytes,3,opt,name=active,proto3,oneof"` -} - -func (*NodeInfo_Node_NotRunning) isNodeInfo_Node_ConsensusStatus() {} - -func (*NodeInfo_Node_Passive) isNodeInfo_Node_ConsensusStatus() {} - -func (*NodeInfo_Node_Active) isNodeInfo_Node_ConsensusStatus() {} - -// Tagging message type for a node that -// is configured with baker keys and active in -// the current baking committee -type NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo struct { +// Contract execution succeeded. +type InvokeInstanceResponse_Success struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // If invoking a V0 contract this is absent. Otherwise it is the return + // value produced by the contract. + ReturnValue []byte `protobuf:"bytes,1,opt,name=return_value,json=returnValue,proto3,oneof" json:"return_value,omitempty"` + // Energy used by the execution. + UsedEnergy *Energy `protobuf:"bytes,2,opt,name=used_energy,json=usedEnergy,proto3" json:"used_energy,omitempty"` + // Effects produced by contract execution. + Effects []*ContractTraceElement `protobuf:"bytes,3,rep,name=effects,proto3" json:"effects,omitempty"` } -func (x *NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo) Reset() { - *x = NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo{} +func (x *InvokeInstanceResponse_Success) Reset() { + *x = InvokeInstanceResponse_Success{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[272] + mi := &file_v2_concordium_types_proto_msgTypes[277] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo) String() string { +func (x *InvokeInstanceResponse_Success) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo) ProtoMessage() {} +func (*InvokeInstanceResponse_Success) ProtoMessage() {} -func (x *NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[272] +func (x *InvokeInstanceResponse_Success) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[277] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21038,37 +21709,62 @@ func (x *NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo) ProtoReflect() pr return mi.MessageOf(x) } -// Deprecated: Use NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo.ProtoReflect.Descriptor instead. -func (*NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{164, 1, 0} +// Deprecated: Use InvokeInstanceResponse_Success.ProtoReflect.Descriptor instead. +func (*InvokeInstanceResponse_Success) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{147, 1} } -// Tagging message type for a node that -// is configured with baker keys and active in -// the current finalizer committee (and also baking committee). -type NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo struct { +func (x *InvokeInstanceResponse_Success) GetReturnValue() []byte { + if x != nil { + return x.ReturnValue + } + return nil +} + +func (x *InvokeInstanceResponse_Success) GetUsedEnergy() *Energy { + if x != nil { + return x.UsedEnergy + } + return nil +} + +func (x *InvokeInstanceResponse_Success) GetEffects() []*ContractTraceElement { + if x != nil { + return x.Effects + } + return nil +} + +type ElectionInfo_Baker struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // The ID of the baker. + Baker *BakerId `protobuf:"bytes,1,opt,name=baker,proto3" json:"baker,omitempty"` + // The account address of the baker. + Account *AccountAddress `protobuf:"bytes,2,opt,name=account,proto3" json:"account,omitempty"` + // The lottery power of the baker, rounded to the nearest representable "double". + LotteryPower float64 `protobuf:"fixed64,3,opt,name=lottery_power,json=lotteryPower,proto3" json:"lottery_power,omitempty"` } -func (x *NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo) Reset() { - *x = NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo{} +func (x *ElectionInfo_Baker) Reset() { + *x = ElectionInfo_Baker{} if protoimpl.UnsafeEnabled { - mi := &file_types_proto_msgTypes[273] + mi := &file_v2_concordium_types_proto_msgTypes[278] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo) String() string { +func (x *ElectionInfo_Baker) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo) ProtoMessage() {} +func (*ElectionInfo_Baker) ProtoMessage() {} -func (x *NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo) ProtoReflect() protoreflect.Message { - mi := &file_types_proto_msgTypes[273] +func (x *ElectionInfo_Baker) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[278] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21079,4031 +21775,6474 @@ func (x *NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo) ProtoReflect( return mi.MessageOf(x) } -// Deprecated: Use NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo.ProtoReflect.Descriptor instead. -func (*NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo) Descriptor() ([]byte, []int) { - return file_types_proto_rawDescGZIP(), []int{164, 1, 1} -} - -var File_types_proto protoreflect.FileDescriptor - -var file_types_proto_rawDesc = []byte{ - 0x0a, 0x0b, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x22, 0x07, 0x0a, 0x05, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x21, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x53, 0x68, 0x61, 0x32, - 0x35, 0x36, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x27, 0x0a, 0x0f, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x21, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2b, 0x0a, 0x13, 0x41, 0x62, 0x73, 0x6f, - 0x6c, 0x75, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x1f, 0x0a, 0x07, 0x42, 0x61, - 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x24, 0x0a, 0x0c, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x21, 0x0a, 0x09, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0xff, 0x01, 0x0a, 0x15, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x45, - 0x0a, 0x02, 0x76, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x30, 0x48, - 0x00, 0x52, 0x02, 0x76, 0x30, 0x12, 0x45, 0x0a, 0x02, 0x76, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x33, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x56, 0x31, 0x48, 0x00, 0x52, 0x02, 0x76, 0x31, 0x1a, 0x26, 0x0a, 0x0e, - 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x30, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x26, 0x0a, 0x0e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x56, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x22, 0x21, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x07, 0x52, 0x65, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2d, 0x0a, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0c, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, - 0x73, 0x68, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x22, 0x73, 0x0a, 0x0a, 0x4e, 0x65, 0x77, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x36, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x74, 0x0a, 0x0f, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x34, 0x0a, 0x09, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, - 0x52, 0x09, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x27, 0x0a, 0x0f, 0x45, - 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe6, 0x02, 0x0a, 0x10, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x0b, 0x73, 0x65, 0x6c, - 0x66, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, - 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0a, - 0x73, 0x65, 0x6c, 0x66, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x50, 0x0a, 0x11, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, - 0x0e, 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x41, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x10, 0x69, 0x6e, 0x63, - 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6e, - 0x75, 0x6d, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x22, 0x7e, 0x0a, - 0x10, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x12, 0x30, 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61, 0x73, 0x73, - 0x69, 0x76, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x48, 0x00, 0x52, 0x05, 0x62, 0x61, - 0x6b, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x2e, 0x0a, - 0x16, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2f, 0x0a, - 0x17, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, - 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x31, - 0x0a, 0x19, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0xa8, 0x02, 0x0a, 0x09, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x31, 0x0a, 0x08, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x07, 0x62, 0x61, 0x6b, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x48, 0x0a, 0x0c, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x52, - 0x0b, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x4b, 0x0a, 0x0d, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0c, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x51, 0x0a, 0x0f, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0e, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x22, 0x95, 0x02, 0x0a, - 0x12, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x48, 0x00, 0x52, - 0x06, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x1a, 0x7d, 0x0a, 0x06, 0x52, - 0x65, 0x64, 0x75, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, - 0x6b, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, - 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x3f, 0x0a, 0x0e, 0x65, 0x66, 0x66, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x65, 0x66, 0x66, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x22, 0x4d, 0x0a, 0x0e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x1a, 0x70, 0x61, 0x72, 0x74, 0x73, 0x5f, - 0x70, 0x65, 0x72, 0x5f, 0x68, 0x75, 0x6e, 0x64, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x68, 0x6f, 0x75, - 0x73, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x70, 0x61, 0x72, 0x74, - 0x73, 0x50, 0x65, 0x72, 0x48, 0x75, 0x6e, 0x64, 0x72, 0x65, 0x64, 0x54, 0x68, 0x6f, 0x75, 0x73, - 0x61, 0x6e, 0x64, 0x22, 0xcc, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0c, 0x66, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x66, 0x69, - 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x06, 0x62, 0x61, - 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x62, 0x61, 0x6b, 0x69, 0x6e, - 0x67, 0x12, 0x3f, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0xa8, 0x01, 0x0a, 0x0d, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, - 0x72, 0x6c, 0x12, 0x49, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x0f, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x73, 0x22, 0x9c, 0x06, - 0x0a, 0x12, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3f, 0x0a, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x6b, 0x69, - 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x48, 0x00, 0x52, 0x05, - 0x62, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x1a, 0xd7, 0x02, 0x0a, 0x05, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0d, - 0x73, 0x74, 0x61, 0x6b, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x6b, - 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x74, - 0x61, 0x6b, 0x65, 0x5f, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, 0x61, 0x72, 0x6e, 0x69, - 0x6e, 0x67, 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x09, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x0e, - 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x65, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x09, 0x70, - 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, - 0x61, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x01, 0x52, 0x08, - 0x70, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x1a, 0x8d, 0x02, 0x0a, - 0x09, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x3a, 0x0a, 0x0d, 0x73, 0x74, - 0x61, 0x6b, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x64, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x74, 0x61, 0x6b, - 0x65, 0x5f, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, - 0x73, 0x12, 0x37, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x4d, 0x0a, 0x0e, 0x70, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x0e, 0x0a, 0x0c, - 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x26, 0x0a, 0x0e, - 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2c, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x1e, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x27, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2a, 0x0a, 0x12, 0x53, - 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, - 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x28, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x25, 0x0a, 0x0d, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x26, 0x0a, 0x0e, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x8a, 0x01, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x39, 0x0a, 0x07, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x07, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x08, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3c, 0x0a, - 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, - 0x79, 0x12, 0x21, 0x0a, 0x0b, 0x65, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x64, 0x32, 0x35, 0x35, 0x31, - 0x39, 0x4b, 0x65, 0x79, 0x42, 0x05, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x22, 0xf4, 0x01, 0x0a, 0x14, - 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, - 0x4b, 0x65, 0x79, 0x73, 0x12, 0x41, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x2e, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x09, 0x74, - 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x1a, 0x58, 0x0a, 0x09, 0x4b, 0x65, 0x79, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0x30, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x30, 0x0a, 0x18, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x35, 0x0a, 0x09, 0x59, 0x65, 0x61, 0x72, 0x4d, 0x6f, - 0x6e, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x04, 0x79, 0x65, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x22, 0xfc, 0x01, - 0x0a, 0x06, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x59, 0x65, 0x61, - 0x72, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x33, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x59, 0x65, 0x61, 0x72, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x52, 0x07, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x54, 0x6f, 0x12, 0x45, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x3d, 0x0a, - 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x81, 0x02, 0x0a, - 0x17, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x04, 0x6b, 0x65, 0x79, - 0x73, 0x12, 0x40, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x06, 0x63, 0x72, 0x65, - 0x64, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x05, 0x69, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x04, 0x69, 0x70, 0x49, - 0x64, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x22, 0x3f, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x30, 0x0a, 0x15, 0x65, 0x6e, 0x63, 0x5f, 0x69, 0x64, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x70, - 0x75, 0x62, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, - 0x65, 0x6e, 0x63, 0x49, 0x64, 0x43, 0x72, 0x65, 0x64, 0x50, 0x75, 0x62, 0x53, 0x68, 0x61, 0x72, - 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x41, 0x72, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc5, 0x03, 0x0a, 0x15, 0x43, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x03, 0x70, 0x72, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x03, 0x70, 0x72, - 0x66, 0x12, 0x3c, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x3c, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x54, 0x0a, - 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x19, 0x69, 0x64, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x73, - 0x65, 0x63, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x65, 0x66, 0x66, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x15, 0x69, 0x64, 0x43, 0x72, 0x65, 0x64, 0x53, 0x65, 0x63, 0x53, 0x68, 0x61, 0x72, - 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x1a, 0x58, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0xaa, 0x04, 0x0a, 0x16, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x43, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, - 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x73, - 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x40, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x05, 0x69, 0x70, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x52, 0x04, 0x69, 0x70, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x06, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3d, 0x0a, 0x0c, 0x61, 0x72, 0x5f, 0x74, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x72, 0x54, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x0b, 0x61, 0x72, 0x54, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x4a, 0x0a, 0x07, 0x61, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, 0x41, 0x72, 0x44, - 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x46, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x55, 0x0a, 0x0b, 0x41, 0x72, 0x44, 0x61, - 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x72, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0xad, 0x01, 0x0a, 0x11, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x42, 0x0a, 0x07, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x48, 0x00, - 0x52, 0x07, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x6e, 0x6f, 0x72, - 0x6d, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, - 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x48, 0x00, 0x52, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x42, 0x13, 0x0a, 0x11, 0x63, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, - 0xdf, 0x05, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x46, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x63, 0x72, 0x65, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, - 0x65, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x63, 0x72, 0x65, 0x64, 0x73, 0x12, - 0x3d, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x4c, - 0x0a, 0x11, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x10, 0x65, 0x6e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x0e, - 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, - 0x65, 0x79, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, - 0x79, 0x12, 0x31, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x6b, 0x69, - 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x5a, 0x0a, 0x0a, 0x43, - 0x72, 0x65, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x36, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x6b, - 0x65, 0x22, 0x86, 0x04, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x62, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x04, 0x62, 0x65, 0x73, 0x74, - 0x12, 0x35, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x61, - 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x05, 0x67, 0x69, 0x76, 0x65, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, - 0x48, 0x00, 0x52, 0x05, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x12, 0x4d, 0x0a, 0x0f, 0x61, 0x62, 0x73, - 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, - 0x74, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x57, 0x0a, 0x0f, 0x72, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, - 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x48, - 0x00, 0x52, 0x0e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x1a, 0xa2, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x12, 0x40, 0x0a, 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x6e, 0x65, - 0x73, 0x69, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, - 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x32, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, - 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, - 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x22, 0xf7, 0x01, 0x0a, 0x16, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x39, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x42, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x48, 0x00, 0x52, 0x06, 0x63, 0x72, - 0x65, 0x64, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x1a, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x22, 0xa8, 0x01, 0x0a, 0x12, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x54, 0x0a, 0x12, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x11, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, - 0x7e, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x04, 0x68, - 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, - 0x68, 0x0a, 0x10, 0x41, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, - 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x13, 0x4d, 0x6f, - 0x64, 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, - 0x37, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x52, 0x09, 0x6d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x22, 0x43, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x8d, 0x01, - 0x0a, 0x13, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x61, 0x73, 0x68, 0x12, 0x38, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xcd, 0x05, - 0x0a, 0x0c, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, - 0x0a, 0x02, 0x76, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x56, 0x30, 0x48, 0x00, 0x52, 0x02, 0x76, 0x30, - 0x12, 0x30, 0x0a, 0x02, 0x76, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x56, 0x31, 0x48, 0x00, 0x52, 0x02, - 0x76, 0x31, 0x1a, 0xc0, 0x02, 0x0a, 0x02, 0x56, 0x30, 0x12, 0x34, 0x0a, 0x05, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x30, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, - 0x33, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x05, 0x6f, - 0x77, 0x6e, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x52, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x12, 0x2b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, - 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x1a, 0x8a, 0x02, 0x0a, 0x02, 0x56, 0x31, 0x12, 0x33, 0x0a, 0x05, - 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, - 0x72, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x34, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x07, 0x6d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x12, 0x2b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x6f, - 0x64, 0x75, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x52, 0x65, 0x66, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x0a, - 0x13, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4b, 0x56, - 0x50, 0x61, 0x69, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa6, 0x01, 0x0a, - 0x1a, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4c, 0x6f, - 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x38, 0x0a, 0x07, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x2f, 0x0a, 0x17, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x41, 0x74, 0x4b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x0a, 0x08, 0x49, - 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x21, 0x0a, - 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x27, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x56, 0x30, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x83, 0x03, 0x0a, 0x0f, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, - 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x12, 0x48, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x48, 0x00, - 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x09, 0x66, - 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x46, - 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x48, 0x00, 0x52, 0x09, 0x66, 0x69, 0x6e, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x1a, 0x4f, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x64, 0x12, 0x42, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x49, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x08, 0x6f, 0x75, - 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x1a, 0x4d, 0x0a, 0x09, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x49, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x07, 0x6f, 0x75, - 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, - 0x8d, 0x01, 0x0a, 0x17, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x79, 0x49, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x37, 0x0a, 0x0a, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x53, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x22, - 0x1e, 0x0a, 0x06, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x1c, 0x0a, 0x04, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x80, 0x01, - 0x0a, 0x19, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x0f, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6e, 0x61, 0x6c, - 0x22, 0x20, 0x0a, 0x08, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0xa7, 0x2c, 0x0a, 0x0c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, - 0x74, 0x5f, 0x77, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x57, 0x66, 0x12, - 0x57, 0x0a, 0x1a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, - 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x48, 0x00, 0x52, - 0x17, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x72, 0x65, 0x61, - 0x64, 0x79, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, 0x5b, 0x0a, 0x19, 0x69, 0x6e, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x17, 0x69, 0x6e, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x5f, 0x0a, 0x13, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, - 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x48, 0x00, 0x52, 0x11, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x69, 0x74, - 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x68, 0x0a, 0x16, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x48, 0x00, 0x52, 0x14, 0x69, 0x6e, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x12, 0x54, 0x0a, 0x18, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x48, 0x00, 0x52, 0x16, - 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x5a, 0x0a, 0x18, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x16, 0x69, 0x6e, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x3f, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x61, - 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x61, 0x69, 0x6c, - 0x75, 0x72, 0x65, 0x12, 0x56, 0x0a, 0x10, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, - 0x6f, 0x5f, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, - 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x6f, 0x6f, 0x4c, 0x61, 0x72, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6f, 0x4c, 0x61, 0x72, 0x67, 0x65, 0x12, 0x4b, 0x0a, 0x15, 0x73, - 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, - 0x6c, 0x75, 0x72, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x48, 0x00, 0x52, 0x14, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x3a, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x5f, - 0x6f, 0x66, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x4f, 0x66, 0x45, 0x6e, - 0x65, 0x72, 0x67, 0x79, 0x12, 0x4f, 0x0a, 0x0d, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6a, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x49, 0x6e, 0x69, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x58, 0x0a, 0x10, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6a, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x48, 0x00, 0x52, 0x0f, - 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x12, - 0x3b, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x0c, - 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x40, 0x0a, 0x0f, - 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x61, 0x5f, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x48, 0x00, 0x52, - 0x0d, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x41, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x3f, - 0x0a, 0x0b, 0x6e, 0x6f, 0x74, 0x5f, 0x61, 0x5f, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x6f, 0x74, 0x41, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x12, - 0x66, 0x0a, 0x24, 0x69, 0x6e, 0x73, 0x75, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x62, 0x61, 0x6b, 0x65, - 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x20, 0x69, 0x6e, 0x73, 0x75, 0x66, 0x66, 0x69, 0x63, 0x69, - 0x65, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x42, 0x61, 0x6b, - 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x6d, 0x0a, 0x28, 0x73, 0x74, 0x61, 0x6b, 0x65, - 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x74, - 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x62, 0x61, 0x6b, - 0x69, 0x6e, 0x67, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, - 0x00, 0x52, 0x23, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x4d, 0x69, 0x6e, - 0x69, 0x6d, 0x75, 0x6d, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x46, 0x6f, 0x72, - 0x42, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x42, 0x0a, 0x11, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, - 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x0f, 0x62, 0x61, 0x6b, 0x65, 0x72, - 0x49, 0x6e, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x66, 0x0a, 0x19, 0x64, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, - 0x6b, 0x65, 0x72, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x48, 0x00, 0x52, 0x17, 0x64, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, - 0x65, 0x79, 0x12, 0x53, 0x0a, 0x1a, 0x6e, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, - 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x17, - 0x6e, 0x6f, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x18, 0x6b, 0x65, 0x79, 0x5f, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x69, 0x6e, 0x5f, - 0x75, 0x73, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, - 0x00, 0x52, 0x14, 0x6b, 0x65, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x41, 0x6c, 0x72, 0x65, 0x61, - 0x64, 0x79, 0x49, 0x6e, 0x55, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x19, 0x69, 0x6e, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x48, 0x00, 0x52, 0x17, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x68, 0x0a, 0x25, 0x69, - 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x48, 0x00, 0x52, 0x21, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x43, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x6c, 0x0a, 0x27, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x5f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, - 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x23, - 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x50, 0x72, - 0x6f, 0x6f, 0x66, 0x12, 0x5e, 0x0a, 0x20, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1c, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x50, 0x72, - 0x6f, 0x6f, 0x66, 0x12, 0x64, 0x0a, 0x1e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x1b, 0x65, 0x6e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x6c, - 0x66, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x23, 0x69, 0x6e, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, - 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1f, - 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4f, 0x6e, 0x45, 0x6e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, - 0x49, 0x0a, 0x14, 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x13, 0x7a, 0x65, 0x72, 0x6f, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x17, 0x6e, 0x6f, - 0x6e, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x48, 0x00, 0x52, 0x15, 0x6e, 0x6f, 0x6e, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x69, - 0x6e, 0x67, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x5d, 0x0a, 0x1f, 0x66, 0x69, - 0x72, 0x73, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x1f, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1c, 0x66, 0x69, 0x72, - 0x73, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x57, 0x0a, 0x17, 0x73, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x15, 0x73, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x65, 0x72, 0x12, 0x47, 0x0a, 0x13, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x63, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x12, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x5c, 0x0a, 0x12, 0x64, - 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x64, - 0x73, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x72, - 0x65, 0x64, 0x49, 0x64, 0x73, 0x48, 0x00, 0x52, 0x10, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x49, 0x64, 0x73, 0x12, 0x63, 0x0a, 0x15, 0x6e, 0x6f, 0x6e, - 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x69, - 0x64, 0x73, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x4e, 0x6f, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x74, 0x43, 0x72, 0x65, 0x64, 0x49, 0x64, 0x73, 0x48, 0x00, 0x52, 0x12, 0x6e, 0x6f, 0x6e, 0x45, - 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x49, 0x64, 0x73, 0x12, 0x4e, - 0x0a, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x63, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, - 0x69, 0x72, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x5a, - 0x0a, 0x1e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x68, 0x6f, 0x6c, - 0x64, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x73, 0x69, 0x67, 0x6e, - 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1a, - 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x48, 0x6f, 0x6c, 0x64, 0x65, 0x72, - 0x44, 0x69, 0x64, 0x4e, 0x6f, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x5f, 0x0a, 0x20, 0x6e, 0x6f, - 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, - 0x6c, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x26, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1d, 0x6e, 0x6f, - 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, - 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x5e, 0x0a, 0x20, 0x6e, - 0x6f, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, - 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1c, 0x6e, - 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x54, 0x6f, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x12, 0x5c, 0x0a, 0x1f, 0x6e, - 0x6f, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x68, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, 0x28, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1b, 0x6e, 0x6f, - 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x54, 0x6f, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x12, 0x57, 0x0a, 0x1c, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x19, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, - 0x42, 0x61, 0x6b, 0x65, 0x72, 0x41, 0x64, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x12, 0x73, 0x0a, 0x2b, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, - 0x26, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, - 0x49, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x67, 0x0a, 0x25, 0x62, 0x61, 0x6b, 0x69, 0x6e, - 0x67, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, - 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x20, - 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x12, 0x6b, 0x0a, 0x27, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x66, 0x65, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, - 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x46, 0x0a, - 0x13, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x61, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x6f, 0x72, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x48, 0x00, 0x52, 0x11, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x41, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x70, 0x0a, 0x29, 0x69, 0x6e, 0x73, 0x75, 0x66, 0x66, 0x69, - 0x63, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x6f, - 0x72, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, - 0x6b, 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, - 0x52, 0x25, 0x69, 0x6e, 0x73, 0x75, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x61, 0x0a, 0x21, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, - 0x64, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x2f, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1e, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5a, 0x0a, 0x1d, 0x69, 0x6e, - 0x73, 0x75, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x30, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1b, 0x69, 0x6e, 0x73, 0x75, 0x66, - 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x4a, 0x0a, 0x15, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x18, - 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x13, 0x64, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, - 0x77, 0x6e, 0x12, 0x47, 0x0a, 0x0f, 0x6e, 0x6f, 0x74, 0x5f, 0x61, 0x5f, 0x64, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x6f, - 0x74, 0x41, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5a, 0x0a, 0x1d, 0x64, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x61, 0x5f, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x33, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x48, 0x00, 0x52, 0x19, 0x64, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x6f, - 0x74, 0x41, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x67, 0x0a, 0x25, 0x73, 0x74, 0x61, 0x6b, 0x65, - 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x74, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, - 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x20, - 0x73, 0x74, 0x61, 0x6b, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x6f, 0x6c, - 0x12, 0x5e, 0x0a, 0x20, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x62, - 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x65, 0x64, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x48, 0x00, 0x52, 0x1c, 0x70, 0x6f, 0x6f, 0x6c, 0x57, 0x6f, 0x75, 0x6c, 0x64, 0x42, 0x65, 0x63, - 0x6f, 0x6d, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, - 0x12, 0x37, 0x0a, 0x0b, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x18, - 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x0a, 0x70, - 0x6f, 0x6f, 0x6c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x1a, 0x82, 0x01, 0x0a, 0x11, 0x49, 0x6e, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, - 0x37, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x52, 0x09, 0x6d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x12, 0x34, 0x0a, 0x09, 0x69, 0x6e, 0x69, 0x74, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x69, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x08, 0x69, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x8e, - 0x01, 0x0a, 0x14, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x52, 0x65, 0x66, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, - 0x12, 0x3d, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, - 0x71, 0x0a, 0x0e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6f, 0x4c, 0x61, 0x72, 0x67, - 0x65, 0x12, 0x30, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x1a, 0x33, 0x0a, 0x0c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6e, - 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, - 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x1a, 0xf8, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x6a, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, - 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x12, 0x49, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0b, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x1a, 0x4d, 0x0a, 0x10, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, - 0x72, 0x65, 0x64, 0x49, 0x64, 0x73, 0x12, 0x39, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x03, 0x69, 0x64, - 0x73, 0x1a, 0x4f, 0x0a, 0x12, 0x4e, 0x6f, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x43, 0x72, 0x65, 0x64, 0x49, 0x64, 0x73, 0x12, 0x39, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x03, 0x69, - 0x64, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xf3, 0x02, 0x0a, - 0x18, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x10, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x72, - 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, - 0x65, 0x66, 0x52, 0x09, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x66, 0x12, 0x38, 0x0a, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x52, 0x08, 0x69, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x06, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x22, 0x25, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xaf, 0x03, 0x0a, 0x14, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x36, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x69, - 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, - 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, - 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x09, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd0, 0x07, 0x0a, 0x14, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x53, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, - 0x72, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x12, 0x53, 0x0a, 0x0b, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x65, 0x64, - 0x48, 0x00, 0x52, 0x0b, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x65, 0x64, 0x12, - 0x47, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x48, 0x00, 0x52, - 0x07, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x12, 0x4a, 0x0a, 0x08, 0x75, 0x70, 0x67, 0x72, - 0x61, 0x64, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, - 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x64, 0x48, 0x00, 0x52, 0x08, 0x75, 0x70, 0x67, 0x72, - 0x61, 0x64, 0x65, 0x64, 0x1a, 0xaf, 0x01, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, - 0x72, 0x72, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x06, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x08, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x1a, 0x7d, 0x0a, 0x0b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, - 0x75, 0x70, 0x74, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x34, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x5d, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x64, - 0x12, 0x38, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x1a, 0x9c, 0x01, 0x0a, 0x08, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, - 0x64, 0x12, 0x38, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2c, 0x0a, 0x04, 0x66, - 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x52, 0x65, 0x66, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x28, 0x0a, 0x02, 0x74, 0x6f, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x52, - 0x02, 0x74, 0x6f, 0x42, 0x09, 0x0a, 0x07, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xdc, - 0x02, 0x0a, 0x0e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x12, 0x31, 0x0a, 0x08, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x07, 0x62, 0x61, 0x6b, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x41, 0x0a, - 0x08, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x4b, 0x65, 0x79, +// Deprecated: Use ElectionInfo_Baker.ProtoReflect.Descriptor instead. +func (*ElectionInfo_Baker) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{153, 0} +} + +func (x *ElectionInfo_Baker) GetBaker() *BakerId { + if x != nil { + return x.Baker + } + return nil +} + +func (x *ElectionInfo_Baker) GetAccount() *AccountAddress { + if x != nil { + return x.Account + } + return nil +} + +func (x *ElectionInfo_Baker) GetLotteryPower() float64 { + if x != nil { + return x.LotteryPower + } + return 0 +} + +// A representation of a mapping from an account address to an amount. +type BlockSpecialEvent_AccountAmounts struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Entries []*BlockSpecialEvent_AccountAmounts_Entry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` +} + +func (x *BlockSpecialEvent_AccountAmounts) Reset() { + *x = BlockSpecialEvent_AccountAmounts{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[279] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockSpecialEvent_AccountAmounts) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockSpecialEvent_AccountAmounts) ProtoMessage() {} + +func (x *BlockSpecialEvent_AccountAmounts) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[279] + 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 BlockSpecialEvent_AccountAmounts.ProtoReflect.Descriptor instead. +func (*BlockSpecialEvent_AccountAmounts) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{154, 0} +} + +func (x *BlockSpecialEvent_AccountAmounts) GetEntries() []*BlockSpecialEvent_AccountAmounts_Entry { + if x != nil { + return x.Entries + } + return nil +} + +// Payment to each baker of a previous epoch, in proportion to the number +// of blocks they contributed. +type BlockSpecialEvent_BakingRewards struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The amount awarded to each baker. + BakerRewards *BlockSpecialEvent_AccountAmounts `protobuf:"bytes,1,opt,name=baker_rewards,json=bakerRewards,proto3" json:"baker_rewards,omitempty"` + // The remaining balance of the baker reward account. + Remainder *Amount `protobuf:"bytes,2,opt,name=remainder,proto3" json:"remainder,omitempty"` +} + +func (x *BlockSpecialEvent_BakingRewards) Reset() { + *x = BlockSpecialEvent_BakingRewards{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[280] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockSpecialEvent_BakingRewards) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockSpecialEvent_BakingRewards) ProtoMessage() {} + +func (x *BlockSpecialEvent_BakingRewards) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[280] + 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 BlockSpecialEvent_BakingRewards.ProtoReflect.Descriptor instead. +func (*BlockSpecialEvent_BakingRewards) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{154, 1} +} + +func (x *BlockSpecialEvent_BakingRewards) GetBakerRewards() *BlockSpecialEvent_AccountAmounts { + if x != nil { + return x.BakerRewards + } + return nil +} + +func (x *BlockSpecialEvent_BakingRewards) GetRemainder() *Amount { + if x != nil { + return x.Remainder + } + return nil +} + +// Minting of new CCD. +type BlockSpecialEvent_Mint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The amount allocated to the banking reward account. + MintBakingReward *Amount `protobuf:"bytes,1,opt,name=mint_baking_reward,json=mintBakingReward,proto3" json:"mint_baking_reward,omitempty"` + // The amount allocated to the finalization reward account. + MintFinalizationReward *Amount `protobuf:"bytes,2,opt,name=mint_finalization_reward,json=mintFinalizationReward,proto3" json:"mint_finalization_reward,omitempty"` + // The amount allocated as the platform development charge. + MintPlatformDevelopmentCharge *Amount `protobuf:"bytes,3,opt,name=mint_platform_development_charge,json=mintPlatformDevelopmentCharge,proto3" json:"mint_platform_development_charge,omitempty"` + // The account to which the platform development charge is paid. + FoundationAccount *AccountAddress `protobuf:"bytes,4,opt,name=foundation_account,json=foundationAccount,proto3" json:"foundation_account,omitempty"` +} + +func (x *BlockSpecialEvent_Mint) Reset() { + *x = BlockSpecialEvent_Mint{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[281] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockSpecialEvent_Mint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockSpecialEvent_Mint) ProtoMessage() {} + +func (x *BlockSpecialEvent_Mint) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[281] + 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 BlockSpecialEvent_Mint.ProtoReflect.Descriptor instead. +func (*BlockSpecialEvent_Mint) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{154, 2} +} + +func (x *BlockSpecialEvent_Mint) GetMintBakingReward() *Amount { + if x != nil { + return x.MintBakingReward + } + return nil +} + +func (x *BlockSpecialEvent_Mint) GetMintFinalizationReward() *Amount { + if x != nil { + return x.MintFinalizationReward + } + return nil +} + +func (x *BlockSpecialEvent_Mint) GetMintPlatformDevelopmentCharge() *Amount { + if x != nil { + return x.MintPlatformDevelopmentCharge + } + return nil +} + +func (x *BlockSpecialEvent_Mint) GetFoundationAccount() *AccountAddress { + if x != nil { + return x.FoundationAccount + } + return nil +} + +// Payment to each finalizer on inclusion of a finalization record in a block. +type BlockSpecialEvent_FinalizationRewards struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The amount awarded to each finalizer. + FinalizationRewards *BlockSpecialEvent_AccountAmounts `protobuf:"bytes,1,opt,name=finalization_rewards,json=finalizationRewards,proto3" json:"finalization_rewards,omitempty"` + // The remaining balance of the finalization reward account. + Remainder *Amount `protobuf:"bytes,2,opt,name=remainder,proto3" json:"remainder,omitempty"` +} + +func (x *BlockSpecialEvent_FinalizationRewards) Reset() { + *x = BlockSpecialEvent_FinalizationRewards{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[282] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockSpecialEvent_FinalizationRewards) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockSpecialEvent_FinalizationRewards) ProtoMessage() {} + +func (x *BlockSpecialEvent_FinalizationRewards) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[282] + 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 BlockSpecialEvent_FinalizationRewards.ProtoReflect.Descriptor instead. +func (*BlockSpecialEvent_FinalizationRewards) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{154, 3} +} + +func (x *BlockSpecialEvent_FinalizationRewards) GetFinalizationRewards() *BlockSpecialEvent_AccountAmounts { + if x != nil { + return x.FinalizationRewards + } + return nil +} + +func (x *BlockSpecialEvent_FinalizationRewards) GetRemainder() *Amount { + if x != nil { + return x.Remainder + } + return nil +} + +// Disbursement of fees from a block between the GAS account, +// the baker, and the foundation. It should always be that: +// +// ```transaction_fees + old_gas_account = new_gas_account + baker_reward + foundation_charge``` +type BlockSpecialEvent_BlockReward struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The total fees paid for transactions in the block. + TransactionFees *Amount `protobuf:"bytes,1,opt,name=transaction_fees,json=transactionFees,proto3" json:"transaction_fees,omitempty"` + // The old balance of the GAS account. + OldGasAccount *Amount `protobuf:"bytes,2,opt,name=old_gas_account,json=oldGasAccount,proto3" json:"old_gas_account,omitempty"` + // The new balance of the GAS account. + NewGasAccount *Amount `protobuf:"bytes,3,opt,name=new_gas_account,json=newGasAccount,proto3" json:"new_gas_account,omitempty"` + // The amount awarded to the baker. + BakerReward *Amount `protobuf:"bytes,4,opt,name=baker_reward,json=bakerReward,proto3" json:"baker_reward,omitempty"` + // The amount awarded to the foundation. + FoundationCharge *Amount `protobuf:"bytes,5,opt,name=foundation_charge,json=foundationCharge,proto3" json:"foundation_charge,omitempty"` + // The baker of the block, who receives the award. + Baker *AccountAddress `protobuf:"bytes,6,opt,name=baker,proto3" json:"baker,omitempty"` + // The foundation account. + FoundationAccount *AccountAddress `protobuf:"bytes,7,opt,name=foundation_account,json=foundationAccount,proto3" json:"foundation_account,omitempty"` +} + +func (x *BlockSpecialEvent_BlockReward) Reset() { + *x = BlockSpecialEvent_BlockReward{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[283] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockSpecialEvent_BlockReward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockSpecialEvent_BlockReward) ProtoMessage() {} + +func (x *BlockSpecialEvent_BlockReward) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[283] + 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 BlockSpecialEvent_BlockReward.ProtoReflect.Descriptor instead. +func (*BlockSpecialEvent_BlockReward) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{154, 4} +} + +func (x *BlockSpecialEvent_BlockReward) GetTransactionFees() *Amount { + if x != nil { + return x.TransactionFees + } + return nil +} + +func (x *BlockSpecialEvent_BlockReward) GetOldGasAccount() *Amount { + if x != nil { + return x.OldGasAccount + } + return nil +} + +func (x *BlockSpecialEvent_BlockReward) GetNewGasAccount() *Amount { + if x != nil { + return x.NewGasAccount + } + return nil +} + +func (x *BlockSpecialEvent_BlockReward) GetBakerReward() *Amount { + if x != nil { + return x.BakerReward + } + return nil +} + +func (x *BlockSpecialEvent_BlockReward) GetFoundationCharge() *Amount { + if x != nil { + return x.FoundationCharge + } + return nil +} + +func (x *BlockSpecialEvent_BlockReward) GetBaker() *AccountAddress { + if x != nil { + return x.Baker + } + return nil +} + +func (x *BlockSpecialEvent_BlockReward) GetFoundationAccount() *AccountAddress { + if x != nil { + return x.FoundationAccount + } + return nil +} + +// Foundation tax. +type BlockSpecialEvent_PaydayFoundationReward struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The account that got rewarded. + FoundationAccount *AccountAddress `protobuf:"bytes,1,opt,name=foundation_account,json=foundationAccount,proto3" json:"foundation_account,omitempty"` + // The transaction fee reward at payday to the account. + DevelopmentCharge *Amount `protobuf:"bytes,2,opt,name=development_charge,json=developmentCharge,proto3" json:"development_charge,omitempty"` +} + +func (x *BlockSpecialEvent_PaydayFoundationReward) Reset() { + *x = BlockSpecialEvent_PaydayFoundationReward{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[284] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockSpecialEvent_PaydayFoundationReward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockSpecialEvent_PaydayFoundationReward) ProtoMessage() {} + +func (x *BlockSpecialEvent_PaydayFoundationReward) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[284] + 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 BlockSpecialEvent_PaydayFoundationReward.ProtoReflect.Descriptor instead. +func (*BlockSpecialEvent_PaydayFoundationReward) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{154, 5} +} + +func (x *BlockSpecialEvent_PaydayFoundationReward) GetFoundationAccount() *AccountAddress { + if x != nil { + return x.FoundationAccount + } + return nil +} + +func (x *BlockSpecialEvent_PaydayFoundationReward) GetDevelopmentCharge() *Amount { + if x != nil { + return x.DevelopmentCharge + } + return nil +} + +// Reward payment to the given account. +type BlockSpecialEvent_PaydayAccountReward struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The account that got rewarded. + Account *AccountAddress `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + // The transaction fee reward at payday to the account. + TransactionFees *Amount `protobuf:"bytes,2,opt,name=transaction_fees,json=transactionFees,proto3" json:"transaction_fees,omitempty"` + // The baking reward at payday to the account. + BakerReward *Amount `protobuf:"bytes,3,opt,name=baker_reward,json=bakerReward,proto3" json:"baker_reward,omitempty"` + // The finalization reward at payday to the account. + FinalizationReward *Amount `protobuf:"bytes,4,opt,name=finalization_reward,json=finalizationReward,proto3" json:"finalization_reward,omitempty"` +} + +func (x *BlockSpecialEvent_PaydayAccountReward) Reset() { + *x = BlockSpecialEvent_PaydayAccountReward{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[285] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockSpecialEvent_PaydayAccountReward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockSpecialEvent_PaydayAccountReward) ProtoMessage() {} + +func (x *BlockSpecialEvent_PaydayAccountReward) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[285] + 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 BlockSpecialEvent_PaydayAccountReward.ProtoReflect.Descriptor instead. +func (*BlockSpecialEvent_PaydayAccountReward) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{154, 6} +} + +func (x *BlockSpecialEvent_PaydayAccountReward) GetAccount() *AccountAddress { + if x != nil { + return x.Account + } + return nil +} + +func (x *BlockSpecialEvent_PaydayAccountReward) GetTransactionFees() *Amount { + if x != nil { + return x.TransactionFees + } + return nil +} + +func (x *BlockSpecialEvent_PaydayAccountReward) GetBakerReward() *Amount { + if x != nil { + return x.BakerReward + } + return nil +} + +func (x *BlockSpecialEvent_PaydayAccountReward) GetFinalizationReward() *Amount { + if x != nil { + return x.FinalizationReward + } + return nil +} + +// Amounts accrued to accounts for each baked block. +type BlockSpecialEvent_BlockAccrueReward struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The total fees paid for transactions in the block. + TransactionFees *Amount `protobuf:"bytes,1,opt,name=transaction_fees,json=transactionFees,proto3" json:"transaction_fees,omitempty"` + // The old balance of the GAS account. + OldGasAccount *Amount `protobuf:"bytes,2,opt,name=old_gas_account,json=oldGasAccount,proto3" json:"old_gas_account,omitempty"` + // The new balance of the GAS account. + NewGasAccount *Amount `protobuf:"bytes,3,opt,name=new_gas_account,json=newGasAccount,proto3" json:"new_gas_account,omitempty"` + // The amount awarded to the baker. + BakerReward *Amount `protobuf:"bytes,4,opt,name=baker_reward,json=bakerReward,proto3" json:"baker_reward,omitempty"` + // The amount awarded to the passive delegators. + PassiveReward *Amount `protobuf:"bytes,5,opt,name=passive_reward,json=passiveReward,proto3" json:"passive_reward,omitempty"` + // The amount awarded to the foundation. + FoundationCharge *Amount `protobuf:"bytes,6,opt,name=foundation_charge,json=foundationCharge,proto3" json:"foundation_charge,omitempty"` + // The baker of the block, who will receive the award. + Baker *BakerId `protobuf:"bytes,7,opt,name=baker,proto3" json:"baker,omitempty"` +} + +func (x *BlockSpecialEvent_BlockAccrueReward) Reset() { + *x = BlockSpecialEvent_BlockAccrueReward{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[286] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockSpecialEvent_BlockAccrueReward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockSpecialEvent_BlockAccrueReward) ProtoMessage() {} + +func (x *BlockSpecialEvent_BlockAccrueReward) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[286] + 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 BlockSpecialEvent_BlockAccrueReward.ProtoReflect.Descriptor instead. +func (*BlockSpecialEvent_BlockAccrueReward) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{154, 7} +} + +func (x *BlockSpecialEvent_BlockAccrueReward) GetTransactionFees() *Amount { + if x != nil { + return x.TransactionFees + } + return nil +} + +func (x *BlockSpecialEvent_BlockAccrueReward) GetOldGasAccount() *Amount { + if x != nil { + return x.OldGasAccount + } + return nil +} + +func (x *BlockSpecialEvent_BlockAccrueReward) GetNewGasAccount() *Amount { + if x != nil { + return x.NewGasAccount + } + return nil +} + +func (x *BlockSpecialEvent_BlockAccrueReward) GetBakerReward() *Amount { + if x != nil { + return x.BakerReward + } + return nil +} + +func (x *BlockSpecialEvent_BlockAccrueReward) GetPassiveReward() *Amount { + if x != nil { + return x.PassiveReward + } + return nil +} + +func (x *BlockSpecialEvent_BlockAccrueReward) GetFoundationCharge() *Amount { + if x != nil { + return x.FoundationCharge + } + return nil +} + +func (x *BlockSpecialEvent_BlockAccrueReward) GetBaker() *BakerId { + if x != nil { + return x.Baker + } + return nil +} + +// Payment distributed to a pool or passive delegators. +type BlockSpecialEvent_PaydayPoolReward struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The pool owner (passive delegators when not present). + PoolOwner *BakerId `protobuf:"bytes,1,opt,name=pool_owner,json=poolOwner,proto3,oneof" json:"pool_owner,omitempty"` + // Accrued transaction fees for pool. + TransactionFees *Amount `protobuf:"bytes,2,opt,name=transaction_fees,json=transactionFees,proto3" json:"transaction_fees,omitempty"` + // Accrued baking rewards for pool. + BakerReward *Amount `protobuf:"bytes,3,opt,name=baker_reward,json=bakerReward,proto3" json:"baker_reward,omitempty"` + // Accrued finalization rewards for pool. + FinalizationReward *Amount `protobuf:"bytes,4,opt,name=finalization_reward,json=finalizationReward,proto3" json:"finalization_reward,omitempty"` +} + +func (x *BlockSpecialEvent_PaydayPoolReward) Reset() { + *x = BlockSpecialEvent_PaydayPoolReward{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[287] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockSpecialEvent_PaydayPoolReward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockSpecialEvent_PaydayPoolReward) ProtoMessage() {} + +func (x *BlockSpecialEvent_PaydayPoolReward) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[287] + 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 BlockSpecialEvent_PaydayPoolReward.ProtoReflect.Descriptor instead. +func (*BlockSpecialEvent_PaydayPoolReward) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{154, 8} +} + +func (x *BlockSpecialEvent_PaydayPoolReward) GetPoolOwner() *BakerId { + if x != nil { + return x.PoolOwner + } + return nil +} + +func (x *BlockSpecialEvent_PaydayPoolReward) GetTransactionFees() *Amount { + if x != nil { + return x.TransactionFees + } + return nil +} + +func (x *BlockSpecialEvent_PaydayPoolReward) GetBakerReward() *Amount { + if x != nil { + return x.BakerReward + } + return nil +} + +func (x *BlockSpecialEvent_PaydayPoolReward) GetFinalizationReward() *Amount { + if x != nil { + return x.FinalizationReward + } + return nil +} + +// The entry for the map. +type BlockSpecialEvent_AccountAmounts_Entry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The key type + Account *AccountAddress `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + // The value type + Amount *Amount `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` +} + +func (x *BlockSpecialEvent_AccountAmounts_Entry) Reset() { + *x = BlockSpecialEvent_AccountAmounts_Entry{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[288] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockSpecialEvent_AccountAmounts_Entry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockSpecialEvent_AccountAmounts_Entry) ProtoMessage() {} + +func (x *BlockSpecialEvent_AccountAmounts_Entry) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[288] + 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 BlockSpecialEvent_AccountAmounts_Entry.ProtoReflect.Descriptor instead. +func (*BlockSpecialEvent_AccountAmounts_Entry) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{154, 0, 0} +} + +func (x *BlockSpecialEvent_AccountAmounts_Entry) GetAccount() *AccountAddress { + if x != nil { + return x.Account + } + return nil +} + +func (x *BlockSpecialEvent_AccountAmounts_Entry) GetAmount() *Amount { + if x != nil { + return x.Amount + } + return nil +} + +// A peer that the node is connected to. +type PeersInfo_Peer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The identifier of the peer that it + // wishes to be identified by. + PeerId *PeerId `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + // The port of the peer. + SocketAddress *IpSocketAddress `protobuf:"bytes,2,opt,name=socket_address,json=socketAddress,proto3" json:"socket_address,omitempty"` + // Network related statistics for the peer. + NetworkStats *PeersInfo_Peer_NetworkStats `protobuf:"bytes,3,opt,name=network_stats,json=networkStats,proto3" json:"network_stats,omitempty"` + // consensus related information of the peer. + // + // Types that are assignable to ConsensusInfo: + // + // *PeersInfo_Peer_Bootstrapper + // *PeersInfo_Peer_NodeCatchupStatus + ConsensusInfo isPeersInfo_Peer_ConsensusInfo `protobuf_oneof:"consensus_info"` +} + +func (x *PeersInfo_Peer) Reset() { + *x = PeersInfo_Peer{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[289] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PeersInfo_Peer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeersInfo_Peer) ProtoMessage() {} + +func (x *PeersInfo_Peer) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[289] + 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 PeersInfo_Peer.ProtoReflect.Descriptor instead. +func (*PeersInfo_Peer) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{165, 0} +} + +func (x *PeersInfo_Peer) GetPeerId() *PeerId { + if x != nil { + return x.PeerId + } + return nil +} + +func (x *PeersInfo_Peer) GetSocketAddress() *IpSocketAddress { + if x != nil { + return x.SocketAddress + } + return nil +} + +func (x *PeersInfo_Peer) GetNetworkStats() *PeersInfo_Peer_NetworkStats { + if x != nil { + return x.NetworkStats + } + return nil +} + +func (m *PeersInfo_Peer) GetConsensusInfo() isPeersInfo_Peer_ConsensusInfo { + if m != nil { + return m.ConsensusInfo + } + return nil +} + +func (x *PeersInfo_Peer) GetBootstrapper() *Empty { + if x, ok := x.GetConsensusInfo().(*PeersInfo_Peer_Bootstrapper); ok { + return x.Bootstrapper + } + return nil +} + +func (x *PeersInfo_Peer) GetNodeCatchupStatus() PeersInfo_Peer_CatchupStatus { + if x, ok := x.GetConsensusInfo().(*PeersInfo_Peer_NodeCatchupStatus); ok { + return x.NodeCatchupStatus + } + return PeersInfo_Peer_UPTODATE +} + +type isPeersInfo_Peer_ConsensusInfo interface { + isPeersInfo_Peer_ConsensusInfo() +} + +type PeersInfo_Peer_Bootstrapper struct { + // The peer is of type `Bootstrapper` is not participating in consensus + // and thus has no catchup status. + Bootstrapper *Empty `protobuf:"bytes,4,opt,name=bootstrapper,proto3,oneof"` +} + +type PeersInfo_Peer_NodeCatchupStatus struct { + // The peer is a regular node and have + // an associated catchup status. + NodeCatchupStatus PeersInfo_Peer_CatchupStatus `protobuf:"varint,5,opt,name=node_catchup_status,json=nodeCatchupStatus,proto3,enum=concordium.v2.PeersInfo_Peer_CatchupStatus,oneof"` +} + +func (*PeersInfo_Peer_Bootstrapper) isPeersInfo_Peer_ConsensusInfo() {} + +func (*PeersInfo_Peer_NodeCatchupStatus) isPeersInfo_Peer_ConsensusInfo() {} + +// Network statistics for the peer +type PeersInfo_Peer_NetworkStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The number of messages sent to the peer. + // Packets are blocks, transactions, catchup messages, finalization records + // and network messages such as pings and peer requests. + PacketsSent uint64 `protobuf:"varint,2,opt,name=packets_sent,json=packetsSent,proto3" json:"packets_sent,omitempty"` + // The number of messages received from the peer. + // Packets are blocks, transactions, catchup messages, finalization records + // and network messages such as pings and peer requests. + PacketsReceived uint64 `protobuf:"varint,3,opt,name=packets_received,json=packetsReceived,proto3" json:"packets_received,omitempty"` + // The connection latency (i.e., ping time) in milliseconds. + Latency uint64 `protobuf:"varint,4,opt,name=latency,proto3" json:"latency,omitempty"` +} + +func (x *PeersInfo_Peer_NetworkStats) Reset() { + *x = PeersInfo_Peer_NetworkStats{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[290] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PeersInfo_Peer_NetworkStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeersInfo_Peer_NetworkStats) ProtoMessage() {} + +func (x *PeersInfo_Peer_NetworkStats) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[290] + 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 PeersInfo_Peer_NetworkStats.ProtoReflect.Descriptor instead. +func (*PeersInfo_Peer_NetworkStats) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{165, 0, 0} +} + +func (x *PeersInfo_Peer_NetworkStats) GetPacketsSent() uint64 { + if x != nil { + return x.PacketsSent + } + return 0 +} + +func (x *PeersInfo_Peer_NetworkStats) GetPacketsReceived() uint64 { + if x != nil { + return x.PacketsReceived + } + return 0 +} + +func (x *PeersInfo_Peer_NetworkStats) GetLatency() uint64 { + if x != nil { + return x.Latency + } + return 0 +} + +// Network related information of the node. +type NodeInfo_NetworkInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The node id. + NodeId *PeerId `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` + // Total number of packets sent by the node. + PeerTotalSent uint64 `protobuf:"varint,2,opt,name=peer_total_sent,json=peerTotalSent,proto3" json:"peer_total_sent,omitempty"` + // Total number of packets received by the node. + PeerTotalReceived uint64 `protobuf:"varint,3,opt,name=peer_total_received,json=peerTotalReceived,proto3" json:"peer_total_received,omitempty"` + // Average outbound throughput in bytes per second. + AvgBpsIn uint64 `protobuf:"varint,4,opt,name=avg_bps_in,json=avgBpsIn,proto3" json:"avg_bps_in,omitempty"` + // Average inbound throughput in bytes per second. + AvgBpsOut uint64 `protobuf:"varint,5,opt,name=avg_bps_out,json=avgBpsOut,proto3" json:"avg_bps_out,omitempty"` +} + +func (x *NodeInfo_NetworkInfo) Reset() { + *x = NodeInfo_NetworkInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[291] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeInfo_NetworkInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeInfo_NetworkInfo) ProtoMessage() {} + +func (x *NodeInfo_NetworkInfo) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[291] + 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_NetworkInfo.ProtoReflect.Descriptor instead. +func (*NodeInfo_NetworkInfo) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{166, 0} +} + +func (x *NodeInfo_NetworkInfo) GetNodeId() *PeerId { + if x != nil { + return x.NodeId + } + return nil +} + +func (x *NodeInfo_NetworkInfo) GetPeerTotalSent() uint64 { + if x != nil { + return x.PeerTotalSent + } + return 0 +} + +func (x *NodeInfo_NetworkInfo) GetPeerTotalReceived() uint64 { + if x != nil { + return x.PeerTotalReceived + } + return 0 +} + +func (x *NodeInfo_NetworkInfo) GetAvgBpsIn() uint64 { + if x != nil { + return x.AvgBpsIn + } + return 0 +} + +func (x *NodeInfo_NetworkInfo) GetAvgBpsOut() uint64 { + if x != nil { + return x.AvgBpsOut + } + return 0 +} + +// Consensus info for a node configured with baker keys. +type NodeInfo_BakerConsensusInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BakerId *BakerId `protobuf:"bytes,1,opt,name=baker_id,json=bakerId,proto3" json:"baker_id,omitempty"` + // Status of the baker configured node. + // + // Types that are assignable to Status: + // + // *NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo_ + // *NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo_ + // *NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo_ + Status isNodeInfo_BakerConsensusInfo_Status `protobuf_oneof:"status"` +} + +func (x *NodeInfo_BakerConsensusInfo) Reset() { + *x = NodeInfo_BakerConsensusInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[292] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeInfo_BakerConsensusInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeInfo_BakerConsensusInfo) ProtoMessage() {} + +func (x *NodeInfo_BakerConsensusInfo) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[292] + 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_BakerConsensusInfo.ProtoReflect.Descriptor instead. +func (*NodeInfo_BakerConsensusInfo) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{166, 1} +} + +func (x *NodeInfo_BakerConsensusInfo) GetBakerId() *BakerId { + if x != nil { + return x.BakerId + } + return nil +} + +func (m *NodeInfo_BakerConsensusInfo) GetStatus() isNodeInfo_BakerConsensusInfo_Status { + if m != nil { + return m.Status + } + return nil +} + +func (x *NodeInfo_BakerConsensusInfo) GetPassiveCommitteeInfo() NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo { + if x, ok := x.GetStatus().(*NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo_); ok { + return x.PassiveCommitteeInfo + } + return NodeInfo_BakerConsensusInfo_NOT_IN_COMMITTEE +} + +func (x *NodeInfo_BakerConsensusInfo) GetActiveBakerCommitteeInfo() *NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo { + if x, ok := x.GetStatus().(*NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo_); ok { + return x.ActiveBakerCommitteeInfo + } + return nil +} + +func (x *NodeInfo_BakerConsensusInfo) GetActiveFinalizerCommitteeInfo() *NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo { + if x, ok := x.GetStatus().(*NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo_); ok { + return x.ActiveFinalizerCommitteeInfo + } + return nil +} + +type isNodeInfo_BakerConsensusInfo_Status interface { + isNodeInfo_BakerConsensusInfo_Status() +} + +type NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo_ struct { + // The node is currently not baking. + PassiveCommitteeInfo NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo `protobuf:"varint,2,opt,name=passive_committee_info,json=passiveCommitteeInfo,proto3,enum=concordium.v2.NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo,oneof"` +} + +type NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo_ struct { + // The node is configured with baker keys and + // is member of the baking committee. + ActiveBakerCommitteeInfo *NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo `protobuf:"bytes,3,opt,name=active_baker_committee_info,json=activeBakerCommitteeInfo,proto3,oneof"` +} + +type NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo_ struct { + // The node is configured with baker keys and + // is member of the baking and finalization committees. + ActiveFinalizerCommitteeInfo *NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo `protobuf:"bytes,4,opt,name=active_finalizer_committee_info,json=activeFinalizerCommitteeInfo,proto3,oneof"` +} + +func (*NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo_) isNodeInfo_BakerConsensusInfo_Status() {} + +func (*NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo_) isNodeInfo_BakerConsensusInfo_Status() { +} + +func (*NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo_) isNodeInfo_BakerConsensusInfo_Status() { +} + +// The node is a regular node. +type NodeInfo_Node struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to ConsensusStatus: + // + // *NodeInfo_Node_NotRunning + // *NodeInfo_Node_Passive + // *NodeInfo_Node_Active + ConsensusStatus isNodeInfo_Node_ConsensusStatus `protobuf_oneof:"consensus_status"` +} + +func (x *NodeInfo_Node) Reset() { + *x = NodeInfo_Node{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[293] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeInfo_Node) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeInfo_Node) ProtoMessage() {} + +func (x *NodeInfo_Node) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[293] + 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_Node.ProtoReflect.Descriptor instead. +func (*NodeInfo_Node) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{166, 2} +} + +func (m *NodeInfo_Node) GetConsensusStatus() isNodeInfo_Node_ConsensusStatus { + if m != nil { + return m.ConsensusStatus + } + return nil +} + +func (x *NodeInfo_Node) GetNotRunning() *Empty { + if x, ok := x.GetConsensusStatus().(*NodeInfo_Node_NotRunning); ok { + return x.NotRunning + } + return nil +} + +func (x *NodeInfo_Node) GetPassive() *Empty { + if x, ok := x.GetConsensusStatus().(*NodeInfo_Node_Passive); ok { + return x.Passive + } + return nil +} + +func (x *NodeInfo_Node) GetActive() *NodeInfo_BakerConsensusInfo { + if x, ok := x.GetConsensusStatus().(*NodeInfo_Node_Active); ok { + return x.Active + } + return nil +} + +type isNodeInfo_Node_ConsensusStatus interface { + isNodeInfo_Node_ConsensusStatus() +} + +type NodeInfo_Node_NotRunning struct { + // The node is not running consensus. + // This is the case only when the node is + // not supporting the protocol on the chain. + // The node does not process blocks. + NotRunning *Empty `protobuf:"bytes,1,opt,name=not_running,json=notRunning,proto3,oneof"` +} + +type NodeInfo_Node_Passive struct { + // Consensus info for a node that is + // not configured with baker keys. + // The node is only processing blocks and + // relaying blocks and transactions and responding to + // catchup messages. + Passive *Empty `protobuf:"bytes,2,opt,name=passive,proto3,oneof"` +} + +type NodeInfo_Node_Active struct { + // The node is configured with baker credentials and consensus is running. + Active *NodeInfo_BakerConsensusInfo `protobuf:"bytes,3,opt,name=active,proto3,oneof"` +} + +func (*NodeInfo_Node_NotRunning) isNodeInfo_Node_ConsensusStatus() {} + +func (*NodeInfo_Node_Passive) isNodeInfo_Node_ConsensusStatus() {} + +func (*NodeInfo_Node_Active) isNodeInfo_Node_ConsensusStatus() {} + +// Tagging message type for a node that +// is configured with baker keys and active in +// the current baking committee +type NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo) Reset() { + *x = NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[294] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo) ProtoMessage() {} + +func (x *NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[294] + 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_BakerConsensusInfo_ActiveBakerCommitteeInfo.ProtoReflect.Descriptor instead. +func (*NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{166, 1, 0} +} + +// Tagging message type for a node that +// is configured with baker keys and active in +// the current finalizer committee (and also baking committee). +type NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo) Reset() { + *x = NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[295] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo) ProtoMessage() {} + +func (x *NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[295] + 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_BakerConsensusInfo_ActiveFinalizerCommitteeInfo.ProtoReflect.Descriptor instead. +func (*NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{166, 1, 1} +} + +// The current block state is undefined. It should be initialized with +// a 'load_block_state' request before any other operations. +type DryRunErrorResponse_NoState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DryRunErrorResponse_NoState) Reset() { + *x = DryRunErrorResponse_NoState{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[299] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DryRunErrorResponse_NoState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DryRunErrorResponse_NoState) ProtoMessage() {} + +func (x *DryRunErrorResponse_NoState) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[299] + 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 DryRunErrorResponse_NoState.ProtoReflect.Descriptor instead. +func (*DryRunErrorResponse_NoState) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{213, 0} +} + +// The requested block was not found, so its state could not be loaded. +type DryRunErrorResponse_BlockNotFound struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DryRunErrorResponse_BlockNotFound) Reset() { + *x = DryRunErrorResponse_BlockNotFound{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[300] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DryRunErrorResponse_BlockNotFound) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DryRunErrorResponse_BlockNotFound) ProtoMessage() {} + +func (x *DryRunErrorResponse_BlockNotFound) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[300] + 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 DryRunErrorResponse_BlockNotFound.ProtoReflect.Descriptor instead. +func (*DryRunErrorResponse_BlockNotFound) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{213, 1} +} + +// The specified account was not found. +type DryRunErrorResponse_AccountNotFound struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DryRunErrorResponse_AccountNotFound) Reset() { + *x = DryRunErrorResponse_AccountNotFound{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[301] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DryRunErrorResponse_AccountNotFound) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DryRunErrorResponse_AccountNotFound) ProtoMessage() {} + +func (x *DryRunErrorResponse_AccountNotFound) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[301] + 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 DryRunErrorResponse_AccountNotFound.ProtoReflect.Descriptor instead. +func (*DryRunErrorResponse_AccountNotFound) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{213, 2} +} + +// The specified instance was not found. +type DryRunErrorResponse_InstanceNotFound struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DryRunErrorResponse_InstanceNotFound) Reset() { + *x = DryRunErrorResponse_InstanceNotFound{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[302] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DryRunErrorResponse_InstanceNotFound) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DryRunErrorResponse_InstanceNotFound) ProtoMessage() {} + +func (x *DryRunErrorResponse_InstanceNotFound) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[302] + 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 DryRunErrorResponse_InstanceNotFound.ProtoReflect.Descriptor instead. +func (*DryRunErrorResponse_InstanceNotFound) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{213, 3} +} + +// The amount that was requested to be minted would overflow the total supply. +type DryRunErrorResponse_AmountOverLimit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The maximum amount that can be minted without overflowing the supply. + AmountLimit *Amount `protobuf:"bytes,1,opt,name=amount_limit,json=amountLimit,proto3" json:"amount_limit,omitempty"` +} + +func (x *DryRunErrorResponse_AmountOverLimit) Reset() { + *x = DryRunErrorResponse_AmountOverLimit{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[303] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DryRunErrorResponse_AmountOverLimit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DryRunErrorResponse_AmountOverLimit) ProtoMessage() {} + +func (x *DryRunErrorResponse_AmountOverLimit) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[303] + 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 DryRunErrorResponse_AmountOverLimit.ProtoReflect.Descriptor instead. +func (*DryRunErrorResponse_AmountOverLimit) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{213, 4} +} + +func (x *DryRunErrorResponse_AmountOverLimit) GetAmountLimit() *Amount { + if x != nil { + return x.AmountLimit + } + return nil +} + +// The sender account for the transaction has insufficient balance to pay the preliminary fees +// for the transaction to be included in a block. +type DryRunErrorResponse_BalanceInsufficient struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The minimum balance required to perform the operation. + RequiredAmount *Amount `protobuf:"bytes,1,opt,name=required_amount,json=requiredAmount,proto3" json:"required_amount,omitempty"` + // The currently-available balance on the account to pay for the operation. + AvailableAmount *Amount `protobuf:"bytes,2,opt,name=available_amount,json=availableAmount,proto3" json:"available_amount,omitempty"` +} + +func (x *DryRunErrorResponse_BalanceInsufficient) Reset() { + *x = DryRunErrorResponse_BalanceInsufficient{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[304] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DryRunErrorResponse_BalanceInsufficient) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DryRunErrorResponse_BalanceInsufficient) ProtoMessage() {} + +func (x *DryRunErrorResponse_BalanceInsufficient) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[304] + 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 DryRunErrorResponse_BalanceInsufficient.ProtoReflect.Descriptor instead. +func (*DryRunErrorResponse_BalanceInsufficient) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{213, 5} +} + +func (x *DryRunErrorResponse_BalanceInsufficient) GetRequiredAmount() *Amount { + if x != nil { + return x.RequiredAmount + } + return nil +} + +func (x *DryRunErrorResponse_BalanceInsufficient) GetAvailableAmount() *Amount { + if x != nil { + return x.AvailableAmount + } + return nil +} + +// The energy made available for the transaction is insufficient to cover the basic processing +// required to include a transaction in a block. +type DryRunErrorResponse_EnergyInsufficient struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The minimum energy required for the transaction to be included in the chain. + // Note that, even if the energy supplied for the transaction is enough to prevent a + // `EnergyInsufficient`, the transaction can still be rejected for having + // insufficient energy. In that case, a `TransactionExecuted` response will be + // produced, but indicate the transaction was rejected. + EnergyRequired *Energy `protobuf:"bytes,1,opt,name=energy_required,json=energyRequired,proto3" json:"energy_required,omitempty"` +} + +func (x *DryRunErrorResponse_EnergyInsufficient) Reset() { + *x = DryRunErrorResponse_EnergyInsufficient{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[305] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DryRunErrorResponse_EnergyInsufficient) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DryRunErrorResponse_EnergyInsufficient) ProtoMessage() {} + +func (x *DryRunErrorResponse_EnergyInsufficient) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[305] + 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 DryRunErrorResponse_EnergyInsufficient.ProtoReflect.Descriptor instead. +func (*DryRunErrorResponse_EnergyInsufficient) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{213, 6} +} + +func (x *DryRunErrorResponse_EnergyInsufficient) GetEnergyRequired() *Energy { + if x != nil { + return x.EnergyRequired + } + return nil +} + +// Invoking the smart contract instance failed. +type DryRunErrorResponse_InvokeFailure struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // If invoking a V0 contract this is not provided, otherwise it is + // potentially return value produced by the call unless the call failed with + // out of energy or runtime error. If the V1 contract terminated with a + // logic error then the return value is present. + ReturnValue []byte `protobuf:"bytes,1,opt,name=return_value,json=returnValue,proto3,oneof" json:"return_value,omitempty"` + // Energy used by the execution. + UsedEnergy *Energy `protobuf:"bytes,2,opt,name=used_energy,json=usedEnergy,proto3" json:"used_energy,omitempty"` + // Contract execution failed for the given reason. + Reason *RejectReason `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"` +} + +func (x *DryRunErrorResponse_InvokeFailure) Reset() { + *x = DryRunErrorResponse_InvokeFailure{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[306] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DryRunErrorResponse_InvokeFailure) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DryRunErrorResponse_InvokeFailure) ProtoMessage() {} + +func (x *DryRunErrorResponse_InvokeFailure) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[306] + 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 DryRunErrorResponse_InvokeFailure.ProtoReflect.Descriptor instead. +func (*DryRunErrorResponse_InvokeFailure) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{213, 7} +} + +func (x *DryRunErrorResponse_InvokeFailure) GetReturnValue() []byte { + if x != nil { + return x.ReturnValue + } + return nil +} + +func (x *DryRunErrorResponse_InvokeFailure) GetUsedEnergy() *Energy { + if x != nil { + return x.UsedEnergy + } + return nil +} + +func (x *DryRunErrorResponse_InvokeFailure) GetReason() *RejectReason { + if x != nil { + return x.Reason + } + return nil +} + +// The block state at the specified block was successfully loaded. +type DryRunSuccessResponse_BlockStateLoaded struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The timestamp of the block, taken to be the current timestamp. + CurrentTimestamp *Timestamp `protobuf:"bytes,1,opt,name=current_timestamp,json=currentTimestamp,proto3" json:"current_timestamp,omitempty"` + // The hash of the block that was loaded. + BlockHash *BlockHash `protobuf:"bytes,2,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"` + // The protocol version at the specified block. The behavior of operations can vary across + // protocol versions. + ProtocolVersion ProtocolVersion `protobuf:"varint,3,opt,name=protocol_version,json=protocolVersion,proto3,enum=concordium.v2.ProtocolVersion" json:"protocol_version,omitempty"` +} + +func (x *DryRunSuccessResponse_BlockStateLoaded) Reset() { + *x = DryRunSuccessResponse_BlockStateLoaded{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[307] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DryRunSuccessResponse_BlockStateLoaded) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DryRunSuccessResponse_BlockStateLoaded) ProtoMessage() {} + +func (x *DryRunSuccessResponse_BlockStateLoaded) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[307] + 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 DryRunSuccessResponse_BlockStateLoaded.ProtoReflect.Descriptor instead. +func (*DryRunSuccessResponse_BlockStateLoaded) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{214, 0} +} + +func (x *DryRunSuccessResponse_BlockStateLoaded) GetCurrentTimestamp() *Timestamp { + if x != nil { + return x.CurrentTimestamp + } + return nil +} + +func (x *DryRunSuccessResponse_BlockStateLoaded) GetBlockHash() *BlockHash { + if x != nil { + return x.BlockHash + } + return nil +} + +func (x *DryRunSuccessResponse_BlockStateLoaded) GetProtocolVersion() ProtocolVersion { + if x != nil { + return x.ProtocolVersion + } + return ProtocolVersion_PROTOCOL_VERSION_1 +} + +// The current apparent timestamp was updated to the specified value. +type DryRunSuccessResponse_TimestampSet struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DryRunSuccessResponse_TimestampSet) Reset() { + *x = DryRunSuccessResponse_TimestampSet{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[308] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DryRunSuccessResponse_TimestampSet) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DryRunSuccessResponse_TimestampSet) ProtoMessage() {} + +func (x *DryRunSuccessResponse_TimestampSet) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[308] + 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 DryRunSuccessResponse_TimestampSet.ProtoReflect.Descriptor instead. +func (*DryRunSuccessResponse_TimestampSet) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{214, 1} +} + +// The specified amount was minted to the specified account. +type DryRunSuccessResponse_MintedToAccount struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DryRunSuccessResponse_MintedToAccount) Reset() { + *x = DryRunSuccessResponse_MintedToAccount{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[309] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DryRunSuccessResponse_MintedToAccount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DryRunSuccessResponse_MintedToAccount) ProtoMessage() {} + +func (x *DryRunSuccessResponse_MintedToAccount) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[309] + 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 DryRunSuccessResponse_MintedToAccount.ProtoReflect.Descriptor instead. +func (*DryRunSuccessResponse_MintedToAccount) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{214, 2} +} + +// The transaction was executed. +type DryRunSuccessResponse_TransactionExecuted struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The amount of energy actually expended in executing the transaction. + EnergyCost *Energy `protobuf:"bytes,1,opt,name=energy_cost,json=energyCost,proto3" json:"energy_cost,omitempty"` + // The details of the outcome of the transaction. + Details *AccountTransactionDetails `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"` + // If this is an invocation of a V1 contract that produced a return value, this is that + // value. Otherwise it is absent. + ReturnValue []byte `protobuf:"bytes,3,opt,name=return_value,json=returnValue,proto3,oneof" json:"return_value,omitempty"` +} + +func (x *DryRunSuccessResponse_TransactionExecuted) Reset() { + *x = DryRunSuccessResponse_TransactionExecuted{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[310] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DryRunSuccessResponse_TransactionExecuted) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DryRunSuccessResponse_TransactionExecuted) ProtoMessage() {} + +func (x *DryRunSuccessResponse_TransactionExecuted) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[310] + 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 DryRunSuccessResponse_TransactionExecuted.ProtoReflect.Descriptor instead. +func (*DryRunSuccessResponse_TransactionExecuted) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{214, 3} +} + +func (x *DryRunSuccessResponse_TransactionExecuted) GetEnergyCost() *Energy { + if x != nil { + return x.EnergyCost + } + return nil +} + +func (x *DryRunSuccessResponse_TransactionExecuted) GetDetails() *AccountTransactionDetails { + if x != nil { + return x.Details + } + return nil +} + +func (x *DryRunSuccessResponse_TransactionExecuted) GetReturnValue() []byte { + if x != nil { + return x.ReturnValue + } + return nil +} + +// The smart contract instance was invoked successfully. +type DryRunSuccessResponse_InvokeSuccess struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // If invoking a V0 contract this is absent. Otherwise it is the return + // value produced by the contract. + ReturnValue []byte `protobuf:"bytes,1,opt,name=return_value,json=returnValue,proto3,oneof" json:"return_value,omitempty"` + // Energy used by the execution. + UsedEnergy *Energy `protobuf:"bytes,2,opt,name=used_energy,json=usedEnergy,proto3" json:"used_energy,omitempty"` + // Effects produced by contract execution. + Effects []*ContractTraceElement `protobuf:"bytes,3,rep,name=effects,proto3" json:"effects,omitempty"` +} + +func (x *DryRunSuccessResponse_InvokeSuccess) Reset() { + *x = DryRunSuccessResponse_InvokeSuccess{} + if protoimpl.UnsafeEnabled { + mi := &file_v2_concordium_types_proto_msgTypes[311] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DryRunSuccessResponse_InvokeSuccess) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DryRunSuccessResponse_InvokeSuccess) ProtoMessage() {} + +func (x *DryRunSuccessResponse_InvokeSuccess) ProtoReflect() protoreflect.Message { + mi := &file_v2_concordium_types_proto_msgTypes[311] + 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 DryRunSuccessResponse_InvokeSuccess.ProtoReflect.Descriptor instead. +func (*DryRunSuccessResponse_InvokeSuccess) Descriptor() ([]byte, []int) { + return file_v2_concordium_types_proto_rawDescGZIP(), []int{214, 4} +} + +func (x *DryRunSuccessResponse_InvokeSuccess) GetReturnValue() []byte { + if x != nil { + return x.ReturnValue + } + return nil +} + +func (x *DryRunSuccessResponse_InvokeSuccess) GetUsedEnergy() *Energy { + if x != nil { + return x.UsedEnergy + } + return nil +} + +func (x *DryRunSuccessResponse_InvokeSuccess) GetEffects() []*ContractTraceElement { + if x != nil { + return x.Effects + } + return nil +} + +var File_v2_concordium_types_proto protoreflect.FileDescriptor + +var file_v2_concordium_types_proto_rawDesc = []byte{ + 0x0a, 0x19, 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2f, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x22, 0x21, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, + 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x27, 0x0a, 0x0f, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x21, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2b, 0x0a, 0x13, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, + 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x1f, 0x0a, 0x07, 0x42, 0x61, 0x6b, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x24, 0x0a, 0x0c, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x21, 0x0a, 0x09, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0xff, 0x01, 0x0a, 0x15, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, + 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x45, 0x0a, 0x02, + 0x76, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x4d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x30, 0x48, 0x00, 0x52, + 0x02, 0x76, 0x30, 0x12, 0x45, 0x0a, 0x02, 0x76, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x33, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x56, 0x31, 0x48, 0x00, 0x52, 0x02, 0x76, 0x31, 0x1a, 0x26, 0x0a, 0x0e, 0x4d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x30, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x1a, 0x26, 0x0a, 0x0e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x56, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x22, 0x21, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2d, 0x0a, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0c, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, + 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x73, + 0x0a, 0x0a, 0x4e, 0x65, 0x77, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x74, 0x0a, 0x0f, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x12, 0x34, 0x0a, 0x09, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x09, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x27, 0x0a, 0x0f, 0x45, 0x6e, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0xe6, 0x02, 0x0a, 0x10, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x0b, 0x73, 0x65, 0x6c, 0x66, 0x5f, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0a, 0x73, 0x65, + 0x6c, 0x66, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x50, 0x0a, 0x11, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6e, + 0x75, 0x6d, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6f, 0x6d, + 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6e, 0x75, 0x6d, + 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x22, 0x7e, 0x0a, 0x10, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, + 0x30, 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, + 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x48, 0x00, 0x52, 0x05, 0x62, 0x61, 0x6b, 0x65, + 0x72, 0x42, 0x08, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x2e, 0x0a, 0x16, 0x42, + 0x61, 0x6b, 0x65, 0x72, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2f, 0x0a, 0x17, 0x42, + 0x61, 0x6b, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x31, 0x0a, 0x19, + 0x42, 0x61, 0x6b, 0x65, 0x72, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0xa8, 0x02, 0x0a, 0x09, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x31, 0x0a, + 0x08, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x07, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x0c, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x51, 0x0a, 0x0f, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0e, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x22, 0x1c, 0x0a, - 0x04, 0x4d, 0x65, 0x6d, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x15, - 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x31, 0x0a, 0x08, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, - 0x07, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, - 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x4b, 0x0a, 0x0d, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x51, 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0e, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x22, 0x95, 0x02, 0x0a, 0x12, 0x53, + 0x74, 0x61, 0x6b, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x42, 0x0a, 0x06, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x48, 0x00, 0x52, 0x06, 0x72, + 0x65, 0x64, 0x75, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, + 0x00, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x1a, 0x7d, 0x0a, 0x06, 0x52, 0x65, 0x64, + 0x75, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x08, 0x6e, + 0x65, 0x77, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x3f, 0x0a, 0x0e, 0x65, 0x66, 0x66, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x65, 0x66, 0x66, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x22, 0x4d, 0x0a, 0x0e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x1a, 0x70, 0x61, 0x72, 0x74, 0x73, 0x5f, 0x70, 0x65, + 0x72, 0x5f, 0x68, 0x75, 0x6e, 0x64, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x68, 0x6f, 0x75, 0x73, 0x61, + 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x70, 0x61, 0x72, 0x74, 0x73, 0x50, + 0x65, 0x72, 0x48, 0x75, 0x6e, 0x64, 0x72, 0x65, 0x64, 0x54, 0x68, 0x6f, 0x75, 0x73, 0x61, 0x6e, + 0x64, 0x22, 0xcc, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0c, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x22, 0xf8, 0x01, 0x0a, 0x1b, 0x45, - 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, + 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x66, 0x69, 0x6e, 0x61, + 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x06, 0x62, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, + 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x12, + 0x3f, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0xa8, 0x01, 0x0a, 0x0d, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, + 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, + 0x12, 0x49, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x73, 0x22, 0x9c, 0x06, 0x0a, 0x12, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x3f, 0x0a, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x48, 0x00, 0x52, 0x05, 0x62, 0x61, + 0x6b, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, + 0x1a, 0xd7, 0x02, 0x0a, 0x05, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0d, 0x73, 0x74, + 0x61, 0x6b, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x64, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x74, 0x61, 0x6b, + 0x65, 0x5f, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x09, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x0e, 0x70, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x09, 0x70, 0x6f, 0x6f, + 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, + 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x01, 0x52, 0x08, 0x70, 0x6f, + 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x1a, 0x8d, 0x02, 0x0a, 0x09, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x3a, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x6b, + 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x64, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, + 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, + 0x72, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, + 0x37, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x4d, 0x0a, 0x0e, 0x70, 0x65, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x65, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x73, 0x74, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x26, 0x0a, 0x0e, 0x53, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x2c, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x1e, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x27, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2a, 0x0a, 0x12, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x28, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x25, 0x0a, 0x0d, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x26, 0x0a, 0x0e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, + 0x01, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x07, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3c, 0x0a, 0x10, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x12, + 0x21, 0x0a, 0x0b, 0x65, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x4b, + 0x65, 0x79, 0x42, 0x05, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x22, 0xf4, 0x01, 0x0a, 0x14, 0x43, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, + 0x79, 0x73, 0x12, 0x41, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x63, 0x4b, 0x65, 0x79, 0x73, 0x2e, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x09, 0x74, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x1a, 0x58, 0x0a, 0x09, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0x30, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x30, 0x0a, 0x18, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x35, 0x0a, 0x09, 0x59, 0x65, 0x61, 0x72, 0x4d, 0x6f, 0x6e, 0x74, + 0x68, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x04, 0x79, 0x65, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x22, 0xfc, 0x01, 0x0a, 0x06, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x59, 0x65, 0x61, 0x72, 0x4d, + 0x6f, 0x6e, 0x74, 0x68, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x33, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x59, 0x65, 0x61, 0x72, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x52, 0x07, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x54, 0x6f, 0x12, 0x45, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x81, 0x02, 0x0a, 0x17, 0x49, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x50, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, + 0x40, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x49, + 0x64, 0x12, 0x3c, 0x0a, 0x05, 0x69, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x04, 0x69, 0x70, 0x49, 0x64, 0x12, + 0x2d, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x3f, + 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x30, 0x0a, + 0x15, 0x65, 0x6e, 0x63, 0x5f, 0x69, 0x64, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x75, 0x62, + 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x65, 0x6e, + 0x63, 0x49, 0x64, 0x43, 0x72, 0x65, 0x64, 0x50, 0x75, 0x62, 0x53, 0x68, 0x61, 0x72, 0x65, 0x22, + 0x23, 0x0a, 0x0b, 0x41, 0x72, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc5, 0x03, 0x0a, 0x15, 0x43, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x03, 0x70, 0x72, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x03, 0x70, 0x72, 0x66, 0x12, + 0x3c, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3c, 0x0a, + 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, + 0x6d, 0x61, 0x78, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x54, 0x0a, 0x0a, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x12, 0x53, 0x0a, 0x19, 0x69, 0x64, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x63, + 0x5f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x65, 0x66, 0x66, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x15, 0x69, 0x64, 0x43, 0x72, 0x65, 0x64, 0x53, 0x65, 0x63, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, + 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x1a, 0x58, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0xaa, 0x04, 0x0a, 0x16, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x04, 0x6b, + 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x04, + 0x6b, 0x65, 0x79, 0x73, 0x12, 0x40, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x06, + 0x63, 0x72, 0x65, 0x64, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x05, 0x69, 0x70, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x04, + 0x69, 0x70, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x12, 0x3d, 0x0a, 0x0c, 0x61, 0x72, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x72, 0x54, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x0b, 0x61, 0x72, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x12, 0x4a, 0x0a, 0x07, 0x61, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, 0x41, 0x72, 0x44, 0x61, 0x74, + 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x46, + 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x55, 0x0a, 0x0b, 0x41, 0x72, 0x44, 0x61, 0x74, 0x61, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xad, 0x01, + 0x0a, 0x11, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x12, 0x42, 0x0a, 0x07, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x48, 0x00, 0x52, 0x07, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x43, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x48, 0x00, + 0x52, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x42, 0x13, 0x0a, 0x11, 0x63, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xdf, 0x05, + 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x46, 0x0a, + 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x12, 0x3b, 0x0a, 0x05, 0x63, 0x72, 0x65, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x72, 0x65, 0x64, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x63, 0x72, 0x65, 0x64, 0x73, 0x12, 0x3d, 0x0a, + 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, + 0x64, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x4c, 0x0a, 0x11, + 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, - 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x75, 0x70, 0x54, 0x6f, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xbc, 0x01, 0x0a, 0x17, 0x4e, 0x65, 0x77, 0x45, 0x6e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, - 0x6e, 0x65, 0x77, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x08, 0x6e, 0x65, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x49, 0x0a, 0x10, 0x65, 0x6e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x10, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, + 0x74, 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x0e, 0x65, 0x6e, + 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, + 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, + 0x31, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x12, 0x3c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x37, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x5a, 0x0a, 0x0a, 0x43, 0x72, 0x65, + 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x36, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x22, + 0x86, 0x04, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x62, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x04, 0x62, 0x65, 0x73, 0x74, 0x12, 0x35, + 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, + 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x05, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x48, 0x00, + 0x52, 0x05, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x12, 0x4d, 0x0a, 0x0f, 0x61, 0x62, 0x73, 0x6f, 0x6c, + 0x75, 0x74, 0x65, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, + 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x57, 0x0a, 0x0f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x52, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x48, 0x00, 0x52, + 0x0e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x1a, + 0xa2, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x40, 0x0a, 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, + 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x32, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x74, + 0x72, 0x69, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, 0x74, + 0x72, 0x69, 0x63, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x22, 0xb8, 0x02, 0x0a, 0x0c, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x52, 0x0a, 0x0e, 0x72, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x48, 0x00, 0x52, 0x0d, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x3e, 0x0a, + 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x48, 0x00, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x1a, 0x7d, 0x0a, + 0x0d, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x40, + 0x0a, 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x15, 0x0a, 0x13, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x22, 0xf7, 0x01, 0x0a, 0x16, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x39, + 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, + 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x42, 0x0a, 0x07, 0x63, 0x72, 0x65, + 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x48, 0x00, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x49, 0x64, 0x12, 0x42, 0x0a, + 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x42, 0x1a, 0x0a, 0x18, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x22, 0xa8, 0x01, + 0x0a, 0x12, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, + 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x54, 0x0a, 0x12, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x7e, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, + 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x62, 0x73, + 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x68, 0x0a, 0x10, 0x41, 0x6e, 0x63, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0a, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, + 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x13, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x37, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, + 0x66, 0x22, 0x43, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, + 0x62, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x75, + 0x62, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x8d, 0x01, 0x0a, 0x13, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, + 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, + 0x74, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x38, 0x0a, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xcd, 0x05, 0x0a, 0x0c, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x02, 0x76, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x0f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc6, 0x01, 0x0a, 0x1d, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x65, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x65, - 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x2e, 0x56, 0x30, 0x48, 0x00, 0x52, 0x02, 0x76, 0x30, 0x12, 0x30, 0x0a, 0x02, 0x76, 0x31, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x2e, 0x56, 0x31, 0x48, 0x00, 0x52, 0x02, 0x76, 0x31, 0x1a, 0xc0, 0x02, 0x0a, 0x02, + 0x56, 0x30, 0x12, 0x34, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, + 0x30, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x33, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x3d, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x2d, 0x0a, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x07, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x73, 0x12, 0x2b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x3d, 0x0a, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, + 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x1a, 0x8a, + 0x02, 0x0a, 0x02, 0x56, 0x31, 0x12, 0x33, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x07, 0x6d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x12, + 0x2b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, + 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0d, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x52, 0x0c, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x0a, 0x13, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4b, 0x56, 0x50, 0x61, 0x69, 0x72, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x1a, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, + 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x38, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2d, - 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x26, 0x0a, - 0x0e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd5, 0x13, 0x0a, 0x0a, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x61, 0x64, - 0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x41, 0x64, 0x64, 0x65, 0x64, 0x48, - 0x00, 0x52, 0x0a, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x3d, 0x0a, - 0x0d, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x48, 0x00, 0x52, 0x0c, - 0x62, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x63, 0x0a, 0x15, - 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x61, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, - 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, - 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x48, 0x00, 0x52, 0x13, 0x62, 0x61, - 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, - 0x64, 0x12, 0x63, 0x0a, 0x15, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x6b, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x48, - 0x00, 0x52, 0x13, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x44, 0x65, 0x63, - 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x12, 0x7c, 0x0a, 0x1e, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, - 0x72, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, - 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, + 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x2f, + 0x0a, 0x17, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x41, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x23, 0x0a, 0x0b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x20, 0x0a, 0x08, 0x49, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x21, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x27, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x30, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x83, 0x03, 0x0a, 0x0f, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, + 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x09, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x74, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x09, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, + 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x48, 0x00, 0x52, 0x09, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x1a, 0x4f, + 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x08, 0x6f, + 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x49, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x1a, + 0x4d, 0x0a, 0x09, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x07, + 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x49, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x8d, 0x01, 0x0a, 0x17, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x49, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x37, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, + 0x73, 0x68, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x39, 0x0a, + 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, + 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x22, 0x1e, 0x0a, 0x06, 0x45, 0x6e, 0x65, 0x72, + 0x67, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x1c, 0x0a, 0x04, 0x53, 0x6c, 0x6f, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x19, 0x4e, 0x65, 0x78, 0x74, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0e, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, + 0x61, 0x6c, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x61, 0x6c, 0x6c, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x22, 0x20, 0x0a, 0x08, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa7, 0x2c, 0x0a, 0x0c, + 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x0d, + 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x77, 0x66, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x57, 0x66, 0x12, 0x57, 0x0a, 0x1a, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, + 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x48, 0x00, 0x52, 0x17, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x45, 0x78, 0x69, 0x73, 0x74, + 0x73, 0x12, 0x5b, 0x0a, 0x19, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x17, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x5f, + 0x0a, 0x13, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x6d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6a, 0x65, + 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x49, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x48, 0x00, 0x52, 0x11, 0x69, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, + 0x68, 0x0a, 0x16, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x30, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x48, 0x00, 0x52, 0x14, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x54, 0x0a, 0x18, 0x69, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x52, 0x65, 0x66, 0x48, 0x00, 0x52, 0x16, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, + 0x5a, 0x0a, 0x18, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x48, 0x00, 0x52, 0x16, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3f, 0x0a, 0x0f, 0x72, + 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x75, + 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x56, 0x0a, 0x10, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, 0x6c, 0x61, 0x72, 0x67, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6f, 0x4c, 0x61, 0x72, + 0x67, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6f, 0x4c, + 0x61, 0x72, 0x67, 0x65, 0x12, 0x4b, 0x0a, 0x15, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x14, 0x73, 0x65, 0x72, + 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, + 0x65, 0x12, 0x3a, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x5f, 0x6f, 0x66, 0x5f, 0x65, 0x6e, 0x65, 0x72, + 0x67, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, + 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x4f, 0x66, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x4f, 0x0a, + 0x0d, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x48, 0x00, + 0x52, 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x58, + 0x0a, 0x10, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x12, 0x3b, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x40, 0x0a, 0x0f, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, + 0x5f, 0x61, 0x5f, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, - 0x61, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x1b, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x12, 0x4d, 0x0a, 0x12, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x6b, 0x65, - 0x79, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, + 0x79, 0x41, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x0b, 0x6e, 0x6f, 0x74, 0x5f, 0x61, + 0x5f, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x09, 0x6e, + 0x6f, 0x74, 0x41, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x66, 0x0a, 0x24, 0x69, 0x6e, 0x73, 0x75, + 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x20, + 0x69, 0x6e, 0x73, 0x75, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x12, 0x6d, 0x0a, 0x28, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x5f, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, + 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x23, 0x73, 0x74, 0x61, 0x6b, + 0x65, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x54, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x46, 0x6f, 0x72, 0x42, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x12, + 0x42, 0x0a, 0x11, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6f, 0x6c, + 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x48, 0x00, 0x52, 0x0f, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x6e, 0x43, 0x6f, 0x6f, 0x6c, 0x64, + 0x6f, 0x77, 0x6e, 0x12, 0x66, 0x0a, 0x19, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x41, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, + 0x48, 0x00, 0x52, 0x17, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x53, 0x0a, 0x1a, 0x6e, + 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x17, 0x6e, 0x6f, 0x6e, 0x45, 0x78, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x64, + 0x12, 0x4e, 0x0a, 0x18, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x61, 0x6c, + 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x69, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x18, 0x16, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x14, 0x6b, 0x65, 0x79, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x49, 0x6e, 0x55, 0x73, 0x65, + 0x12, 0x52, 0x0a, 0x19, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x17, 0x69, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x68, 0x0a, 0x25, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, + 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, + 0x69, 0x67, 0x6e, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x21, 0x69, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x4b, 0x65, + 0x79, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x6c, + 0x0a, 0x27, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x23, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x5e, 0x0a, 0x20, + 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, + 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1c, + 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, + 0x6f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x64, 0x0a, 0x1e, + 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x1b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x1b, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x66, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x12, 0x64, 0x0a, 0x23, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x5f, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4f, 0x6e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x14, 0x7a, 0x65, 0x72, 0x6f, + 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x13, + 0x7a, 0x65, 0x72, 0x6f, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x17, 0x6e, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x61, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x1e, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x15, 0x6e, 0x6f, + 0x6e, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x69, 0x6e, 0x67, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x12, 0x5d, 0x0a, 0x1f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x73, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x48, 0x00, 0x52, 0x1c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, + 0x65, 0x64, 0x12, 0x57, 0x0a, 0x17, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, + 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x20, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x48, 0x00, 0x52, 0x15, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x53, + 0x65, 0x6c, 0x66, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x13, 0x69, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x73, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, + 0x52, 0x12, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x12, 0x5c, 0x0a, 0x12, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x44, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x49, 0x64, 0x73, 0x48, 0x00, + 0x52, 0x10, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x49, + 0x64, 0x73, 0x12, 0x63, 0x0a, 0x15, 0x6e, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x23, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x4e, + 0x6f, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x49, 0x64, + 0x73, 0x48, 0x00, 0x52, 0x12, 0x6e, 0x6f, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, + 0x43, 0x72, 0x65, 0x64, 0x49, 0x64, 0x73, 0x12, 0x4e, 0x0a, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, + 0x52, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x43, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x5a, 0x0a, 0x1e, 0x63, 0x72, 0x65, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x64, + 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x48, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x44, 0x69, 0x64, 0x4e, 0x6f, 0x74, 0x53, + 0x69, 0x67, 0x6e, 0x12, 0x5f, 0x0a, 0x20, 0x6e, 0x6f, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1d, 0x6e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x12, 0x5e, 0x0a, 0x20, 0x6e, 0x6f, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1c, 0x6e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x54, 0x6f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x45, 0x6e, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x65, 0x64, 0x12, 0x5c, 0x0a, 0x1f, 0x6e, 0x6f, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x65, 0x6e, + 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1b, 0x6e, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x54, 0x6f, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x65, 0x64, 0x12, 0x57, 0x0a, 0x1c, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x61, + 0x6b, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, + 0x52, 0x19, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x41, 0x64, + 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x73, 0x0a, 0x2b, 0x66, + 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, + 0x74, 0x5f, 0x69, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x26, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x12, 0x67, 0x0a, 0x25, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, + 0x5f, 0x69, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x20, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, + 0x6f, 0x74, 0x49, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x6b, 0x0a, 0x27, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x5f, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x48, 0x00, 0x52, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, + 0x65, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x49, + 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x46, 0x0a, 0x13, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, + 0x79, 0x5f, 0x61, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x2d, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x11, 0x61, 0x6c, 0x72, + 0x65, 0x61, 0x64, 0x79, 0x41, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x70, + 0x0a, 0x29, 0x69, 0x6e, 0x73, 0x75, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x62, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x25, 0x69, 0x6e, 0x73, 0x75, 0x66, + 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x6f, + 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x12, 0x61, 0x0a, 0x21, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x48, 0x00, 0x52, 0x1e, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x12, 0x5a, 0x0a, 0x1d, 0x69, 0x6e, 0x73, 0x75, 0x66, 0x66, 0x69, 0x63, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x74, 0x61, 0x6b, 0x65, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x48, 0x00, 0x52, 0x1b, 0x69, 0x6e, 0x73, 0x75, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, + 0x4a, 0x0a, 0x15, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x5f, + 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x13, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, + 0x72, 0x49, 0x6e, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x47, 0x0a, 0x0f, 0x6e, + 0x6f, 0x74, 0x5f, 0x61, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x32, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x41, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5a, 0x0a, 0x1d, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x61, 0x5f, + 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, + 0x72, 0x49, 0x64, 0x48, 0x00, 0x52, 0x19, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x41, 0x42, 0x61, 0x6b, 0x65, 0x72, + 0x12, 0x67, 0x0a, 0x25, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x20, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x4f, 0x76, + 0x65, 0x72, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x5e, 0x0a, 0x20, 0x70, 0x6f, 0x6f, + 0x6c, 0x5f, 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x6f, + 0x76, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x18, 0x35, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1c, 0x70, 0x6f, 0x6f, + 0x6c, 0x57, 0x6f, 0x75, 0x6c, 0x64, 0x42, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x4f, 0x76, 0x65, 0x72, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x70, 0x6f, 0x6f, + 0x6c, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x6f, 0x6f, 0x6c, 0x43, 0x6c, 0x6f, 0x73, + 0x65, 0x64, 0x1a, 0x82, 0x01, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, + 0x69, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x37, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, + 0x66, 0x12, 0x34, 0x0a, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x08, 0x69, + 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x8e, 0x01, 0x0a, 0x14, 0x49, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x12, 0x37, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x52, 0x09, + 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x12, 0x3d, 0x0a, 0x0c, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0b, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x71, 0x0a, 0x0e, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x54, 0x6f, 0x6f, 0x4c, 0x61, 0x72, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2d, 0x0a, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x33, 0x0a, 0x0c, 0x52, + 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x72, + 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x1a, 0xf8, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65, 0x6a, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x10, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x1a, 0x4d, 0x0a, 0x10, 0x44, + 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x49, 0x64, 0x73, 0x12, + 0x39, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x03, 0x69, 0x64, 0x73, 0x1a, 0x4f, 0x0a, 0x12, 0x4e, 0x6f, + 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x49, 0x64, 0x73, + 0x12, 0x39, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, + 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x03, 0x69, 0x64, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xf3, 0x02, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, + 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x52, 0x09, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x52, 0x65, 0x66, 0x12, 0x38, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x34, 0x0a, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x08, 0x69, 0x6e, 0x69, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x25, 0x0a, 0x0d, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0xaf, 0x03, 0x0a, 0x14, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x10, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x36, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0a, 0x69, 0x6e, + 0x73, 0x74, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x52, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, + 0x3d, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, + 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd0, 0x07, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, + 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x53, + 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x72, 0x61, 0x63, + 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x72, 0x65, 0x64, 0x12, 0x53, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, + 0x6d, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x52, + 0x65, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x48, 0x00, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, + 0x64, 0x12, 0x4a, 0x0a, 0x08, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x72, 0x61, 0x63, + 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, + 0x64, 0x48, 0x00, 0x52, 0x08, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x64, 0x1a, 0xaf, 0x01, + 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x12, 0x36, 0x0a, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x06, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x1a, + 0x7d, 0x0a, 0x0b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x65, 0x64, 0x12, 0x38, + 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x5d, + 0x0a, 0x07, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x1a, 0x9c, 0x01, + 0x0a, 0x08, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x2c, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x52, 0x04, 0x66, 0x72, + 0x6f, 0x6d, 0x12, 0x28, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x52, 0x02, 0x74, 0x6f, 0x42, 0x09, 0x0a, 0x07, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xdc, 0x02, 0x0a, 0x0e, 0x42, 0x61, 0x6b, 0x65, + 0x72, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x08, 0x62, 0x61, + 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, + 0x65, 0x72, 0x49, 0x64, 0x52, 0x07, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x37, 0x0a, + 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, + 0x52, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x48, 0x0a, 0x0c, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4b, 0x65, 0x79, 0x12, 0x51, 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, + 0x65, 0x72, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x22, 0x1c, 0x0a, 0x04, 0x4d, 0x65, 0x6d, 0x6f, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x15, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x31, + 0x0a, 0x08, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x07, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x08, 0x6e, 0x65, 0x77, + 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, + 0x73, 0x65, 0x64, 0x22, 0xf8, 0x01, 0x0a, 0x1b, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, + 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0a, + 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x09, 0x6e, 0x65, 0x77, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0c, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, + 0x0a, 0x0b, 0x75, 0x70, 0x5f, 0x74, 0x6f, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x09, 0x75, 0x70, 0x54, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xbc, + 0x01, 0x0a, 0x17, 0x4e, 0x65, 0x77, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x12, 0x49, 0x0a, 0x10, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0f, 0x65, 0x6e, + 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc6, 0x01, + 0x0a, 0x1d, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x37, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, - 0x00, 0x52, 0x10, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x73, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x12, 0x61, 0x0a, 0x15, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x74, - 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, + 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x5f, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x09, 0x6e, 0x65, + 0x77, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x26, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd5, + 0x13, 0x0a, 0x0a, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, + 0x0b, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x61, - 0x6b, 0x65, 0x72, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x48, 0x00, 0x52, 0x12, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x6e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x64, 0x0a, 0x16, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, - 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x75, 0x72, 0x6c, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x55, 0x72, 0x6c, 0x48, 0x00, 0x52, 0x13, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, 0x72, 0x6c, 0x12, 0x8c, 0x01, 0x0a, - 0x24, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, - 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, 0x74, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x20, 0x62, 0x61, 0x6b, 0x65, 0x72, - 0x53, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, - 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x86, 0x01, 0x0a, 0x22, - 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, - 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, 0x74, 0x42, 0x61, 0x6b, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x1e, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, 0x74, 0x42, 0x61, - 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x98, 0x01, 0x0a, 0x28, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x73, - 0x65, 0x74, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x24, 0x62, 0x61, 0x6b, 0x65, 0x72, - 0x53, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, - 0xa2, 0x01, 0x0a, 0x0a, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x3c, - 0x0a, 0x0a, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x73, - 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, 0x61, 0x72, 0x6e, - 0x69, 0x6e, 0x67, 0x73, 0x1a, 0x7c, 0x0a, 0x13, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, - 0x6b, 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x08, 0x62, - 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x6b, 0x65, 0x72, 0x41, 0x64, 0x64, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0a, 0x62, 0x61, 0x6b, 0x65, + 0x72, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x0d, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, - 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x07, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, - 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, - 0x6b, 0x65, 0x1a, 0x7c, 0x0a, 0x13, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, - 0x44, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x08, 0x62, 0x61, 0x6b, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, + 0x6b, 0x65, 0x72, 0x49, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x63, 0x0a, 0x15, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x73, + 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, + 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, + 0x73, 0x65, 0x64, 0x48, 0x00, 0x52, 0x13, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, + 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x12, 0x63, 0x0a, 0x15, 0x62, 0x61, + 0x6b, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, + 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x44, + 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x48, 0x00, 0x52, 0x13, 0x62, 0x61, 0x6b, 0x65, + 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x12, + 0x7c, 0x0a, 0x1e, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, + 0x5f, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, + 0x52, 0x1b, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x4d, 0x0a, + 0x12, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x4b, + 0x65, 0x79, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x10, 0x62, 0x61, 0x6b, 0x65, + 0x72, 0x4b, 0x65, 0x79, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x61, 0x0a, 0x15, + 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, - 0x72, 0x49, 0x64, 0x52, 0x07, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x09, - 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x6b, 0x65, - 0x1a, 0x7b, 0x0a, 0x1b, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, - 0x45, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, - 0x31, 0x0a, 0x08, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x07, 0x62, 0x61, 0x6b, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x65, 0x61, - 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65, - 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x1a, 0x83, 0x01, - 0x0a, 0x12, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x07, - 0x62, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x6e, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x70, 0x65, - 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x1a, 0x5a, 0x0a, 0x13, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, 0x72, 0x6c, 0x12, 0x31, 0x0a, 0x08, 0x62, 0x61, - 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, - 0x65, 0x72, 0x49, 0x64, 0x52, 0x07, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x10, 0x0a, - 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x1a, - 0xb2, 0x01, 0x0a, 0x20, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, + 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, 0x74, 0x4f, + 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x12, 0x62, 0x61, 0x6b, + 0x65, 0x72, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x64, 0x0a, 0x16, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, + 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x55, 0x72, 0x6c, 0x48, 0x00, + 0x52, 0x13, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x55, 0x72, 0x6c, 0x12, 0x8c, 0x01, 0x0a, 0x24, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, + 0x73, 0x65, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x66, 0x65, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, + 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x48, 0x00, 0x52, 0x20, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x08, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x86, 0x01, 0x0a, 0x22, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x73, + 0x65, 0x74, 0x5f, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x6b, + 0x65, 0x72, 0x53, 0x65, 0x74, 0x42, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x1e, 0x62, + 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, 0x74, 0x42, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x98, 0x01, + 0x0a, 0x28, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x66, 0x69, 0x6e, 0x61, + 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x6b, 0x65, + 0x72, 0x53, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x48, 0x00, 0x52, 0x24, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x61, + 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, + 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0xa2, 0x01, 0x0a, 0x0a, 0x42, 0x61, 0x6b, + 0x65, 0x72, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x0a, 0x6b, 0x65, 0x79, 0x73, 0x5f, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, + 0x72, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x73, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x6b, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x65, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65, + 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x1a, 0x7c, 0x0a, + 0x13, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, + 0x61, 0x73, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x08, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x07, - 0x62, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x5b, 0x0a, 0x1a, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x18, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0xac, 0x01, 0x0a, 0x1e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, - 0x74, 0x42, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x08, 0x62, 0x61, 0x6b, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, - 0x64, 0x52, 0x07, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x57, 0x0a, 0x18, 0x62, 0x61, - 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x16, 0x62, 0x61, 0x6b, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x1a, 0xbe, 0x01, 0x0a, 0x24, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, 0x74, - 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x08, - 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, - 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x07, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x63, 0x0a, 0x1e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1c, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x3a, 0x0a, - 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x62, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, + 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x7c, 0x0a, 0x13, 0x42, + 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, + 0x65, 0x64, 0x12, 0x31, 0x0a, 0x08, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x07, 0x62, 0x61, + 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, + 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x7b, 0x0a, 0x1b, 0x42, 0x61, 0x6b, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x08, 0x62, 0x61, 0x6b, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, + 0x49, 0x64, 0x52, 0x07, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x72, + 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x1a, 0x83, 0x01, 0x0a, 0x12, 0x42, 0x61, 0x6b, 0x65, 0x72, + 0x53, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, + 0x08, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x07, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x3a, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x5a, 0x0a, 0x13, + 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x55, 0x72, 0x6c, 0x12, 0x31, 0x0a, 0x08, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x07, 0x62, + 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x1a, 0xb2, 0x01, 0x0a, 0x20, 0x42, 0x61, 0x6b, + 0x65, 0x72, 0x53, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x46, 0x65, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, + 0x08, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x07, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x5b, 0x0a, 0x1a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x66, 0x65, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x46, 0x65, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0xac, 0x01, + 0x0a, 0x1e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, 0x74, 0x42, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x31, 0x0a, 0x08, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x07, 0x62, 0x61, 0x6b, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x57, 0x0a, 0x18, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x16, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0xbe, 0x01, 0x0a, + 0x24, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x08, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, + 0x07, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x63, 0x0a, 0x1e, 0x66, 0x69, 0x6e, 0x61, + 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x1c, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x07, 0x0a, + 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x3a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x02, + 0x69, 0x64, 0x22, 0x8d, 0x0a, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x77, 0x0a, 0x1a, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x61, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, + 0x73, 0x65, 0x64, 0x48, 0x00, 0x52, 0x18, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x12, + 0x77, 0x0a, 0x1a, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, + 0x61, 0x6b, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x48, 0x00, 0x52, 0x18, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x44, + 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x12, 0x84, 0x01, 0x0a, 0x1f, 0x64, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x74, + 0x61, 0x6b, 0x65, 0x5f, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x48, + 0x00, 0x52, 0x1c, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, + 0x87, 0x01, 0x0a, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x65, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x00, 0x52, 0x1d, 0x64, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x47, 0x0a, 0x10, 0x64, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x48, + 0x00, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, + 0x65, 0x64, 0x12, 0x4b, 0x0a, 0x12, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x1a, + 0x8d, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x0c, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x52, 0x0b, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x09, 0x6e, + 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, + 0x8d, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x0c, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x52, 0x0b, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x09, 0x6e, + 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, + 0x88, 0x01, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, + 0x12, 0x3d, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, + 0x49, 0x64, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, + 0x29, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x65, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x74, 0x61, + 0x6b, 0x65, 0x45, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x1a, 0xac, 0x01, 0x0a, 0x1d, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x3d, 0x0a, 0x0c, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x52, 0x0b, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x4c, 0x0a, 0x11, 0x64, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x22, 0xe8, 0x1a, 0x0a, 0x19, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, + 0x12, 0x43, 0x0a, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x4e, 0x6f, 0x6e, 0x65, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x12, 0x43, 0x0a, 0x0f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, + 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x12, 0x5c, 0x0a, 0x14, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x48, 0x00, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x75, 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x73, 0x73, 0x75, + 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x02, 0x69, 0x64, 0x22, 0x8d, 0x0a, 0x0a, 0x0f, 0x44, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x77, 0x0a, - 0x1a, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x6b, - 0x65, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x6b, - 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x48, 0x00, 0x52, 0x18, 0x64, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x49, 0x6e, 0x63, - 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x12, 0x77, 0x0a, 0x1a, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x61, 0x73, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, 0x61, - 0x73, 0x65, 0x64, 0x48, 0x00, 0x52, 0x18, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x64, 0x12, - 0x84, 0x01, 0x0a, 0x1f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, - 0x65, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x65, 0x61, 0x72, 0x6e, 0x69, - 0x6e, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, 0x61, - 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x48, 0x00, 0x52, 0x1c, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, 0x61, - 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x87, 0x01, 0x0a, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x44, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, - 0x00, 0x52, 0x1d, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, - 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x12, 0x47, 0x0a, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, - 0x64, 0x64, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x4b, 0x0a, 0x12, 0x64, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, - 0x64, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x1a, 0x8d, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, - 0x73, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x49, 0x64, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x08, 0x6e, 0x65, - 0x77, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x8d, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x44, 0x65, 0x63, 0x72, 0x65, 0x61, - 0x73, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x49, 0x64, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x08, 0x6e, 0x65, - 0x77, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x88, 0x01, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, - 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x74, 0x61, 0x6b, - 0x65, 0x5f, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, - 0x73, 0x1a, 0xac, 0x01, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x49, 0x64, 0x12, 0x4c, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x10, - 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xe8, 0x1a, 0x0a, 0x19, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x12, 0x43, 0x0a, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x2e, - 0x4e, 0x6f, 0x6e, 0x65, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x12, 0x43, 0x0a, 0x0f, - 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x48, - 0x00, 0x52, 0x0e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, - 0x64, 0x12, 0x5c, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x6e, - 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, - 0x75, 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x73, 0x73, 0x75, 0x65, 0x64, 0x48, 0x00, - 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x49, 0x73, 0x73, 0x75, 0x65, 0x64, 0x12, 0x65, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x47, 0x0a, - 0x0b, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x61, - 0x6b, 0x65, 0x72, 0x41, 0x64, 0x64, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0a, 0x62, 0x61, 0x6b, 0x65, - 0x72, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x0d, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, - 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, - 0x6b, 0x65, 0x72, 0x49, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x6c, 0x0a, 0x13, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x73, - 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x42, 0x61, 0x6b, - 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, - 0x52, 0x11, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x12, 0x7c, 0x0a, 0x1e, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, - 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x66, 0x66, 0x65, 0x63, + 0x74, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x49, 0x73, 0x73, 0x75, 0x65, 0x64, 0x48, 0x00, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x73, 0x73, 0x75, 0x65, 0x64, 0x12, + 0x65, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x66, 0x66, 0x65, + 0x63, 0x74, 0x73, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0b, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, + 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, - 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x74, - 0x61, 0x6b, 0x65, 0x45, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x48, 0x00, 0x52, 0x1b, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x74, 0x61, - 0x6b, 0x65, 0x45, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x12, 0x4d, 0x0a, 0x12, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, - 0x6b, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x10, - 0x62, 0x61, 0x6b, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x12, 0x87, 0x01, 0x0a, 0x1c, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, - 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, - 0x73, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x1a, - 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x12, 0x68, 0x0a, 0x18, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x6e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x41, 0x64, 0x64, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x16, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x65, 0x64, 0x12, 0x72, 0x0a, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, - 0x72, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x54, 0x6f, 0x50, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x48, 0x00, 0x52, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, - 0x54, 0x6f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x7e, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x73, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x63, 0x6f, + 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x41, 0x64, 0x64, 0x65, + 0x64, 0x48, 0x00, 0x52, 0x0a, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, + 0x3d, 0x0a, 0x0d, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x48, 0x00, + 0x52, 0x0c, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x6c, + 0x0a, 0x13, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x66, - 0x66, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, - 0x64, 0x57, 0x69, 0x74, 0x68, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x48, 0x00, 0x52, - 0x17, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x57, 0x69, 0x74, 0x68, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x61, 0x0a, 0x17, 0x63, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x48, 0x00, 0x52, 0x15, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x4b, 0x65, 0x79, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x6e, 0x0a, 0x13, 0x63, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x66, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x11, 0x62, 0x61, 0x6b, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x7c, 0x0a, 0x1e, + 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x65, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, + 0x42, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x1b, 0x62, + 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x45, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x4d, 0x0a, 0x12, 0x62, 0x61, + 0x6b, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x73, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x10, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x4b, 0x65, + 0x79, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x87, 0x01, 0x0a, 0x1c, 0x65, 0x6e, + 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x43, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x1a, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x72, 0x65, 0x64, 0x12, 0x68, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, + 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x53, + 0x65, 0x6c, 0x66, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x65, 0x64, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, + 0x65, 0x64, 0x54, 0x6f, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x12, 0x72, 0x0a, + 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, + 0x65, 0x64, 0x54, 0x6f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x48, 0x00, 0x52, 0x13, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x54, 0x6f, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x63, 0x12, 0x7e, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, + 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x57, 0x69, 0x74, 0x68, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x17, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x72, 0x65, 0x64, 0x57, 0x69, 0x74, 0x68, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x12, 0x61, 0x0a, 0x17, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, + 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x48, 0x00, 0x52, 0x15, 0x63, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x12, 0x6e, 0x0a, 0x13, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, + 0x52, 0x12, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0e, + 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x12, 0x65, + 0x0a, 0x10, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x66, 0x66, 0x65, 0x63, - 0x74, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x12, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x0f, 0x64, - 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x65, 0x64, 0x12, 0x65, 0x0a, 0x10, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x38, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x62, 0x61, 0x6b, - 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x12, 0x74, 0x0a, 0x15, - 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x75, 0x72, 0x65, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x66, - 0x66, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x14, 0x64, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, - 0x65, 0x64, 0x1a, 0xad, 0x01, 0x0a, 0x04, 0x4e, 0x6f, 0x6e, 0x65, 0x12, 0x4e, 0x0a, 0x10, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0d, 0x72, - 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, - 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x13, 0x0a, - 0x11, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x1a, 0x55, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x49, 0x73, 0x73, 0x75, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x07, 0x65, 0x66, - 0x66, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x07, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x1a, 0xb2, 0x01, 0x0a, 0x0f, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x2d, 0x0a, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x08, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x74, 0x73, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x65, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x65, 0x64, 0x12, 0x74, 0x0a, 0x15, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x18, 0x13, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x14, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x1a, 0xad, 0x01, 0x0a, 0x04, + 0x4e, 0x6f, 0x6e, 0x65, 0x12, 0x4e, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, + 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0d, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6a, 0x65, + 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, + 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x55, 0x0a, 0x14, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x73, 0x73, + 0x75, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x07, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x65, 0x66, 0x66, 0x65, 0x63, + 0x74, 0x73, 0x1a, 0xb2, 0x01, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, + 0x12, 0x2c, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, + 0x65, 0x6d, 0x6f, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x1a, 0x61, 0x0a, 0x11, 0x42, 0x61, 0x6b, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x06, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x48, 0x00, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0xd7, 0x01, 0x0a, 0x1a, 0x45, + 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x12, 0x44, 0x0a, 0x07, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, + 0x3c, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4e, + 0x65, 0x77, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x12, 0x2c, 0x0a, + 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, + 0x48, 0x00, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6d, 0x65, 0x6d, 0x6f, 0x1a, 0x8a, 0x01, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x72, 0x65, 0x64, 0x54, 0x6f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x44, 0x0a, 0x07, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, + 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x1a, 0xbe, 0x01, 0x0a, 0x17, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, + 0x64, 0x57, 0x69, 0x74, 0x68, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x39, 0x0a, + 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x65, 0x77, 0x52, 0x65, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x6d, + 0x65, 0x6d, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x48, 0x00, + 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x65, + 0x6d, 0x6f, 0x1a, 0xf8, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x49, 0x0a, 0x0c, 0x6e, 0x65, 0x77, + 0x5f, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x43, 0x72, 0x65, + 0x64, 0x49, 0x64, 0x73, 0x12, 0x51, 0x0a, 0x10, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x5f, + 0x63, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, + 0x43, 0x72, 0x65, 0x64, 0x49, 0x64, 0x73, 0x12, 0x44, 0x0a, 0x0d, 0x6e, 0x65, 0x77, 0x5f, 0x74, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x65, - 0x6d, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x1a, 0x61, - 0x0a, 0x11, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x06, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x1a, 0xd7, 0x01, 0x0a, 0x1a, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, - 0x12, 0x44, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x65, 0x77, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x61, - 0x64, 0x64, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x88, - 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x1a, 0x8a, 0x01, 0x0a, 0x13, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x54, 0x6f, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x12, 0x44, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xbe, 0x01, 0x0a, 0x17, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x57, 0x69, 0x74, 0x68, 0x53, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, - 0x31, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x4e, 0x65, 0x77, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x88, 0x01, 0x01, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x1a, 0xf8, 0x01, 0x0a, 0x12, 0x43, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x12, 0x49, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, - 0x0a, 0x6e, 0x65, 0x77, 0x43, 0x72, 0x65, 0x64, 0x49, 0x64, 0x73, 0x12, 0x51, 0x0a, 0x10, 0x72, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x0e, - 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x43, 0x72, 0x65, 0x64, 0x49, 0x64, 0x73, 0x12, 0x44, - 0x0a, 0x0d, 0x6e, 0x65, 0x77, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x54, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x1a, 0x44, 0x0a, 0x0f, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x4e, 0x0a, 0x14, 0x44, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, - 0x65, 0x64, 0x12, 0x36, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x65, 0x66, - 0x66, 0x65, 0x63, 0x74, 0x22, 0x49, 0x0a, 0x12, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0xd1, 0x01, 0x0a, 0x11, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3a, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, - 0x5f, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x61, 0x73, - 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x61, 0x74, 0x69, - 0x6f, 0x52, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, - 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x61, 0x74, - 0x69, 0x6f, 0x52, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x44, 0x65, 0x63, 0x72, 0x65, - 0x61, 0x73, 0x65, 0x22, 0xeb, 0x01, 0x0a, 0x1f, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x46, 0x69, 0x6e, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x46, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x72, 0x73, 0x12, 0x6a, 0x0a, 0x22, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x72, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6b, - 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x1f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x52, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, - 0x64, 0x22, 0xec, 0x01, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x56, 0x31, 0x12, 0x4f, 0x0a, 0x12, 0x74, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, - 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3d, 0x0a, 0x0e, - 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, + 0x0c, 0x6e, 0x65, 0x77, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x1a, 0x44, 0x0a, + 0x0f, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, + 0x12, 0x31, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x1a, 0x4e, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x06, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x22, 0x49, 0x0a, + 0x12, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, + 0x6c, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd1, 0x01, 0x0a, 0x11, 0x54, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3a, + 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6d, - 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x12, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x52, 0x10, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x22, 0x3a, 0x0a, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, - 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x47, 0x0a, 0x05, - 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, - 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x69, - 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x27, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2b, - 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x54, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x27, 0x0a, 0x0f, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x61, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x0f, 0x74, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x0f, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x44, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x22, 0xeb, 0x01, 0x0a, + 0x1f, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x12, 0x2d, 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x66, 0x69, 0x6e, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x12, + 0x2d, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x12, 0x6a, + 0x0a, 0x22, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1f, 0x66, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x72, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, + 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0xec, 0x01, 0x0a, 0x15, 0x43, + 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x56, 0x31, 0x12, 0x4f, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3d, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6e, + 0x65, 0x72, 0x67, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x52, 0x10, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6e, + 0x65, 0x72, 0x67, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x3a, 0x0a, 0x0c, 0x45, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x47, 0x0a, 0x05, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1c, + 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x27, + 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2b, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4b, 0x65, 0x79, 0x73, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x0f, 0x48, 0x69, 0x67, 0x68, 0x65, 0x72, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x32, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x40, 0x0a, 0x09, - 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0xae, - 0x01, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, - 0x72, 0x65, 0x12, 0x4c, 0x0a, 0x12, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x10, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x73, - 0x12, 0x4d, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4b, 0x65, 0x79, 0x73, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x0f, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, - 0xc8, 0x08, 0x0a, 0x10, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x56, 0x30, 0x12, 0x32, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, - 0x65, 0x79, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x65, 0x6d, 0x65, 0x72, - 0x67, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x65, 0x6d, 0x65, - 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x3a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x13, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, - 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x27, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, + 0x79, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x87, 0x01, + 0x0a, 0x0f, 0x48, 0x69, 0x67, 0x68, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, 0x79, + 0x73, 0x12, 0x32, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, - 0x12, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, - 0x73, 0x75, 0x73, 0x12, 0x59, 0x0a, 0x19, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x5f, 0x65, 0x75, 0x72, 0x6f, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x16, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x45, 0x75, 0x72, 0x6f, 0x50, 0x65, 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x5e, - 0x0a, 0x1c, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x69, 0x63, 0x72, - 0x6f, 0x5f, 0x43, 0x43, 0x44, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x65, 0x75, 0x72, 0x6f, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x75, 0x72, 0x65, 0x52, 0x18, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4d, - 0x69, 0x63, 0x72, 0x6f, 0x43, 0x43, 0x44, 0x50, 0x65, 0x72, 0x45, 0x75, 0x72, 0x6f, 0x12, 0x60, - 0x0a, 0x1c, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x75, 0x6e, - 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x75, 0x72, 0x65, 0x52, 0x1a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, - 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x5e, 0x0a, 0x1b, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x69, - 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x19, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x73, 0x0a, 0x26, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x64, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, - 0x52, 0x23, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x15, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0a, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, + 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4b, + 0x65, 0x79, 0x73, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x09, 0x74, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0xae, 0x01, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x4c, 0x0a, 0x12, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, + 0x79, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x10, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x50, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x4d, 0x0a, 0x10, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x54, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0xc8, 0x08, 0x0a, 0x10, 0x41, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x30, 0x12, 0x32, 0x0a, + 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b, 0x65, 0x79, + 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x75, 0x72, 0x65, 0x52, 0x13, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x47, - 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x47, 0x0a, 0x0f, 0x70, 0x6f, 0x6f, - 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, - 0x72, 0x65, 0x52, 0x0e, 0x70, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x12, 0x52, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x5f, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, - 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x65, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x12, + 0x3a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, - 0x65, 0x52, 0x13, 0x61, 0x64, 0x64, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x52, - 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x5f, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x65, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x13, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, + 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x12, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x12, 0x59, 0x0a, 0x19, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x65, 0x75, 0x72, 0x6f, 0x5f, 0x70, + 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, + 0x16, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x45, 0x75, 0x72, 0x6f, 0x50, 0x65, + 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x5e, 0x0a, 0x1c, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f, 0x43, 0x43, 0x44, 0x5f, 0x70, + 0x65, 0x72, 0x5f, 0x65, 0x75, 0x72, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x18, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x43, 0x43, 0x44, + 0x50, 0x65, 0x72, 0x45, 0x75, 0x72, 0x6f, 0x12, 0x60, 0x0a, 0x1c, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x1a, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5e, 0x0a, 0x1b, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x19, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x73, 0x0a, 0x26, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x23, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, + 0x65, 0x65, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, + 0x0a, 0x15, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x5f, + 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x13, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x47, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x73, 0x12, 0x47, 0x0a, 0x0f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0e, 0x70, 0x6f, 0x6f, + 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x52, 0x0a, 0x15, 0x61, + 0x64, 0x64, 0x5f, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x76, + 0x6f, 0x6b, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x13, 0x61, 0x64, 0x64, 0x41, + 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x12, + 0x52, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x13, + 0x61, 0x64, 0x64, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x22, 0xd9, 0x01, 0x0a, 0x10, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x31, 0x12, 0x2f, 0x0a, 0x02, 0x76, 0x30, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x56, 0x30, 0x52, 0x02, 0x76, 0x30, 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x13, 0x61, 0x64, 0x64, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0xd9, 0x01, 0x0a, 0x10, 0x41, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x31, 0x12, - 0x2f, 0x0a, 0x02, 0x76, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x30, 0x52, 0x02, 0x76, 0x30, - 0x12, 0x4d, 0x0a, 0x12, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, - 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x11, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x12, - 0x45, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x55, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8f, 0x02, - 0x0a, 0x06, 0x41, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x2e, 0x41, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x08, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, - 0x41, 0x72, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x1a, 0x22, 0x0a, 0x0a, 0x41, 0x72, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x23, 0x0a, 0x0b, 0x41, 0x72, - 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x22, 0x0a, 0x0a, 0x49, 0x70, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, + 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x11, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x45, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, + 0x52, 0x0d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x22, + 0x55, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x75, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8f, 0x02, 0x0a, 0x06, 0x41, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x3c, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, + 0x3c, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, + 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x41, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x72, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x63, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x1a, + 0x22, 0x0a, 0x0a, 0x41, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0xd8, 0x02, 0x0a, 0x06, 0x49, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x35, - 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x49, 0x70, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x08, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0a, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x49, - 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x76, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x4a, 0x0a, 0x0e, 0x63, 0x64, 0x69, 0x5f, 0x76, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x70, - 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x49, 0x70, 0x43, 0x64, 0x69, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, - 0x4b, 0x65, 0x79, 0x52, 0x0c, 0x63, 0x64, 0x69, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, - 0x79, 0x1a, 0x23, 0x0a, 0x0b, 0x49, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x26, 0x0a, 0x0e, 0x49, 0x70, 0x43, 0x64, 0x69, 0x56, - 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x27, - 0x0a, 0x0f, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x1c, 0x49, 0x6e, 0x63, 0x6c, - 0x75, 0x73, 0x69, 0x76, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x30, 0x0a, 0x04, 0x6d, 0x61, 0x78, - 0x5f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x22, 0xf7, 0x01, 0x0a, 0x10, - 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x12, 0x4f, 0x0a, 0x0c, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x43, 0x0a, 0x06, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, - 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x4d, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x63, 0x6c, - 0x75, 0x73, 0x69, 0x76, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x43, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, - 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3c, 0x0a, 0x0e, 0x4c, 0x65, - 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x2a, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x61, 0x74, 0x69, - 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x1d, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x40, 0x0a, 0x12, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2a, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x42, 0x0a, 0x08, 0x4d, 0x69, 0x6e, - 0x74, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x73, 0x73, - 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x73, 0x73, - 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x22, 0xb7, 0x01, - 0x0a, 0x16, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x12, 0x4e, 0x0a, 0x13, 0x70, 0x6f, 0x6f, 0x6c, - 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x52, 0x11, 0x70, 0x6f, 0x6f, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, - 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x4d, 0x0a, 0x12, 0x64, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x73, 0x52, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x43, - 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x22, 0xde, 0x04, 0x0a, 0x12, 0x50, 0x6f, 0x6f, 0x6c, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x12, 0x65, - 0x0a, 0x1f, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1d, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x46, - 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x19, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, - 0x5f, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, - 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x17, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, - 0x42, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x63, 0x0a, 0x1e, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, - 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1c, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, - 0x6e, 0x64, 0x73, 0x12, 0x4b, 0x0a, 0x16, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x65, - 0x71, 0x75, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x14, 0x6d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x45, 0x71, 0x75, 0x69, 0x74, 0x79, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, - 0x12, 0x40, 0x0a, 0x0d, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x75, 0x6e, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x42, - 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x42, 0x6f, 0x75, - 0x6e, 0x64, 0x12, 0x44, 0x0a, 0x0e, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x62, - 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x72, - 0x61, 0x67, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x0d, 0x6c, 0x65, 0x76, 0x65, 0x72, - 0x61, 0x67, 0x65, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0xaa, 0x01, 0x0a, 0x12, 0x54, 0x69, 0x6d, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x12, - 0x53, 0x0a, 0x14, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x52, 0x12, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x12, 0x3f, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x72, - 0x5f, 0x70, 0x61, 0x79, 0x64, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x69, - 0x6e, 0x74, 0x52, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x50, - 0x61, 0x79, 0x64, 0x61, 0x79, 0x22, 0xaa, 0x01, 0x0a, 0x14, 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x70, 0x76, 0x31, 0x12, 0x42, - 0x0a, 0x0d, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x12, 0x4e, 0x0a, 0x13, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, - 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x22, 0xe3, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x5f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x47, 0x0a, - 0x11, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, - 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x48, - 0x61, 0x73, 0x68, 0x52, 0x11, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x12, 0x40, 0x0a, 0x1c, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x75, 0x78, 0x69, 0x6c, 0x69, 0x61, 0x72, - 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x1a, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x75, 0x78, 0x69, 0x6c, - 0x69, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x22, 0xe7, 0x01, 0x0a, 0x14, 0x4d, 0x69, 0x6e, - 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x70, 0x76, - 0x30, 0x12, 0x3b, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x6c, - 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x52, 0x61, 0x74, - 0x65, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x42, - 0x0a, 0x0d, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x12, 0x4e, 0x0a, 0x13, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x6c, 0x75, 0x65, 0x1a, 0x23, 0x0a, 0x0b, 0x41, 0x72, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x49, 0x70, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd8, 0x02, 0x0a, + 0x06, 0x49, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x35, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x70, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x3c, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0a, + 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x49, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x49, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, + 0x4b, 0x65, 0x79, 0x52, 0x09, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x4a, + 0x0a, 0x0e, 0x63, 0x64, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x49, 0x70, + 0x43, 0x64, 0x69, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x0c, 0x63, 0x64, + 0x69, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x1a, 0x23, 0x0a, 0x0b, 0x49, 0x70, + 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, + 0x26, 0x0a, 0x0e, 0x49, 0x70, 0x43, 0x64, 0x69, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x27, 0x0a, 0x0f, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x81, 0x01, 0x0a, 0x1c, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x2f, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x6d, + 0x69, 0x6e, 0x12, 0x30, 0x0a, 0x04, 0x6d, 0x61, 0x78, 0x5f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x03, 0x6d, 0x61, 0x78, 0x22, 0xf7, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x0c, 0x66, 0x69, 0x6e, + 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x66, 0x69, + 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x06, 0x62, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x63, 0x6c, 0x75, + 0x73, 0x69, 0x76, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, + 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x12, + 0x4d, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x43, + 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x33, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x3c, 0x0a, 0x0e, 0x4c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x46, + 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x1d, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x1d, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x40, 0x0a, 0x12, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x42, 0x0a, 0x08, 0x4d, 0x69, 0x6e, 0x74, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x73, 0x73, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x73, 0x73, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x78, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x22, 0xb7, 0x01, 0x0a, 0x16, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, + 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, + 0x12, 0x4e, 0x0a, 0x13, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x63, + 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x52, 0x11, 0x70, + 0x6f, 0x6f, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, + 0x12, 0x4d, 0x0a, 0x12, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6f, + 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x52, 0x11, 0x64, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x22, + 0xde, 0x04, 0x0a, 0x12, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x12, 0x65, 0x0a, 0x1f, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, + 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, - 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x22, 0x91, 0x01, 0x0a, 0x1a, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x33, 0x0a, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1d, + 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, + 0x19, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x17, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x42, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, + 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x63, 0x0a, 0x1e, 0x70, 0x61, 0x73, 0x73, + 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, + 0x1c, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, + 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6f, 0x75, 0x6e, + 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x4b, 0x0a, 0x16, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x65, 0x71, 0x75, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x61, + 0x70, 0x69, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x67, 0x61, 0x73, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x02, 0x0a, 0x0a, 0x47, 0x61, 0x73, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x12, 0x66, 0x69, - 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x48, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x6e, 0x74, 0x52, 0x14, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x45, 0x71, 0x75, 0x69, 0x74, + 0x79, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x0d, 0x63, 0x61, 0x70, 0x69, + 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x0c, 0x63, 0x61, + 0x70, 0x69, 0x74, 0x61, 0x6c, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x44, 0x0a, 0x0e, 0x6c, 0x65, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x76, 0x32, 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, + 0x72, 0x52, 0x0d, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x42, 0x6f, 0x75, 0x6e, 0x64, + 0x22, 0xaa, 0x01, 0x0a, 0x12, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x12, 0x53, 0x0a, 0x14, 0x72, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x72, 0x69, + 0x6f, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x12, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x3f, 0x0a, 0x0f, + 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x79, 0x64, 0x61, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x52, 0x61, 0x74, 0x65, 0x52, 0x0d, + 0x6d, 0x69, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, 0x22, 0xaa, 0x01, + 0x0a, 0x14, 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x70, 0x76, 0x31, 0x12, 0x42, 0x0a, 0x0d, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x62, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x4e, 0x0a, 0x13, 0x66, 0x69, + 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0xe3, 0x01, 0x0a, 0x0e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, + 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x47, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x48, 0x61, 0x73, 0x68, 0x52, 0x11, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x12, 0x40, + 0x0a, 0x1c, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x61, 0x75, 0x78, 0x69, 0x6c, 0x69, 0x61, 0x72, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x1a, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x41, 0x75, 0x78, 0x69, 0x6c, 0x69, 0x61, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, + 0x22, 0xe7, 0x01, 0x0a, 0x14, 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x70, 0x76, 0x30, 0x12, 0x3b, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, + 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x52, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x74, 0x50, + 0x65, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x62, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x4e, 0x0a, 0x13, 0x66, 0x69, + 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x91, 0x01, 0x0a, 0x1a, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x05, 0x62, 0x61, 0x6b, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, - 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x22, 0xd1, 0x01, 0x0a, 0x0e, 0x47, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x73, 0x43, 0x70, 0x76, 0x32, 0x12, 0x33, 0x0a, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x10, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, + 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x3e, + 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0a, 0x67, 0x61, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, + 0x02, 0x0a, 0x0a, 0x47, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x33, 0x0a, + 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x60, 0x0a, 0x13, 0x42, 0x61, 0x6b, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, - 0x49, 0x0a, 0x15, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x74, - 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x62, 0x61, 0x6b, + 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x12, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x13, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, - 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0xe6, 0x02, 0x0a, 0x0a, 0x52, - 0x6f, 0x6f, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x10, 0x72, 0x6f, 0x6f, - 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4b, - 0x65, 0x79, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x4f, 0x0a, 0x13, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, - 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, - 0x79, 0x73, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x4b, 0x65, 0x79, 0x73, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x55, 0x0a, 0x16, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, - 0x32, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x30, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x30, 0x48, 0x00, 0x52, 0x12, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x32, 0x4b, 0x65, 0x79, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x30, 0x12, 0x55, 0x0a, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x66, + 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, + 0x12, 0x48, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0c, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0xd1, 0x01, 0x0a, + 0x0e, 0x47, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x43, 0x70, 0x76, 0x32, 0x12, + 0x33, 0x0a, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x62, + 0x61, 0x6b, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, + 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x22, 0x60, 0x0a, 0x13, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x54, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x49, 0x0a, 0x15, 0x62, 0x61, 0x6b, 0x65, 0x72, + 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x13, 0x62, + 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x22, 0xe6, 0x02, 0x0a, 0x0a, 0x52, 0x6f, 0x6f, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x12, 0x4a, 0x0a, 0x10, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x69, 0x67, 0x68, + 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x72, + 0x6f, 0x6f, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x4f, 0x0a, + 0x13, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x65, + 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x31, 0x4b, 0x65, 0x79, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x55, + 0x0a, 0x16, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x30, 0x48, + 0x00, 0x52, 0x12, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x4b, 0x65, 0x79, 0x73, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x56, 0x30, 0x12, 0x55, 0x0a, 0x16, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, + 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x31, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x31, 0x48, 0x00, 0x52, 0x12, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, + 0x4b, 0x65, 0x79, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x31, 0x42, 0x0d, 0x0a, 0x0b, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x9c, 0x02, 0x0a, 0x0c, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x4f, 0x0a, 0x13, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x65, 0x72, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x31, 0x4b, 0x65, 0x79, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x55, 0x0a, 0x16, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x31, 0x48, 0x00, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x30, 0x48, 0x00, 0x52, 0x12, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x4b, 0x65, 0x79, 0x73, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x56, 0x31, 0x42, 0x0d, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x22, 0x9c, 0x02, 0x0a, 0x0c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x12, 0x4f, 0x0a, 0x13, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x5f, - 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, 0x79, - 0x73, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x4b, 0x65, 0x79, 0x73, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x55, 0x0a, 0x16, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, - 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x30, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x30, 0x48, 0x00, 0x52, 0x12, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, - 0x4b, 0x65, 0x79, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x30, 0x12, 0x55, 0x0a, 0x16, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x5f, 0x76, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x31, 0x48, 0x00, 0x52, - 0x12, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x4b, 0x65, 0x79, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x56, 0x31, 0x42, 0x0d, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x22, 0xa4, 0x10, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x48, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x61, - 0x0a, 0x1a, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x69, - 0x63, 0x75, 0x6c, 0x74, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, - 0x63, 0x75, 0x6c, 0x74, 0x79, 0x48, 0x00, 0x52, 0x18, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x12, 0x52, 0x0a, 0x16, 0x65, 0x75, 0x72, 0x6f, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x65, 0x6e, - 0x65, 0x72, 0x67, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x48, 0x00, - 0x52, 0x13, 0x65, 0x75, 0x72, 0x6f, 0x50, 0x65, 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x57, 0x0a, 0x19, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f, 0x63, - 0x63, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x65, 0x75, 0x72, 0x6f, 0x5f, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x52, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x15, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x43, 0x63, - 0x64, 0x50, 0x65, 0x72, 0x45, 0x75, 0x72, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x5b, - 0x0a, 0x19, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x48, 0x00, 0x52, 0x17, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x5f, 0x0a, 0x18, 0x6d, - 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x69, - 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x70, - 0x76, 0x30, 0x48, 0x00, 0x52, 0x16, 0x6d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x7a, 0x0a, 0x23, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, - 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x49, 0x0a, 0x12, 0x67, 0x61, 0x73, 0x5f, - 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x48, - 0x00, 0x52, 0x10, 0x67, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x12, 0x65, 0x0a, 0x1c, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, - 0x6b, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, - 0x74, 0x61, 0x6b, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x48, 0x00, 0x52, - 0x19, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x72, 0x6f, - 0x6f, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x52, 0x6f, 0x6f, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x6f, - 0x6f, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x0e, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x5f, 0x31, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x74, 0x65, 0x56, 0x30, 0x12, 0x55, 0x0a, 0x16, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x5f, + 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x31, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x56, 0x31, 0x48, 0x00, 0x52, 0x12, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x4b, + 0x65, 0x79, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x31, 0x42, 0x0d, 0x0a, 0x0b, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xa4, 0x10, 0x0a, 0x0d, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x48, 0x0a, 0x0f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x61, 0x0a, 0x1a, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x5f, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x48, 0x00, 0x52, + 0x18, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, + 0x6c, 0x74, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x16, 0x65, 0x75, 0x72, + 0x6f, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x13, 0x65, 0x75, 0x72, 0x6f, 0x50, 0x65, + 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x57, 0x0a, + 0x19, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f, 0x63, 0x63, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x65, + 0x75, 0x72, 0x6f, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, - 0x0c, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x58, 0x0a, - 0x1c, 0x61, 0x64, 0x64, 0x5f, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x5f, 0x72, - 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x19, 0x61, 0x64, - 0x64, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, - 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x58, 0x0a, 0x1c, 0x61, 0x64, 0x64, 0x5f, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x70, - 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x19, 0x61, 0x64, 0x64, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x12, 0x6f, 0x0a, 0x20, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x70, 0x76, 0x5f, 0x31, 0x5f, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6f, 0x6c, - 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, - 0x76, 0x31, 0x48, 0x00, 0x52, 0x1c, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x12, 0x63, 0x0a, 0x1c, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x70, 0x76, 0x5f, 0x31, 0x5f, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x48, 0x00, 0x52, 0x18, 0x70, - 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, - 0x31, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x63, 0x0a, 0x1c, 0x74, 0x69, 0x6d, 0x65, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x70, 0x76, 0x5f, 0x31, - 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, - 0x48, 0x00, 0x52, 0x18, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x69, 0x0a, 0x1e, - 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x63, 0x70, 0x76, 0x5f, 0x31, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x70, 0x76, 0x31, 0x48, 0x00, 0x52, 0x1a, 0x6d, 0x69, 0x6e, + 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, + 0x15, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x43, 0x63, 0x64, 0x50, 0x65, 0x72, 0x45, 0x75, 0x72, 0x6f, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x5b, 0x0a, 0x19, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x17, 0x66, 0x6f, 0x75, 0x6e, + 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x12, 0x5f, 0x0a, 0x18, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x70, 0x76, 0x30, 0x48, 0x00, 0x52, 0x16, 0x6d, 0x69, + 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x12, 0x7a, 0x0a, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, + 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x20, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x12, 0x49, 0x0a, 0x12, 0x67, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x61, 0x73, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x48, 0x00, 0x52, 0x10, 0x67, 0x61, 0x73, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x65, 0x0a, 0x1c, 0x62, + 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x54, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x19, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x6f, 0x6f, 0x74, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x6f, 0x6f, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x12, 0x43, 0x0a, 0x0e, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x5f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x58, 0x0a, 0x1c, 0x61, 0x64, 0x64, 0x5f, 0x61, 0x6e, 0x6f, + 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x48, 0x00, 0x52, 0x19, 0x61, 0x64, 0x64, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, + 0x74, 0x79, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, + 0x58, 0x0a, 0x1c, 0x61, 0x64, 0x64, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x19, + 0x61, 0x64, 0x64, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x6f, 0x0a, 0x20, 0x63, 0x6f, 0x6f, + 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x5f, 0x63, 0x70, 0x76, 0x5f, 0x31, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x48, 0x00, 0x52, 0x1c, 0x63, 0x6f, + 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x43, 0x70, 0x76, 0x31, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x63, 0x0a, 0x1c, 0x70, 0x6f, + 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x70, + 0x76, 0x5f, 0x31, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, + 0x70, 0x76, 0x31, 0x48, 0x00, 0x52, 0x18, 0x70, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, + 0x63, 0x0a, 0x1c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x5f, 0x63, 0x70, 0x76, 0x5f, 0x31, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x48, 0x00, 0x52, 0x18, 0x74, 0x69, 0x6d, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x12, 0x69, 0x0a, 0x1e, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x70, 0x76, 0x5f, 0x31, 0x5f, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x70, 0x76, - 0x31, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x57, 0x0a, 0x18, 0x67, 0x61, 0x73, 0x5f, 0x72, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x63, 0x70, 0x76, 0x5f, 0x32, 0x5f, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x61, 0x73, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x73, 0x43, 0x70, 0x76, 0x32, 0x48, 0x00, 0x52, 0x14, 0x67, 0x61, 0x73, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x43, 0x70, 0x76, 0x32, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x12, 0x5e, 0x0a, 0x19, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x17, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x12, 0x4c, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x52, - 0x0a, 0x19, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x48, 0x00, 0x52, 0x16, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x28, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x25, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x09, - 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xc1, 0x01, 0x0a, 0x19, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x29, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x04, 0x63, 0x6f, - 0x73, 0x74, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x07, 0x65, 0x66, 0x66, - 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x66, 0x66, - 0x65, 0x63, 0x74, 0x73, 0x52, 0x07, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x22, 0xd9, 0x01, - 0x0a, 0x16, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x46, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x0e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x37, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x31, 0x48, 0x00, 0x52, 0x1a, 0x6d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x70, 0x76, 0x31, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, + 0x57, 0x0a, 0x18, 0x67, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x63, + 0x70, 0x76, 0x5f, 0x32, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3e, 0x0a, 0x06, 0x72, 0x65, 0x67, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x32, 0x2e, 0x47, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x43, 0x70, 0x76, 0x32, + 0x48, 0x00, 0x52, 0x14, 0x67, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x43, 0x70, + 0x76, 0x32, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x5e, 0x0a, 0x19, 0x74, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, + 0x17, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x4c, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x48, 0x00, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x19, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, + 0x48, 0x00, 0x52, 0x16, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x28, 0x66, + 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, + 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x74, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, + 0x25, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x22, 0xc1, 0x01, 0x0a, 0x19, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, + 0x29, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x12, 0x42, 0x0a, 0x07, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x52, 0x07, 0x65, 0x66, + 0x66, 0x65, 0x63, 0x74, 0x73, 0x22, 0xd9, 0x01, 0x0a, 0x16, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x12, 0x46, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x52, 0x05, 0x72, 0x65, 0x67, 0x49, 0x64, 0x22, 0x27, 0x0a, 0x0f, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x12, 0x45, 0x0a, 0x0e, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x65, 0x66, - 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x70, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x22, 0xe4, 0x03, 0x0a, 0x10, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, - 0x6d, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x46, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, - 0x6d, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x36, 0x0a, 0x0b, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x52, 0x0a, 0x65, 0x6e, - 0x65, 0x72, 0x67, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x5b, 0x0a, 0x13, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x74, 0x69, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x12, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x10, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, - 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x06, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x28, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x24, 0x0a, 0x0c, 0x47, 0x65, - 0x6e, 0x65, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0xe4, 0x11, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x37, 0x0a, 0x0a, 0x62, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, - 0x52, 0x09, 0x62, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x3d, 0x0a, 0x0d, 0x67, - 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x0c, 0x67, 0x65, - 0x6e, 0x65, 0x73, 0x69, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x3b, 0x0a, 0x0c, 0x67, 0x65, - 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, - 0x73, 0x69, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x73, 0x6c, 0x6f, 0x74, 0x5f, - 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x6c, 0x6f, 0x74, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x64, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, - 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x12, 0x6c, - 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x12, 0x4e, 0x0a, 0x11, 0x62, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x62, 0x73, - 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x52, 0x0f, 0x62, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x12, 0x61, 0x0a, 0x1b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x18, 0x6c, 0x61, 0x73, 0x74, - 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x13, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x18, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x15, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x61, 0x73, - 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x39, 0x0a, 0x19, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x65, 0x6d, 0x61, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x16, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x45, 0x6d, 0x61, 0x12, 0x3b, 0x0a, 0x1a, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6c, 0x61, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x65, 0x6d, 0x73, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x17, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4c, 0x61, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x45, 0x6d, 0x73, 0x64, 0x12, 0x3c, 0x0a, 0x18, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, - 0x5f, 0x65, 0x6d, 0x61, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x15, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, - 0x45, 0x6d, 0x61, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x19, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, - 0x6d, 0x73, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x16, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x45, - 0x6d, 0x73, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x15, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, - 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x56, 0x65, 0x72, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x54, 0x0a, 0x17, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x65, 0x64, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x03, 0x52, 0x14, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x61, - 0x73, 0x74, 0x41, 0x72, 0x72, 0x69, 0x76, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x37, 0x0a, 0x18, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x65, - 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x65, 0x6d, 0x61, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x01, 0x52, 0x15, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x72, 0x69, 0x76, 0x65, 0x4c, - 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x45, 0x6d, 0x61, 0x12, 0x39, 0x0a, 0x19, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x5f, 0x65, 0x6d, 0x73, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x01, 0x52, 0x16, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x72, 0x69, 0x76, 0x65, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, - 0x45, 0x6d, 0x73, 0x64, 0x12, 0x3a, 0x0a, 0x17, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x72, - 0x72, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6d, 0x61, 0x18, - 0x13, 0x20, 0x01, 0x28, 0x01, 0x48, 0x04, 0x52, 0x14, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x72, - 0x72, 0x69, 0x76, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x45, 0x6d, 0x61, 0x88, 0x01, 0x01, - 0x12, 0x3c, 0x0a, 0x18, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x65, - 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6d, 0x73, 0x64, 0x18, 0x14, 0x20, 0x01, - 0x28, 0x01, 0x48, 0x05, 0x52, 0x15, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x72, 0x69, 0x76, - 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x45, 0x6d, 0x73, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, - 0x0a, 0x1a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, - 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6d, 0x61, 0x18, 0x15, 0x20, 0x01, - 0x28, 0x01, 0x52, 0x17, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6d, 0x61, 0x12, 0x3d, 0x0a, 0x1b, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6d, 0x73, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x01, - 0x52, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x65, - 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6d, 0x73, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x66, 0x69, - 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x13, 0x6c, 0x61, 0x73, - 0x74, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x48, 0x06, 0x52, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x66, 0x69, 0x6e, 0x61, - 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, - 0x65, 0x6d, 0x61, 0x18, 0x19, 0x20, 0x01, 0x28, 0x01, 0x48, 0x07, 0x52, 0x15, 0x66, 0x69, 0x6e, - 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x45, - 0x6d, 0x61, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6d, 0x73, - 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x01, 0x48, 0x08, 0x52, 0x16, 0x66, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x45, 0x6d, 0x73, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x40, 0x0a, 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x53, 0x0a, 0x19, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x72, 0x61, - 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x1d, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x16, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x72, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, - 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x51, 0x0a, 0x18, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x5f, 0x65, 0x72, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x3e, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x05, 0x72, 0x65, 0x67, 0x49, + 0x64, 0x22, 0x27, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x0d, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x45, 0x0a, 0x0e, + 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xe4, 0x03, 0x0a, 0x10, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x12, 0x46, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x30, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x36, 0x0a, 0x0b, 0x65, 0x6e, 0x65, 0x72, + 0x67, 0x79, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, + 0x65, 0x72, 0x67, 0x79, 0x52, 0x0a, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x43, 0x6f, 0x73, 0x74, + 0x12, 0x32, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x52, 0x04, + 0x68, 0x61, 0x73, 0x68, 0x12, 0x5b, 0x0a, 0x13, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x12, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x52, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x28, 0x0a, + 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x22, 0x24, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xf8, 0x14, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, + 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x37, 0x0a, 0x0a, 0x62, 0x65, + 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x09, 0x62, 0x65, 0x73, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x12, 0x3d, 0x0a, 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x48, 0x61, 0x73, 0x68, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x12, 0x3b, 0x0a, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x15, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x72, 0x61, 0x47, 0x65, - 0x6e, 0x65, 0x73, 0x69, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, - 0x65, 0x6d, 0x61, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6d, 0x73, - 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6c, 0x61, 0x73, 0x74, - 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x1a, 0x0a, - 0x18, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x70, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6d, 0x61, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, - 0x64, 0x5f, 0x65, 0x6d, 0x73, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, - 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x1a, - 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6d, 0x61, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x66, - 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, - 0x6f, 0x64, 0x5f, 0x65, 0x6d, 0x73, 0x64, 0x22, 0x7c, 0x0a, 0x10, 0x41, 0x72, 0x72, 0x69, 0x76, - 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x04, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x61, 0x73, 0x68, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x06, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6d, 0x70, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x41, 0x0a, 0x0d, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, + 0x00, 0x52, 0x0c, 0x73, 0x6c, 0x6f, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, + 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4e, + 0x0a, 0x11, 0x62, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, - 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x06, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xae, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, - 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x73, - 0x69, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x35, 0x0a, 0x16, 0x62, 0x75, 0x6c, 0x6c, - 0x65, 0x74, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, - 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, - 0x35, 0x0a, 0x17, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x14, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x22, 0xf5, 0x07, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x04, 0x68, 0x61, - 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x3b, - 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x0b, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x14, 0x6c, - 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x61, 0x73, 0x68, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x40, 0x0a, 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x73, - 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x47, - 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0c, 0x67, 0x65, 0x6e, - 0x65, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x44, 0x0a, 0x10, 0x65, 0x72, 0x61, - 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, - 0x0e, 0x65, 0x72, 0x61, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, - 0x3b, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x0f, 0x62, + 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x61, + 0x0a, 0x1b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x18, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x12, 0x32, 0x0a, 0x15, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x13, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x18, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x48, 0x01, 0x52, 0x15, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, + 0x19, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6c, + 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x65, 0x6d, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x16, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4c, 0x61, + 0x74, 0x65, 0x6e, 0x63, 0x79, 0x45, 0x6d, 0x61, 0x12, 0x3b, 0x0a, 0x1a, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x5f, 0x65, 0x6d, 0x73, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x17, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x45, 0x6d, 0x73, 0x64, 0x12, 0x3c, 0x0a, 0x18, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6d, + 0x61, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x15, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x45, 0x6d, 0x61, + 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x19, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6d, 0x73, 0x64, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, 0x48, 0x03, 0x52, 0x16, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x45, 0x6d, 0x73, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x15, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x5f, 0x76, 0x65, + 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x13, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x54, 0x0a, 0x17, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x48, 0x04, 0x52, 0x14, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x61, 0x73, 0x74, 0x41, + 0x72, 0x72, 0x69, 0x76, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, + 0x18, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x6c, 0x61, + 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x65, 0x6d, 0x61, 0x18, 0x11, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x15, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x72, 0x69, 0x76, 0x65, 0x4c, 0x61, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x45, 0x6d, 0x61, 0x12, 0x39, 0x0a, 0x19, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x61, 0x72, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x65, + 0x6d, 0x73, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x01, 0x52, 0x16, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x41, 0x72, 0x72, 0x69, 0x76, 0x65, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x45, 0x6d, 0x73, + 0x64, 0x12, 0x3a, 0x0a, 0x17, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, + 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6d, 0x61, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x01, 0x48, 0x05, 0x52, 0x14, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x72, 0x69, 0x76, + 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x45, 0x6d, 0x61, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, + 0x18, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x65, + 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6d, 0x73, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x01, 0x48, + 0x06, 0x52, 0x15, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x72, 0x72, 0x69, 0x76, 0x65, 0x50, 0x65, + 0x72, 0x69, 0x6f, 0x64, 0x45, 0x6d, 0x73, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x1a, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6d, 0x61, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x17, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x65, 0x72, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6d, 0x61, 0x12, 0x3d, 0x0a, 0x1b, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x65, 0x6d, 0x73, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x01, 0x52, 0x18, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x45, 0x6d, 0x73, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x66, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x11, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, + 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x07, 0x52, + 0x11, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6d, 0x61, + 0x18, 0x19, 0x20, 0x01, 0x28, 0x01, 0x48, 0x08, 0x52, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x45, 0x6d, 0x61, 0x88, + 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6d, 0x73, 0x64, 0x18, 0x1a, + 0x20, 0x01, 0x28, 0x01, 0x48, 0x09, 0x52, 0x16, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x45, 0x6d, 0x73, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x49, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0d, + 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x1c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x53, + 0x0a, 0x19, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x72, 0x61, 0x5f, 0x67, 0x65, + 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x1d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x16, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x45, 0x72, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x12, 0x51, 0x0a, 0x18, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, + 0x72, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0b, - 0x61, 0x72, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x15, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x72, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x73, + 0x69, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x56, 0x0a, 0x18, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x0a, 0x52, 0x16, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3e, + 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, + 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x0b, 0x52, 0x0c, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3e, + 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, + 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x48, 0x0c, 0x52, 0x0c, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x4b, + 0x0a, 0x12, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x48, 0x0d, 0x52, 0x10, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x1b, 0x0a, + 0x19, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x65, 0x72, + 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6d, 0x61, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, + 0x5f, 0x65, 0x6d, 0x73, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x72, 0x72, 0x69, + 0x76, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6d, 0x61, 0x42, 0x1b, 0x0a, + 0x19, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x70, + 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6d, 0x73, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6d, 0x61, 0x42, 0x1b, + 0x0a, 0x19, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6d, 0x73, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, + 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x22, 0x7c, 0x0a, 0x10, 0x41, 0x72, 0x72, 0x69, 0x76, 0x65, 0x64, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, + 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x22, 0xae, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, + 0x68, 0x69, 0x63, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, + 0x0e, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x12, 0x35, 0x0a, 0x16, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x70, 0x72, + 0x6f, 0x6f, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x70, 0x72, 0x6f, 0x6f, + 0x66, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x6f, + 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x6f, 0x6e, + 0x43, 0x68, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4b, + 0x65, 0x79, 0x22, 0x80, 0x09, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x2c, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x3a, + 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, + 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x3b, 0x0a, 0x0c, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, + 0x12, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x12, 0x40, 0x0a, 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, + 0x69, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x44, 0x0a, 0x10, 0x65, 0x72, 0x61, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x0e, 0x65, 0x72, 0x61, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x3b, 0x0a, 0x0c, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0b, 0x61, 0x72, 0x72, 0x69, + 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x61, 0x72, 0x72, 0x69, 0x76, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x48, 0x00, 0x52, + 0x0a, 0x73, 0x6c, 0x6f, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x35, + 0x0a, 0x09, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x61, 0x72, 0x72, - 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x74, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x6c, 0x6f, - 0x74, 0x52, 0x0a, 0x73, 0x6c, 0x6f, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x35, 0x0a, - 0x09, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x73, 0x6c, 0x6f, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x48, 0x01, 0x52, 0x05, + 0x62, 0x61, 0x6b, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x6e, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x6e, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x52, 0x16, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, + 0x43, 0x6f, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x49, 0x0a, 0x10, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x02, 0x52, 0x05, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x48, 0x03, 0x52, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x6c, 0x6f, 0x74, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x61, 0x6b, 0x65, + 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x22, 0x7d, 0x0a, 0x0f, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2c, 0x0a, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x05, 0x62, + 0x61, 0x6b, 0x65, 0x72, 0x22, 0x87, 0x03, 0x0a, 0x11, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x72, 0x65, + 0x64, 0x75, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x50, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x64, + 0x75, 0x63, 0x65, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x12, 0x41, 0x0a, + 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, + 0x6f, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x1a, 0x96, 0x01, 0x0a, 0x06, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x12, 0x4b, 0x0a, 0x16, 0x72, + 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x71, 0x75, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x61, + 0x70, 0x69, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x14, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, 0x45, 0x71, 0x75, 0x69, 0x74, + 0x79, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x0e, 0x65, 0x66, 0x66, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x73, 0x6c, 0x6f, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x48, 0x00, 0x52, 0x05, 0x62, - 0x61, 0x6b, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x69, 0x6e, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x52, 0x16, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x43, - 0x6f, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x37, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x09, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x49, 0x0a, 0x10, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x22, 0x7d, - 0x0a, 0x0f, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, - 0x2c, 0x0a, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, - 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x22, 0x87, 0x03, - 0x0a, 0x11, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x48, 0x00, 0x52, 0x06, - 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, - 0x00, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x1a, 0x96, 0x01, 0x0a, 0x06, 0x52, 0x65, - 0x64, 0x75, 0x63, 0x65, 0x12, 0x4b, 0x0a, 0x16, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, 0x5f, - 0x65, 0x71, 0x75, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x14, 0x72, 0x65, 0x64, - 0x75, 0x63, 0x65, 0x64, 0x45, 0x71, 0x75, 0x69, 0x74, 0x79, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, - 0x6c, 0x12, 0x3f, 0x0a, 0x0e, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x1a, 0x49, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x3f, 0x0a, 0x0e, - 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, - 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xa8, 0x03, 0x0a, 0x15, 0x50, 0x6f, 0x6f, 0x6c, - 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x5f, 0x62, 0x61, 0x6b, 0x65, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x42, - 0x61, 0x6b, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x10, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x76, - 0x65, 0x12, 0x4d, 0x0a, 0x17, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x66, 0x65, 0x65, 0x73, 0x5f, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x73, 0x45, 0x61, 0x72, 0x6e, 0x65, 0x64, - 0x12, 0x3e, 0x0a, 0x0f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x74, - 0x61, 0x6b, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x65, 0x66, 0x66, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x49, 0x0a, 0x06, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x12, 0x3f, 0x0a, 0x0e, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xf3, + 0x03, 0x0a, 0x15, 0x50, 0x6f, 0x6f, 0x6c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x79, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x73, 0x5f, 0x62, 0x61, 0x6b, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x42, 0x61, 0x6b, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x66, + 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x76, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x4d, 0x0a, 0x17, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x73, 0x5f, 0x65, 0x61, 0x72, + 0x6e, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x52, 0x0e, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, - 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x77, 0x65, - 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x6c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, - 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x14, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x65, - 0x71, 0x75, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x12, 0x62, 0x61, 0x6b, 0x65, - 0x72, 0x45, 0x71, 0x75, 0x69, 0x74, 0x79, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x12, 0x42, + 0x52, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, + 0x73, 0x45, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0f, 0x65, 0x66, 0x66, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0e, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x6f, 0x74, 0x74, 0x65, + 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, + 0x6c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x14, + 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x65, 0x71, 0x75, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x61, 0x70, + 0x69, 0x74, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x12, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x71, 0x75, 0x69, 0x74, 0x79, 0x43, 0x61, + 0x70, 0x69, 0x74, 0x61, 0x6c, 0x12, 0x42, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x64, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x12, 0x49, 0x0a, 0x10, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, + 0x74, 0x65, 0x73, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x61, 0x74, 0x65, 0x73, 0x22, 0xb5, 0x05, 0x0a, 0x10, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x62, 0x61, 0x6b, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, + 0x52, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x3c, 0x0a, 0x0e, 0x65, 0x71, 0x75, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x61, 0x70, 0x69, 0x74, + 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x0d, 0x65, 0x71, 0x75, 0x69, 0x74, 0x79, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x12, 0x42, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x70, 0x69, - 0x74, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x43, 0x61, 0x70, 0x69, 0x74, - 0x61, 0x6c, 0x22, 0xb5, 0x05, 0x0a, 0x10, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x05, - 0x62, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3c, - 0x0a, 0x0e, 0x65, 0x71, 0x75, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0d, 0x65, - 0x71, 0x75, 0x69, 0x74, 0x79, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x12, 0x42, 0x0a, 0x11, - 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, - 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, - 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, - 0x12, 0x49, 0x0a, 0x15, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x61, - 0x70, 0x69, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x13, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x64, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x43, 0x61, 0x70, 0x12, 0x39, 0x0a, 0x09, 0x70, - 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, - 0x61, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x70, 0x6f, - 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x59, 0x0a, 0x15, 0x65, 0x71, 0x75, 0x69, 0x74, 0x79, - 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x13, 0x65, 0x71, 0x75, 0x69, 0x74, - 0x79, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x59, 0x0a, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x79, - 0x64, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, - 0x6f, 0x6f, 0x6c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, - 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x01, 0x52, 0x11, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, - 0x61, 0x79, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x16, - 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, - 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x13, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x65, 0x71, 0x75, - 0x69, 0x74, 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, - 0x61, 0x79, 0x64, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0xbd, 0x03, 0x0a, 0x15, 0x50, - 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x64, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x12, 0x49, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, - 0x65, 0x73, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, - 0x74, 0x65, 0x73, 0x12, 0x69, 0x0a, 0x26, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, - 0x61, 0x79, 0x64, 0x61, 0x79, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x73, 0x5f, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x22, 0x63, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x73, 0x45, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x12, 0x5e, - 0x0a, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x64, 0x61, 0x79, - 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x70, 0x69, 0x74, - 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, - 0x1d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, 0x44, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x12, 0x4a, + 0x61, 0x6c, 0x12, 0x49, 0x0a, 0x15, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x13, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x64, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x43, 0x61, 0x70, 0x12, 0x39, 0x0a, + 0x09, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, + 0x70, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x59, 0x0a, 0x15, 0x65, 0x71, 0x75, 0x69, + 0x74, 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x65, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x13, 0x65, 0x71, 0x75, + 0x69, 0x74, 0x79, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, + 0x61, 0x79, 0x64, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x64, + 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x01, 0x52, 0x11, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x16, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x5f, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x5f, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x13, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x22, 0xac, 0x03, 0x0a, 0x15, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x08, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x41, 0x74, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x62, 0x73, - 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x48, 0x00, 0x52, 0x08, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, - 0x65, 0x12, 0x4b, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x1a, 0x46, - 0x0a, 0x08, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x62, 0x73, 0x6f, 0x6c, - 0x75, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x06, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x1a, 0x9c, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x12, 0x40, 0x0a, 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, - 0x69, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x32, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, - 0x74, 0x72, 0x69, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, - 0x74, 0x72, 0x69, 0x63, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x5f, - 0x61, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x4a, 0x0a, 0x16, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x06, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x22, 0xa2, 0x0a, 0x0a, 0x0e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x6f, - 0x6d, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x02, 0x76, 0x30, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x49, - 0x6e, 0x66, 0x6f, 0x2e, 0x56, 0x30, 0x48, 0x00, 0x52, 0x02, 0x76, 0x30, 0x12, 0x32, 0x0a, 0x02, - 0x76, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x56, 0x31, 0x48, 0x00, 0x52, 0x02, 0x76, 0x31, - 0x1a, 0xb0, 0x03, 0x0a, 0x02, 0x56, 0x30, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x4b, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x74, 0x61, 0x6c, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x65, + 0x71, 0x75, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x61, 0x79, 0x64, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0xbd, 0x03, 0x0a, + 0x15, 0x50, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x14, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x45, - 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x49, - 0x0a, 0x15, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x13, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x55, 0x0a, 0x1b, 0x66, 0x69, 0x6e, - 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x19, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x36, 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0a, 0x67, 0x61, - 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x1a, 0xe6, 0x05, 0x0a, 0x02, 0x56, 0x31, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x64, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x12, 0x49, 0x0a, 0x10, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x61, 0x74, 0x65, 0x73, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x69, 0x0a, 0x26, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x61, 0x79, 0x64, 0x61, 0x79, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x73, 0x5f, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x22, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x73, 0x45, 0x61, 0x72, 0x6e, 0x65, 0x64, + 0x12, 0x5e, 0x0a, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x64, + 0x61, 0x79, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x70, + 0x69, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x1d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, + 0x12, 0x4a, 0x0a, 0x16, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x6e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x14, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x49, 0x0a, 0x15, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x13, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x6f, 0x6c, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x22, 0xac, 0x03, 0x0a, + 0x15, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x08, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x41, + 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, + 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x48, 0x00, 0x52, 0x08, 0x61, 0x62, 0x73, 0x6f, 0x6c, + 0x75, 0x74, 0x65, 0x12, 0x4b, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x41, 0x74, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x1a, 0x46, 0x0a, 0x08, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x62, 0x73, + 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x1a, 0x9c, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x12, 0x40, 0x0a, 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x6e, + 0x65, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x73, + 0x69, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x32, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, + 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, + 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x73, 0x5f, 0x61, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x4a, 0x0a, 0x16, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, + 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x22, 0xa2, 0x0a, 0x0a, 0x0e, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x02, 0x76, 0x30, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x56, 0x30, 0x48, 0x00, 0x52, 0x02, 0x76, 0x30, 0x12, 0x32, + 0x0a, 0x02, 0x76, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x56, 0x31, 0x48, 0x00, 0x52, 0x02, + 0x76, 0x31, 0x1a, 0xb0, 0x03, 0x0a, 0x02, 0x56, 0x30, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x14, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x49, 0x0a, 0x15, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x13, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x55, 0x0a, 0x1b, 0x66, + 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x13, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x55, 0x0a, 0x1b, - 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x19, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, - 0x0a, 0x67, 0x61, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x1e, 0x66, - 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x06, 0x20, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x19, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0a, + 0x67, 0x61, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x10, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0xe6, 0x05, 0x0a, 0x02, 0x56, 0x31, 0x12, 0x38, 0x0a, 0x0c, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x14, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x15, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x13, 0x62, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x55, + 0x0a, 0x1b, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x1c, 0x66, 0x6f, 0x75, 0x6e, - 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x42, 0x0a, 0x10, 0x6e, 0x65, 0x78, 0x74, - 0x5f, 0x70, 0x61, 0x79, 0x64, 0x61, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x6e, 0x65, - 0x78, 0x74, 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x15, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x64, 0x61, 0x79, 0x5f, 0x6d, 0x69, 0x6e, 0x74, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x69, 0x6e, 0x74, - 0x52, 0x61, 0x74, 0x65, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, - 0x4d, 0x69, 0x6e, 0x74, 0x52, 0x61, 0x74, 0x65, 0x12, 0x47, 0x0a, 0x14, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x12, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x64, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, - 0x6c, 0x12, 0x49, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x22, 0xa6, 0x03, 0x0a, 0x15, 0x49, - 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, - 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x35, 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x07, 0x69, - 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x12, 0x36, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x09, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x06, 0x65, 0x6e, 0x65, 0x72, - 0x67, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x52, - 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x69, 0x6e, 0x76, 0x6f, - 0x6b, 0x65, 0x72, 0x22, 0xa6, 0x04, 0x0a, 0x16, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, - 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x48, 0x00, - 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x07, 0x66, 0x61, 0x69, - 0x6c, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x6b, - 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x07, 0x66, 0x61, 0x69, - 0x6c, 0x75, 0x72, 0x65, 0x1a, 0xaf, 0x01, 0x0a, 0x07, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, - 0x12, 0x26, 0x0a, 0x0c, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x64, - 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, - 0x65, 0x72, 0x67, 0x79, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, - 0x12, 0x33, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xb9, 0x01, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x76, 0x61, 0x6c, + 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x19, 0x66, 0x69, 0x6e, 0x61, + 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x0a, 0x67, 0x61, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5b, 0x0a, + 0x1e, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x1c, 0x66, 0x6f, + 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x42, 0x0a, 0x10, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x64, 0x61, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, + 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4a, + 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x64, 0x61, 0x79, 0x5f, 0x6d, 0x69, + 0x6e, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x69, + 0x6e, 0x74, 0x52, 0x61, 0x74, 0x65, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x79, 0x64, + 0x61, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x52, 0x61, 0x74, 0x65, 0x12, 0x47, 0x0a, 0x14, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x70, 0x69, 0x74, + 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x64, 0x43, 0x61, 0x70, 0x69, + 0x74, 0x61, 0x6c, 0x12, 0x49, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0c, + 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x63, 0x73, 0x22, 0xa6, 0x03, 0x0a, + 0x15, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x48, 0x61, 0x73, 0x68, 0x12, 0x35, 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, + 0x07, 0x69, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x06, 0x65, 0x6e, + 0x65, 0x72, 0x67, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67, + 0x79, 0x52, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x69, 0x6e, + 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x22, 0xa6, 0x04, 0x0a, 0x16, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x49, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x07, 0x66, + 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x76, + 0x6f, 0x6b, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x07, 0x66, + 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x1a, 0xaf, 0x01, 0x0a, 0x07, 0x46, 0x61, 0x69, 0x6c, 0x75, + 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x65, 0x72, - 0x67, 0x79, 0x12, 0x3d, 0x0a, 0x07, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x72, 0x61, 0x63, - 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, - 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x86, 0x01, 0x0a, - 0x18, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, - 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2c, 0x0a, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x05, - 0x62, 0x61, 0x6b, 0x65, 0x72, 0x22, 0xd7, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x2b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x4d, 0x0a, - 0x0e, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x65, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, - 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, - 0x81, 0x01, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x37, 0x0a, - 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x6b, 0x65, 0x22, 0x74, 0x0a, 0x06, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x37, 0x0a, - 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x09, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x31, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, - 0x65, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, - 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x22, 0x2f, 0x0a, 0x17, 0x4c, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, - 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9a, 0x03, 0x0a, 0x0c, 0x45, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x52, 0x0a, 0x13, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, - 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x12, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, - 0x4d, 0x0a, 0x0e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x68, - 0x69, 0x70, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, - 0x0d, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x51, - 0x0a, 0x13, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x11, - 0x62, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, - 0x6f, 0x1a, 0x93, 0x01, 0x0a, 0x05, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x05, 0x62, - 0x61, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, - 0x49, 0x64, 0x52, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, + 0x67, 0x79, 0x12, 0x33, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, + 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xb9, 0x01, 0x0a, 0x07, 0x53, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0b, + 0x75, 0x73, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, + 0x65, 0x72, 0x67, 0x79, 0x12, 0x3d, 0x0a, 0x07, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x72, + 0x61, 0x63, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x65, 0x66, 0x66, 0x65, + 0x63, 0x74, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x86, + 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x09, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2c, 0x0a, 0x05, 0x62, 0x61, 0x6b, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, + 0x52, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x22, 0xd7, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x6f, - 0x77, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x6c, 0x6f, 0x74, 0x74, 0x65, - 0x72, 0x79, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x22, 0x83, 0x1a, 0x0a, 0x11, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x57, 0x0a, - 0x0e, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, - 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x3b, 0x0a, 0x04, 0x6d, 0x69, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, - 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6d, - 0x69, 0x6e, 0x74, 0x12, 0x69, 0x0a, 0x14, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x48, 0x00, 0x52, 0x13, 0x66, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x51, - 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x12, + 0x4d, 0x0a, 0x0e, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x22, 0x81, 0x01, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x37, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, + 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x6b, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x6b, 0x65, 0x22, 0x74, 0x0a, 0x06, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, + 0x37, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x09, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x31, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x72, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x72, 0x61, 0x6e, 0x63, + 0x68, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x22, 0x2f, 0x0a, 0x17, 0x4c, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb7, 0x03, 0x0a, + 0x0c, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x57, 0x0a, + 0x13, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, + 0x75, 0x6c, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x48, 0x00, 0x52, + 0x12, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, + 0x6c, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4c, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x0d, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x51, 0x0a, 0x13, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, + 0x42, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x11, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x45, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x93, 0x01, 0x0a, 0x05, 0x42, 0x61, 0x6b, + 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, + 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x6f, 0x74, + 0x74, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x0c, 0x6c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x66, 0x66, + 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x22, 0x83, 0x1a, 0x0a, 0x11, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x57, 0x0a, 0x0e, + 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, - 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x12, 0x73, 0x0a, 0x18, 0x70, 0x61, 0x79, 0x64, 0x61, 0x79, 0x5f, 0x66, 0x6f, 0x75, 0x6e, - 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x3b, 0x0a, 0x04, 0x6d, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, 0x46, 0x6f, 0x75, 0x6e, - 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x48, 0x00, 0x52, 0x16, - 0x70, 0x61, 0x79, 0x64, 0x61, 0x79, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x6a, 0x0a, 0x15, 0x70, 0x61, 0x79, 0x64, 0x61, 0x79, - 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, - 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x48, 0x00, 0x52, 0x13, 0x70, - 0x61, 0x79, 0x64, 0x61, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x12, 0x64, 0x0a, 0x13, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x72, - 0x75, 0x65, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x72, 0x75, 0x65, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x48, 0x00, 0x52, 0x11, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x72, - 0x75, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x61, 0x0a, 0x12, 0x70, 0x61, 0x79, 0x64, - 0x61, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x69, + 0x6e, 0x74, 0x12, 0x69, 0x0a, 0x14, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x48, 0x00, 0x52, 0x13, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x51, 0x0a, + 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x12, 0x73, 0x0a, 0x18, 0x70, 0x61, 0x79, 0x64, 0x61, 0x79, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, 0x46, 0x6f, 0x75, 0x6e, 0x64, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x48, 0x00, 0x52, 0x16, 0x70, + 0x61, 0x79, 0x64, 0x61, 0x79, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x6a, 0x0a, 0x15, 0x70, 0x61, 0x79, 0x64, 0x61, 0x79, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, - 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, 0x50, 0x6f, 0x6f, - 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x48, 0x00, 0x52, 0x10, 0x70, 0x61, 0x79, 0x64, 0x61, - 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x1a, 0xd2, 0x01, 0x0a, 0x0e, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x4f, - 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x35, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x48, 0x00, 0x52, 0x13, 0x70, 0x61, + 0x79, 0x64, 0x61, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x12, 0x64, 0x0a, 0x13, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x63, 0x72, 0x75, + 0x65, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x72, 0x75, 0x65, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x48, 0x00, 0x52, 0x11, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x72, 0x75, + 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x61, 0x0a, 0x12, 0x70, 0x61, 0x79, 0x64, 0x61, + 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, 0x50, 0x6f, 0x6f, 0x6c, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x48, 0x00, 0x52, 0x10, 0x70, 0x61, 0x79, 0x64, 0x61, 0x79, + 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x1a, 0xd2, 0x01, 0x0a, 0x0e, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x4f, 0x0a, + 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2e, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x6f, + 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x1a, + 0x9a, 0x01, 0x0a, 0x0d, 0x42, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x73, 0x12, 0x54, 0x0a, 0x0d, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x70, + 0x65, 0x63, 0x69, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x0c, 0x62, 0x61, 0x6b, 0x65, 0x72, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, + 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x1a, 0xca, 0x02, 0x0a, + 0x04, 0x4d, 0x69, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x74, 0x42, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x4f, 0x0a, 0x18, 0x6d, 0x69, + 0x6e, 0x74, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x16, 0x6d, 0x69, 0x6e, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x5e, 0x0a, 0x20, 0x6d, + 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x64, 0x65, 0x76, + 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x1d, 0x6d, 0x69, + 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, + 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x4c, 0x0a, 0x12, 0x66, + 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x11, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xae, 0x01, 0x0a, 0x13, 0x46, 0x69, + 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x73, 0x12, 0x62, 0x0a, 0x14, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, - 0x6f, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x52, 0x13, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x64, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x1a, 0xce, 0x03, 0x0a, 0x0b, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x40, 0x0a, 0x10, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, + 0x6f, 0x6c, 0x64, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0d, 0x6f, 0x6c, + 0x64, 0x47, 0x61, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0f, 0x6e, + 0x65, 0x77, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0d, 0x6e, 0x65, 0x77, + 0x47, 0x61, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x0c, 0x62, 0x61, + 0x6b, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x42, 0x0a, 0x11, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x62, 0x61, 0x6b, 0x65, + 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x4c, 0x0a, + 0x12, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x1a, 0x9a, 0x01, 0x0a, 0x0d, 0x42, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x73, 0x12, 0x54, 0x0a, 0x0d, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, - 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x0c, 0x62, 0x61, 0x6b, 0x65, - 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x61, - 0x69, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x1a, 0xca, 0x02, - 0x0a, 0x04, 0x4d, 0x69, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x62, - 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x74, 0x42, - 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x4f, 0x0a, 0x18, 0x6d, - 0x69, 0x6e, 0x74, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x16, 0x6d, 0x69, 0x6e, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x5e, 0x0a, 0x20, - 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x64, 0x65, - 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x1d, 0x6d, - 0x69, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x44, 0x65, 0x76, 0x65, 0x6c, - 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x4c, 0x0a, 0x12, - 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x11, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xae, 0x01, 0x0a, 0x13, 0x46, - 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x73, 0x12, 0x62, 0x0a, 0x14, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x52, 0x13, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, - 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x52, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x1a, 0xce, 0x03, 0x0a, 0x0b, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x40, 0x0a, 0x10, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0f, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x73, 0x12, 0x3d, 0x0a, - 0x0f, 0x6f, 0x6c, 0x64, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0d, 0x6f, - 0x6c, 0x64, 0x47, 0x61, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0f, - 0x6e, 0x65, 0x77, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0d, 0x6e, 0x65, - 0x77, 0x47, 0x61, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x0c, 0x62, - 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x42, 0x0a, 0x11, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x11, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xac, 0x01, 0x0a, 0x16, + 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x4c, 0x0a, 0x12, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x52, 0x11, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x12, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x62, 0x61, 0x6b, - 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x4c, - 0x0a, 0x12, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x11, 0x66, 0x6f, 0x75, 0x6e, 0x64, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xac, 0x01, 0x0a, - 0x16, 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x4c, 0x0a, 0x12, 0x66, 0x6f, 0x75, 0x6e, 0x64, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x11, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, + 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x1a, 0x92, 0x02, 0x0a, 0x13, 0x50, + 0x61, 0x79, 0x64, 0x61, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x52, 0x11, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x12, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, - 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x11, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, - 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x1a, 0x92, 0x02, 0x0a, 0x13, - 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x10, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0f, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x73, 0x12, 0x38, - 0x0a, 0x0c, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, + 0x73, 0x73, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x10, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0f, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x73, 0x12, 0x38, 0x0a, + 0x0c, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x62, 0x61, 0x6b, 0x65, + 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x46, 0x0a, 0x13, 0x66, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x62, 0x61, 0x6b, - 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x46, 0x0a, 0x13, 0x66, 0x69, 0x6e, 0x61, - 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x12, 0x66, 0x69, - 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x1a, 0xbd, 0x03, 0x0a, 0x11, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x72, 0x75, 0x65, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x40, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x6f, 0x6c, 0x64, 0x5f, - 0x67, 0x61, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0d, 0x6f, 0x6c, 0x64, 0x47, 0x61, 0x73, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0f, 0x6e, 0x65, 0x77, 0x5f, 0x67, - 0x61, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x12, 0x66, 0x69, 0x6e, + 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x1a, + 0xbd, 0x03, 0x0a, 0x11, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x63, 0x63, 0x72, 0x75, 0x65, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x40, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x6f, 0x6c, 0x64, 0x5f, 0x67, + 0x61, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x47, 0x61, 0x73, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x0c, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, - 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x12, 0x3c, 0x0a, 0x0e, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x72, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, - 0x0d, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x42, - 0x0a, 0x11, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, - 0x72, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x52, 0x10, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x72, - 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, - 0x1a, 0xa1, 0x02, 0x0a, 0x10, 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x3a, 0x0a, 0x0a, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6f, 0x77, - 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, - 0x64, 0x48, 0x00, 0x52, 0x09, 0x70, 0x6f, 0x6f, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x88, 0x01, - 0x01, 0x12, 0x40, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x66, 0x65, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0d, 0x6f, 0x6c, 0x64, 0x47, 0x61, 0x73, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0f, 0x6e, 0x65, 0x77, 0x5f, 0x67, 0x61, + 0x73, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x47, 0x61, 0x73, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x0c, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x72, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, - 0x65, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x52, 0x0b, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x46, 0x0a, - 0x13, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, + 0x6e, 0x74, 0x52, 0x0b, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, + 0x3c, 0x0a, 0x0e, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0d, + 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x42, 0x0a, + 0x11, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x72, + 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x10, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x72, 0x67, + 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x1a, + 0xa1, 0x02, 0x0a, 0x10, 0x50, 0x61, 0x79, 0x64, 0x61, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x3a, 0x0a, 0x0a, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, + 0x48, 0x00, 0x52, 0x09, 0x70, 0x6f, 0x6f, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x88, 0x01, 0x01, + 0x12, 0x40, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x66, 0x65, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x12, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6f, - 0x77, 0x6e, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xf5, 0x0f, - 0x0a, 0x0d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, - 0x45, 0x0a, 0x0e, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x6b, - 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x74, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, + 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x0b, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x46, 0x0a, 0x13, + 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x12, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xf5, 0x0f, 0x0a, + 0x0d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x45, + 0x0a, 0x0e, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x6b, 0x65, + 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x65, 0x72, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x48, 0x00, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x74, + 0x4b, 0x65, 0x79, 0x73, 0x12, 0x41, 0x0a, 0x0b, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x5f, 0x6b, + 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x65, 0x72, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x48, 0x00, 0x52, 0x08, 0x72, 0x6f, 0x6f, - 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x41, 0x0a, 0x0b, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x5f, - 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x65, - 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x31, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x4c, 0x0a, 0x11, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x32, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x63, 0x70, 0x76, 0x5f, 0x30, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x56, 0x30, 0x48, 0x00, 0x52, 0x0e, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x4b, 0x65, - 0x79, 0x73, 0x43, 0x70, 0x76, 0x30, 0x12, 0x4c, 0x0a, 0x11, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, - 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x63, 0x70, 0x76, 0x5f, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x56, 0x31, 0x48, 0x00, 0x52, 0x0e, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x4b, 0x65, 0x79, 0x73, - 0x43, 0x70, 0x76, 0x31, 0x12, 0x3b, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x12, 0x54, 0x0a, 0x13, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, - 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, - 0x79, 0x48, 0x00, 0x52, 0x12, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, - 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x0f, 0x65, 0x75, 0x72, 0x6f, 0x5f, - 0x70, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, - 0x0d, 0x65, 0x75, 0x72, 0x6f, 0x50, 0x65, 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x4a, - 0x0a, 0x12, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f, 0x63, 0x63, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x5f, - 0x65, 0x75, 0x72, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x69, 0x63, 0x72, 0x6f, - 0x43, 0x63, 0x64, 0x50, 0x65, 0x72, 0x45, 0x75, 0x72, 0x6f, 0x12, 0x4e, 0x0a, 0x12, 0x66, 0x6f, - 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x11, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5c, 0x0a, 0x17, 0x6d, 0x69, - 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x63, 0x70, 0x76, 0x5f, 0x30, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x69, 0x6e, 0x74, - 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x70, 0x76, 0x30, - 0x48, 0x00, 0x52, 0x14, 0x6d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x70, 0x76, 0x30, 0x12, 0x5c, 0x0a, 0x17, 0x6d, 0x69, 0x6e, 0x74, - 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x70, - 0x76, 0x5f, 0x31, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x70, 0x76, 0x31, 0x48, 0x00, - 0x52, 0x14, 0x6d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x43, 0x70, 0x76, 0x31, 0x12, 0x6d, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x1a, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x61, 0x73, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x67, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x73, 0x12, 0x57, 0x0a, 0x15, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x70, 0x76, 0x5f, 0x30, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x54, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x12, 0x70, 0x6f, 0x6f, 0x6c, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x30, 0x12, 0x56, 0x0a, 0x15, - 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x5f, - 0x63, 0x70, 0x76, 0x5f, 0x31, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x48, 0x00, - 0x52, 0x12, 0x70, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x43, 0x70, 0x76, 0x31, 0x12, 0x4b, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x5f, 0x61, 0x6e, 0x6f, 0x6e, - 0x79, 0x6d, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x13, 0x61, 0x64, - 0x64, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, - 0x72, 0x12, 0x4b, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x49, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x13, 0x61, 0x64, 0x64, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x58, - 0x0a, 0x13, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6f, 0x6c, - 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, - 0x76, 0x31, 0x48, 0x00, 0x52, 0x12, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4c, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x43, 0x70, 0x76, 0x31, 0x48, 0x00, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4a, 0x0a, 0x11, 0x67, 0x61, 0x73, 0x5f, 0x72, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x63, 0x70, 0x76, 0x5f, 0x32, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x47, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x43, 0x70, 0x76, 0x32, - 0x48, 0x00, 0x52, 0x0e, 0x67, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x43, 0x70, - 0x76, 0x32, 0x12, 0x51, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x48, 0x00, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3f, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x18, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x48, 0x00, 0x52, 0x10, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x7c, 0x0a, - 0x21, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x66, 0x69, 0x6e, 0x61, - 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x65, - 0x66, 0x66, 0x65, 0x63, 0x74, 0x22, 0x81, 0x0c, 0x0a, 0x19, 0x4e, 0x65, 0x78, 0x74, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x12, 0x3a, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, - 0x3e, 0x0a, 0x0b, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x52, 0x0a, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x4b, 0x65, 0x79, 0x73, 0x12, - 0x3e, 0x0a, 0x0b, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x52, 0x0a, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x4b, 0x65, 0x79, 0x73, 0x12, - 0x39, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x4e, 0x0a, 0x13, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, - 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x12, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x0f, 0x65, 0x75, - 0x72, 0x6f, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x06, 0x20, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x31, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x4c, 0x0a, 0x11, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x32, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x63, 0x70, 0x76, 0x5f, 0x30, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x56, 0x30, 0x48, 0x00, 0x52, 0x0e, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x4b, 0x65, 0x79, + 0x73, 0x43, 0x70, 0x76, 0x30, 0x12, 0x4c, 0x0a, 0x11, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x5f, + 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x63, 0x70, 0x76, 0x5f, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, + 0x31, 0x48, 0x00, 0x52, 0x0e, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x4b, 0x65, 0x79, 0x73, 0x43, + 0x70, 0x76, 0x31, 0x12, 0x3b, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x12, 0x54, 0x0a, 0x13, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x66, + 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, + 0x48, 0x00, 0x52, 0x12, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, + 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x0f, 0x65, 0x75, 0x72, 0x6f, 0x5f, 0x70, + 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0d, + 0x65, 0x75, 0x72, 0x6f, 0x50, 0x65, 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x4a, 0x0a, + 0x12, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f, 0x63, 0x63, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x65, + 0x75, 0x72, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x43, + 0x63, 0x64, 0x50, 0x65, 0x72, 0x45, 0x75, 0x72, 0x6f, 0x12, 0x4e, 0x0a, 0x12, 0x66, 0x6f, 0x75, + 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x11, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5c, 0x0a, 0x17, 0x6d, 0x69, 0x6e, + 0x74, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, + 0x70, 0x76, 0x5f, 0x30, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x44, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x70, 0x76, 0x30, 0x48, + 0x00, 0x52, 0x14, 0x6d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x70, 0x76, 0x30, 0x12, 0x5c, 0x0a, 0x17, 0x6d, 0x69, 0x6e, 0x74, 0x5f, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x70, 0x76, + 0x5f, 0x31, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x70, 0x76, 0x31, 0x48, 0x00, 0x52, + 0x14, 0x6d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x70, 0x76, 0x31, 0x12, 0x6d, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x1a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x61, 0x73, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x67, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x73, 0x12, 0x57, 0x0a, 0x15, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x70, 0x76, 0x5f, 0x30, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x54, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x12, 0x70, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x30, 0x12, 0x56, 0x0a, 0x15, 0x70, + 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x63, + 0x70, 0x76, 0x5f, 0x31, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x48, 0x00, 0x52, + 0x12, 0x70, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, + 0x70, 0x76, 0x31, 0x12, 0x4b, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x5f, 0x61, 0x6e, 0x6f, 0x6e, 0x79, + 0x6d, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x41, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x13, 0x61, 0x64, 0x64, + 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x72, + 0x12, 0x4b, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x49, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x13, 0x61, 0x64, 0x64, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x58, 0x0a, + 0x13, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6f, 0x6c, 0x64, + 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, + 0x31, 0x48, 0x00, 0x52, 0x12, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4c, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, + 0x70, 0x76, 0x31, 0x48, 0x00, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4a, 0x0a, 0x11, 0x67, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x73, 0x5f, 0x63, 0x70, 0x76, 0x5f, 0x32, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x47, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x43, 0x70, 0x76, 0x32, 0x48, + 0x00, 0x52, 0x0e, 0x67, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x43, 0x70, 0x76, + 0x32, 0x12, 0x51, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, + 0x00, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x12, 0x3f, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, + 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x48, 0x00, 0x52, 0x10, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x7c, 0x0a, 0x21, + 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x1f, 0x66, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x65, 0x66, + 0x66, 0x65, 0x63, 0x74, 0x22, 0x81, 0x0c, 0x0a, 0x19, 0x4e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x12, 0x3a, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x3e, + 0x0a, 0x0b, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x52, 0x0d, 0x65, 0x75, 0x72, 0x6f, 0x50, 0x65, 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, - 0x79, 0x12, 0x4a, 0x0a, 0x12, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f, 0x63, 0x63, 0x64, 0x5f, 0x70, - 0x65, 0x72, 0x5f, 0x65, 0x75, 0x72, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0f, 0x6d, 0x69, - 0x63, 0x72, 0x6f, 0x43, 0x63, 0x64, 0x50, 0x65, 0x72, 0x45, 0x75, 0x72, 0x6f, 0x12, 0x4c, 0x0a, - 0x12, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x11, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x11, 0x6d, - 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x52, 0x0a, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x3e, + 0x0a, 0x0b, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x0a, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x39, + 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x4e, 0x0a, 0x13, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x1a, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, - 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0a, 0x67, 0x61, - 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x46, 0x0a, 0x0f, 0x70, 0x6f, 0x6f, 0x6c, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x12, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x0f, 0x65, 0x75, 0x72, + 0x6f, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x0d, 0x65, 0x75, 0x72, 0x6f, 0x50, 0x65, 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, + 0x12, 0x4a, 0x0a, 0x12, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f, 0x63, 0x63, 0x64, 0x5f, 0x70, 0x65, + 0x72, 0x5f, 0x65, 0x75, 0x72, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0f, 0x6d, 0x69, 0x63, + 0x72, 0x6f, 0x43, 0x63, 0x64, 0x50, 0x65, 0x72, 0x45, 0x75, 0x72, 0x6f, 0x12, 0x4c, 0x0a, 0x12, + 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x11, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x11, 0x6d, 0x69, + 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x1a, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x72, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0a, 0x67, 0x61, 0x73, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x46, 0x0a, 0x0f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, + 0x0e, 0x70, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, + 0x51, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x5f, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, + 0x5f, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x13, 0x61, + 0x64, 0x64, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x52, 0x65, 0x76, 0x6f, 0x6b, + 0x65, 0x72, 0x12, 0x51, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x52, 0x0e, 0x70, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x12, 0x51, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x5f, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, - 0x79, 0x5f, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x13, - 0x61, 0x64, 0x64, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x69, 0x74, 0x79, 0x52, 0x65, 0x76, 0x6f, - 0x6b, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, + 0x52, 0x13, 0x61, 0x64, 0x64, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x13, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, + 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x52, 0x13, 0x61, 0x64, 0x64, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x13, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, - 0x77, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, + 0x72, 0x52, 0x12, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x46, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0e, 0x74, + 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4c, 0x0a, + 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x43, 0x0a, 0x0e, 0x6d, + 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x52, 0x12, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x46, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0e, - 0x74, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4c, - 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, - 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x43, 0x0a, 0x0e, - 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x4b, 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, - 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x10, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x69, - 0x0a, 0x21, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x1f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x21, 0x0a, 0x09, 0x49, 0x70, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x1c, 0x0a, 0x04, - 0x50, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x64, 0x0a, 0x0f, 0x49, 0x70, - 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, - 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x52, 0x02, 0x69, 0x70, 0x12, 0x27, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, - 0x22, 0x1e, 0x0a, 0x06, 0x50, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x45, 0x0a, 0x0a, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x50, 0x65, 0x65, 0x72, 0x12, 0x37, - 0x0a, 0x0a, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x69, 0x70, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x3e, 0x0a, 0x0b, 0x42, 0x61, 0x6e, 0x6e, 0x65, - 0x64, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x50, 0x65, 0x65, 0x72, - 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x44, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, 0x54, - 0x6f, 0x42, 0x61, 0x6e, 0x12, 0x37, 0x0a, 0x0a, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x65, 0x72, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x4b, 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, + 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x10, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x69, 0x0a, + 0x21, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x1f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x21, 0x0a, 0x09, 0x49, 0x70, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x1c, 0x0a, 0x04, 0x50, + 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x64, 0x0a, 0x0f, 0x49, 0x70, 0x53, + 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x02, + 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x33, 0x0a, - 0x0b, 0x44, 0x75, 0x6d, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x72, - 0x61, 0x77, 0x22, 0xf2, 0x04, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x33, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x50, 0x65, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x05, - 0x70, 0x65, 0x65, 0x72, 0x73, 0x1a, 0xaf, 0x04, 0x0a, 0x04, 0x50, 0x65, 0x65, 0x72, 0x12, 0x2e, - 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x50, 0x65, 0x65, 0x72, 0x49, 0x64, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, - 0x0a, 0x0e, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x70, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0d, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4f, 0x0a, 0x0d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x65, - 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x4e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x0c, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, - 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x13, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x61, 0x74, 0x63, 0x68, - 0x75, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x50, 0x65, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x43, - 0x61, 0x74, 0x63, 0x68, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x11, - 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x61, 0x74, 0x63, 0x68, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x1a, 0x76, 0x0a, 0x0c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, - 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, - 0x53, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x3a, 0x0a, 0x0d, 0x43, 0x61, 0x74, - 0x63, 0x68, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x50, - 0x54, 0x4f, 0x44, 0x41, 0x54, 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, - 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x41, 0x54, 0x43, 0x48, 0x49, 0x4e, - 0x47, 0x55, 0x50, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, - 0x75, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x99, 0x0b, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x38, 0x0a, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, - 0x70, 0x65, 0x65, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x0c, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x0c, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, - 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, - 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x32, - 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x64, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x6f, - 0x64, 0x65, 0x1a, 0xd3, 0x01, 0x0a, 0x0b, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x49, 0x64, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, - 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x70, 0x65, 0x65, - 0x72, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x65, - 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, 0x65, 0x65, 0x72, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x0a, 0x61, 0x76, - 0x67, 0x5f, 0x62, 0x70, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, - 0x61, 0x76, 0x67, 0x42, 0x70, 0x73, 0x49, 0x6e, 0x12, 0x1e, 0x0a, 0x0b, 0x61, 0x76, 0x67, 0x5f, - 0x62, 0x70, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, - 0x76, 0x67, 0x42, 0x70, 0x73, 0x4f, 0x75, 0x74, 0x1a, 0x8f, 0x05, 0x0a, 0x12, 0x42, 0x61, 0x6b, - 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x31, 0x0a, 0x08, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x07, 0x62, 0x61, 0x6b, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x77, 0x0a, 0x16, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x6b, 0x65, - 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, - 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x14, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x43, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x84, 0x01, 0x0a, 0x1b, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x43, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x73, 0x73, 0x52, 0x02, 0x69, 0x70, 0x12, 0x27, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, + 0x1e, 0x0a, 0x06, 0x50, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x45, 0x0a, 0x0a, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x50, 0x65, 0x65, 0x72, 0x12, 0x37, 0x0a, + 0x0a, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x69, 0x70, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x3e, 0x0a, 0x0b, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, + 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x50, 0x65, 0x65, 0x72, 0x52, + 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x44, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, 0x54, 0x6f, + 0x42, 0x61, 0x6e, 0x12, 0x37, 0x0a, 0x0a, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x33, 0x0a, 0x0b, + 0x44, 0x75, 0x6d, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x66, + 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x72, 0x61, + 0x77, 0x22, 0xf2, 0x04, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x33, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, + 0x65, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x05, 0x70, + 0x65, 0x65, 0x72, 0x73, 0x1a, 0xaf, 0x04, 0x0a, 0x04, 0x50, 0x65, 0x65, 0x72, 0x12, 0x2e, 0x0a, + 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, + 0x65, 0x65, 0x72, 0x49, 0x64, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, + 0x0e, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x70, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0d, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x4f, 0x0a, 0x0d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x65, 0x72, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x0c, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x12, 0x5d, 0x0a, 0x13, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x61, 0x74, 0x63, 0x68, 0x75, + 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, + 0x65, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x43, 0x61, + 0x74, 0x63, 0x68, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x11, 0x6e, + 0x6f, 0x64, 0x65, 0x43, 0x61, 0x74, 0x63, 0x68, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x1a, 0x76, 0x0a, 0x0c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x53, + 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x3a, 0x0a, 0x0d, 0x43, 0x61, 0x74, 0x63, + 0x68, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x50, 0x54, + 0x4f, 0x44, 0x41, 0x54, 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, + 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x41, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, + 0x55, 0x50, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, + 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x99, 0x0b, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x38, 0x0a, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, + 0x65, 0x65, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x0c, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x3a, 0x0a, 0x0c, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, + 0x0c, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x32, 0x0a, + 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x64, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x6f, 0x64, + 0x65, 0x1a, 0xd3, 0x01, 0x0a, 0x0b, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x2e, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x49, 0x64, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, + 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x70, 0x65, 0x65, 0x72, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x65, 0x65, + 0x72, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x70, 0x65, 0x65, 0x72, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x0a, 0x61, 0x76, 0x67, + 0x5f, 0x62, 0x70, 0x73, 0x5f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x61, + 0x76, 0x67, 0x42, 0x70, 0x73, 0x49, 0x6e, 0x12, 0x1e, 0x0a, 0x0b, 0x61, 0x76, 0x67, 0x5f, 0x62, + 0x70, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x76, + 0x67, 0x42, 0x70, 0x73, 0x4f, 0x75, 0x74, 0x1a, 0x8f, 0x05, 0x0a, 0x12, 0x42, 0x61, 0x6b, 0x65, + 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x31, + 0x0a, 0x08, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x07, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x77, 0x0a, 0x16, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x3f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, - 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x18, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x42, 0x61, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x90, 0x01, 0x0a, 0x1f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x69, - 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, - 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x64, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x65, - 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, - 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x1c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, - 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x1a, 0x0a, 0x18, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x42, + 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x61, + 0x73, 0x73, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x48, 0x00, 0x52, 0x14, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x84, 0x01, 0x0a, 0x1b, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x43, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x43, + 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x18, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x1a, 0x1e, 0x0a, 0x1c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x22, 0x6d, 0x0a, 0x14, 0x50, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x74, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x4f, 0x54, - 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x10, 0x00, 0x12, - 0x25, 0x0a, 0x21, 0x41, 0x44, 0x44, 0x45, 0x44, 0x5f, 0x42, 0x55, 0x54, 0x5f, 0x4e, 0x4f, 0x54, - 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, - 0x54, 0x54, 0x45, 0x45, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x44, 0x44, 0x45, 0x44, 0x5f, - 0x42, 0x55, 0x54, 0x5f, 0x57, 0x52, 0x4f, 0x4e, 0x47, 0x5f, 0x4b, 0x45, 0x59, 0x53, 0x10, 0x02, - 0x42, 0x08, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0xcb, 0x01, 0x0a, 0x04, 0x4e, - 0x6f, 0x64, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x6e, 0x6f, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x69, - 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, - 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x07, - 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x12, 0x44, - 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4e, - 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6e, - 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, - 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x22, 0xa9, 0x02, 0x0a, 0x14, 0x53, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x54, 0x0a, 0x13, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x12, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x5a, 0x0a, 0x15, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x14, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x51, - 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x11, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x22, - 0x8b, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, - 0x21, 0x0a, 0x0b, 0x72, 0x61, 0x77, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x61, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x21, 0x0a, - 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0xb4, 0x01, 0x0a, 0x0c, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, - 0x70, 0x12, 0x4b, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, - 0x61, 0x70, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x1a, 0x57, - 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc2, 0x01, 0x0a, 0x13, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, 0x70, 0x12, - 0x52, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, 0x70, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x73, 0x1a, 0x57, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xdc, 0x01, 0x0a, - 0x1b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x5a, 0x0a, 0x0a, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x3a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x1a, 0x61, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x38, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, 0x70, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8d, 0x02, 0x0a, 0x18, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x6f, 0x12, 0x90, 0x01, 0x0a, 0x1f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x69, 0x6e, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, + 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x64, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, + 0x73, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x69, + 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x1c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x69, + 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x1a, 0x0a, 0x18, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x42, 0x61, + 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x1a, 0x1e, 0x0a, 0x1c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x22, 0x6d, 0x0a, 0x14, 0x50, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x74, 0x65, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x4f, 0x54, 0x5f, + 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x10, 0x00, 0x12, 0x25, + 0x0a, 0x21, 0x41, 0x44, 0x44, 0x45, 0x44, 0x5f, 0x42, 0x55, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, + 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, + 0x54, 0x45, 0x45, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x44, 0x44, 0x45, 0x44, 0x5f, 0x42, + 0x55, 0x54, 0x5f, 0x57, 0x52, 0x4f, 0x4e, 0x47, 0x5f, 0x4b, 0x45, 0x59, 0x53, 0x10, 0x02, 0x42, + 0x08, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0xcb, 0x01, 0x0a, 0x04, 0x4e, 0x6f, + 0x64, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x6e, 0x6f, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, + 0x0a, 0x6e, 0x6f, 0x74, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x07, 0x70, + 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x12, 0x44, 0x0a, + 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, + 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, + 0x65, 0x6e, 0x73, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x22, 0xa9, 0x02, 0x0a, 0x14, 0x53, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x54, 0x0a, 0x13, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, - 0x46, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0d, 0x65, 0x6e, 0x65, 0x72, 0x67, - 0x79, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, - 0x6e, 0x65, 0x72, 0x67, 0x79, 0x52, 0x0c, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x52, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x22, 0xeb, 0x01, 0x0a, 0x13, - 0x49, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x12, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x5a, 0x0a, 0x15, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, + 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x14, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, + 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x11, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x0c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x22, 0x8b, + 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, + 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x21, + 0x0a, 0x0b, 0x72, 0x61, 0x77, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x61, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x21, 0x0a, 0x09, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0xb4, 0x01, 0x0a, 0x0c, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, 0x70, + 0x12, 0x4b, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, + 0x70, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x1a, 0x57, 0x0a, + 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc2, 0x01, 0x0a, 0x13, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, 0x70, 0x12, 0x52, + 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x4d, 0x61, 0x70, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x73, 0x1a, 0x57, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, - 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x12, 0x34, 0x0a, 0x09, 0x69, - 0x6e, 0x69, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, - 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x08, 0x69, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x36, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x22, 0xf7, 0x01, 0x0a, 0x15, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3d, 0x0a, 0x0c, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0b, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x22, 0x7b, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xdc, 0x01, 0x0a, 0x1b, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x5a, 0x0a, 0x0a, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x3a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x1a, 0x61, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, 0x70, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8d, 0x02, 0x0a, 0x18, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, - 0x22, 0xac, 0x01, 0x0a, 0x17, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x57, 0x69, 0x74, - 0x68, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2d, 0x0a, 0x06, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x08, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x22, - 0x8e, 0x04, 0x0a, 0x19, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x21, 0x0a, - 0x0b, 0x72, 0x61, 0x77, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x61, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x12, 0x4b, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, - 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, - 0x0c, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x49, 0x0a, - 0x0d, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x69, 0x74, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x4f, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x08, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x66, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, - 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x10, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x4d, 0x65, 0x6d, 0x6f, 0x12, - 0x44, 0x0a, 0x0d, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, - 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x22, 0x9c, 0x01, 0x0a, 0x15, 0x50, 0x72, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x06, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x07, 0x70, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, - 0xe3, 0x01, 0x0a, 0x12, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x12, 0x3f, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x12, 0x42, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x07, 0x70, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xd0, 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x12, 0x59, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x1a, - 0x57, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x46, + 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0d, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, + 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, + 0x65, 0x72, 0x67, 0x79, 0x52, 0x0c, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x52, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x22, 0xeb, 0x01, 0x0a, 0x13, 0x49, + 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x52, + 0x09, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x12, 0x34, 0x0a, 0x09, 0x69, 0x6e, + 0x69, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, + 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x08, 0x69, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x36, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe8, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x45, 0x0a, 0x0e, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x65, 0x66, 0x66, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, + 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x09, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x22, 0xf7, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x38, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0b, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x22, 0x7b, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x22, + 0xac, 0x01, 0x0a, 0x17, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, + 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2d, 0x0a, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x22, 0x8e, + 0x04, 0x0a, 0x19, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x21, 0x0a, 0x0b, + 0x72, 0x61, 0x77, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x61, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, + 0x4b, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, + 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0c, + 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x49, 0x0a, 0x0d, + 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x4f, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x22, 0x48, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, - 0x21, 0x0a, 0x0b, 0x72, 0x61, 0x77, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x61, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xd3, 0x01, - 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x4d, 0x61, 0x70, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, - 0x12, 0x3e, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x12, 0x41, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x22, 0x32, 0x0a, 0x1a, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x30, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x80, 0x08, 0x0a, 0x11, 0x43, 0x68, - 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x56, 0x30, 0x12, - 0x52, 0x0a, 0x13, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x66, 0x66, - 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, - 0x12, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, - 0x6c, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0f, 0x65, 0x75, 0x72, 0x6f, 0x5f, 0x70, 0x65, 0x72, 0x5f, - 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x65, 0x75, 0x72, 0x6f, 0x50, - 0x65, 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x48, 0x0a, 0x12, 0x6d, 0x69, 0x63, 0x72, - 0x6f, 0x5f, 0x63, 0x63, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x65, 0x75, 0x72, 0x6f, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, - 0x65, 0x52, 0x0f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x43, 0x63, 0x64, 0x50, 0x65, 0x72, 0x45, 0x75, - 0x72, 0x6f, 0x12, 0x48, 0x0a, 0x15, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6f, 0x6c, - 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x13, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x43, 0x6f, - 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x73, 0x12, 0x5d, 0x0a, 0x16, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x14, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x50, 0x0a, 0x11, 0x6d, - 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x70, 0x76, 0x30, 0x52, 0x10, 0x6d, 0x69, 0x6e, - 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6b, 0x0a, - 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, - 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, - 0x65, 0x65, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1a, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x0b, 0x67, 0x61, - 0x73, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x47, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x0a, 0x67, 0x61, 0x73, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x4c, 0x0a, 0x12, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x52, 0x11, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x1c, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, - 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x62, 0x61, - 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x19, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x46, 0x6f, 0x72, 0x42, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x3b, 0x0a, 0x09, - 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x48, 0x69, 0x67, 0x68, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x52, - 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x3f, 0x0a, 0x0b, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x31, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x48, - 0x69, 0x67, 0x68, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x0a, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x32, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x30, - 0x52, 0x0a, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x4b, 0x65, 0x79, 0x73, 0x22, 0xce, 0x08, 0x0a, - 0x11, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x56, 0x31, 0x12, 0x52, 0x0a, 0x13, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, - 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, - 0x74, 0x79, 0x52, 0x12, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, - 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0f, 0x65, 0x75, 0x72, 0x6f, 0x5f, 0x70, - 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x65, 0x75, - 0x72, 0x6f, 0x50, 0x65, 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x48, 0x0a, 0x12, 0x6d, - 0x69, 0x63, 0x72, 0x6f, 0x5f, 0x63, 0x63, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x65, 0x75, 0x72, - 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, - 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x52, 0x61, 0x74, 0x65, 0x52, 0x0f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x43, 0x63, 0x64, 0x50, 0x65, - 0x72, 0x45, 0x75, 0x72, 0x6f, 0x12, 0x56, 0x0a, 0x13, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, - 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x52, 0x12, 0x63, 0x6f, 0x6f, 0x6c, 0x64, - 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4a, 0x0a, - 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5d, 0x0a, 0x16, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x52, 0x14, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x50, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x74, - 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x70, 0x76, 0x31, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x74, 0x44, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6b, 0x0a, 0x1c, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x64, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1a, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x72, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x61, 0x73, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x0a, 0x67, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x73, 0x12, 0x4c, 0x0a, 0x12, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x11, - 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x4a, 0x0a, 0x0f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x52, 0x0e, 0x70, - 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, - 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x48, 0x69, 0x67, 0x68, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x73, - 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x3f, 0x0a, 0x0b, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x31, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x48, 0x69, 0x67, 0x68, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x52, - 0x0a, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x32, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, - 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, - 0x31, 0x52, 0x0a, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x4b, 0x65, 0x79, 0x73, 0x22, 0xd3, 0x09, - 0x0a, 0x11, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x56, 0x32, 0x12, 0x57, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, - 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x56, 0x31, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, - 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x43, 0x0a, 0x0f, - 0x65, 0x75, 0x72, 0x6f, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, - 0x74, 0x65, 0x52, 0x0d, 0x65, 0x75, 0x72, 0x6f, 0x50, 0x65, 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, - 0x79, 0x12, 0x48, 0x0a, 0x12, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f, 0x63, 0x63, 0x64, 0x5f, 0x70, - 0x65, 0x72, 0x5f, 0x65, 0x75, 0x72, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x52, 0x0f, 0x6d, 0x69, 0x63, 0x72, - 0x6f, 0x43, 0x63, 0x64, 0x50, 0x65, 0x72, 0x45, 0x75, 0x72, 0x6f, 0x12, 0x56, 0x0a, 0x13, 0x63, - 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, - 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, - 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x52, - 0x12, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x52, - 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, - 0x5d, 0x0a, 0x16, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x66, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x08, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x4d, + 0x65, 0x6d, 0x6f, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x10, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x4d, 0x65, 0x6d, 0x6f, 0x12, 0x44, + 0x0a, 0x0d, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, + 0x9c, 0x01, 0x0a, 0x15, 0x50, 0x72, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x06, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x07, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xe3, + 0x01, 0x0a, 0x12, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, + 0x3f, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x14, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x50, - 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x70, 0x76, 0x31, 0x52, 0x10, - 0x6d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x6b, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x66, 0x65, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x12, 0x42, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x07, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xe8, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, + 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x12, 0x4c, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0e, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x45, + 0x0a, 0x0e, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x1a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, - 0x65, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, - 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x47, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x43, 0x70, 0x76, - 0x32, 0x52, 0x0a, 0x67, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x4c, 0x0a, - 0x12, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x11, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0f, 0x70, - 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x52, 0x0e, 0x70, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x5f, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, + 0x48, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x72, + 0x61, 0x77, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x48, 0x00, 0x52, 0x0a, 0x72, 0x61, 0x77, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x09, + 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xd3, 0x01, 0x0a, 0x11, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3b, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, 0x70, + 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x06, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x07, + 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, + 0x32, 0x0a, 0x1a, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x30, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x80, 0x08, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x56, 0x30, 0x12, 0x52, 0x0a, 0x13, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, + 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x12, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, + 0x43, 0x0a, 0x0f, 0x65, 0x75, 0x72, 0x6f, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x65, 0x72, + 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x52, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x65, 0x75, 0x72, 0x6f, 0x50, 0x65, 0x72, 0x45, 0x6e, + 0x65, 0x72, 0x67, 0x79, 0x12, 0x48, 0x0a, 0x12, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f, 0x63, 0x63, + 0x64, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x65, 0x75, 0x72, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x52, 0x0f, 0x6d, + 0x69, 0x63, 0x72, 0x6f, 0x43, 0x63, 0x64, 0x50, 0x65, 0x72, 0x45, 0x75, 0x72, 0x6f, 0x12, 0x48, + 0x0a, 0x15, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, + 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x52, 0x13, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, + 0x77, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x73, 0x12, 0x5d, 0x0a, 0x16, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x52, 0x14, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x50, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x74, 0x5f, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x70, 0x76, 0x30, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6b, 0x0a, 0x1c, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x64, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1a, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x72, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x61, 0x73, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x0a, 0x67, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x73, 0x12, 0x4c, 0x0a, 0x12, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x11, 0x66, + 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x56, 0x0a, 0x1c, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x62, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x19, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x46, + 0x6f, 0x72, 0x42, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x3b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x74, + 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x69, 0x67, 0x68, + 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x08, 0x72, 0x6f, 0x6f, + 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x3f, 0x0a, 0x0b, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x65, - 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x74, - 0x4b, 0x65, 0x79, 0x73, 0x12, 0x3f, 0x0a, 0x0b, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x5f, 0x6b, - 0x65, 0x79, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, - 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x65, 0x72, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x0a, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x31, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x5f, - 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x31, 0x52, 0x0a, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x32, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x7a, 0x0a, 0x21, 0x66, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, - 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x52, 0x1f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x22, 0xbb, 0x01, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x32, 0x0a, 0x02, 0x76, 0x30, 0x18, 0x01, 0x20, + 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x0a, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x31, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, + 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x30, 0x52, 0x0a, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x32, 0x4b, 0x65, 0x79, 0x73, 0x22, 0xce, 0x08, 0x0a, 0x11, 0x43, 0x68, 0x61, + 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x56, 0x31, 0x12, 0x52, + 0x0a, 0x13, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x69, + 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x12, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, + 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0f, 0x65, 0x75, 0x72, 0x6f, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x65, + 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x65, 0x75, 0x72, 0x6f, 0x50, 0x65, + 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x48, 0x0a, 0x12, 0x6d, 0x69, 0x63, 0x72, 0x6f, + 0x5f, 0x63, 0x63, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x65, 0x75, 0x72, 0x6f, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, + 0x52, 0x0f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x43, 0x63, 0x64, 0x50, 0x65, 0x72, 0x45, 0x75, 0x72, + 0x6f, 0x12, 0x56, 0x0a, 0x13, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, + 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x43, 0x70, 0x76, 0x31, 0x52, 0x12, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x43, 0x70, 0x76, 0x31, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5d, 0x0a, 0x16, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x14, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x50, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x70, 0x76, 0x31, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6b, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x52, 0x0a, 0x67, 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, + 0x4c, 0x0a, 0x12, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x11, 0x66, 0x6f, 0x75, 0x6e, + 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4a, 0x0a, + 0x0f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x52, 0x0e, 0x70, 0x6f, 0x6f, 0x6c, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, + 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x69, 0x67, + 0x68, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x08, 0x72, 0x6f, + 0x6f, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x3f, 0x0a, 0x0b, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x31, + 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x69, 0x67, 0x68, + 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x0a, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x31, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x32, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x31, 0x52, 0x0a, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x32, 0x4b, 0x65, 0x79, 0x73, 0x22, 0xd3, 0x09, 0x0a, 0x11, 0x43, 0x68, + 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x56, 0x32, 0x12, + 0x57, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, + 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x56, 0x31, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x43, 0x0a, 0x0f, 0x65, 0x75, 0x72, 0x6f, + 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x52, 0x0d, + 0x65, 0x75, 0x72, 0x6f, 0x50, 0x65, 0x72, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x48, 0x0a, + 0x12, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f, 0x63, 0x63, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x65, + 0x75, 0x72, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x52, 0x0f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x43, 0x63, 0x64, + 0x50, 0x65, 0x72, 0x45, 0x75, 0x72, 0x6f, 0x12, 0x56, 0x0a, 0x13, 0x63, 0x6f, 0x6f, 0x6c, 0x64, + 0x6f, 0x77, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x52, 0x12, 0x63, 0x6f, 0x6f, + 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, + 0x4a, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, 0x70, 0x76, 0x31, 0x52, 0x0e, 0x74, 0x69, 0x6d, + 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5d, 0x0a, 0x16, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x52, 0x14, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x50, 0x0a, 0x11, 0x6d, 0x69, + 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x70, 0x76, 0x31, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x74, + 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6b, 0x0a, 0x1c, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, + 0x65, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1a, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x44, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0b, 0x67, 0x61, 0x73, + 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x47, + 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x43, 0x70, 0x76, 0x32, 0x52, 0x0a, 0x67, + 0x61, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x4c, 0x0a, 0x12, 0x66, 0x6f, 0x75, + 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x11, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x43, + 0x70, 0x76, 0x31, 0x52, 0x0e, 0x70, 0x6f, 0x6f, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x65, 0x72, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x4b, 0x65, 0x79, 0x73, + 0x12, 0x3f, 0x0a, 0x0b, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x0a, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x4b, 0x65, 0x79, + 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x5f, 0x6b, 0x65, 0x79, 0x73, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x31, 0x52, 0x0a, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x4b, + 0x65, 0x79, 0x73, 0x12, 0x7a, 0x0a, 0x21, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x46, + 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x74, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x1f, + 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x74, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, + 0xbb, 0x01, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x12, 0x32, 0x0a, 0x02, 0x76, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x56, + 0x30, 0x48, 0x00, 0x52, 0x02, 0x76, 0x30, 0x12, 0x32, 0x0a, 0x02, 0x76, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x56, 0x30, 0x48, 0x00, 0x52, 0x02, 0x76, 0x30, 0x12, 0x32, 0x0a, 0x02, 0x76, - 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x65, 0x72, 0x73, 0x56, 0x31, 0x48, 0x00, 0x52, 0x02, 0x76, 0x31, 0x12, 0x32, 0x0a, 0x02, 0x76, + 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x56, 0x31, 0x48, 0x00, 0x52, 0x02, 0x76, 0x31, 0x12, - 0x32, 0x0a, 0x02, 0x76, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, - 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x56, 0x32, 0x48, 0x00, 0x52, - 0x02, 0x76, 0x32, 0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x22, 0x78, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x61, 0x72, 0x74, 0x79, 0x12, 0x2c, 0x0a, - 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, - 0x65, 0x72, 0x49, 0x64, 0x52, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x77, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x77, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x22, 0x29, 0x0a, 0x11, 0x46, - 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xf8, 0x01, 0x0a, 0x13, 0x46, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x2e, - 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x36, - 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, - 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, - 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x30, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, - 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x6e, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, - 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, - 0x50, 0x61, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, - 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x18, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x2a, - 0x0a, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, - 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x48, 0x00, - 0x52, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x79, 0x22, 0xd2, 0x02, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, - 0x6d, 0x12, 0x32, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x52, - 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x54, 0x0a, 0x13, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, - 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x12, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5a, 0x0a, 0x15, 0x63, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, - 0x00, 0x52, 0x14, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, - 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x2a, 0x6a, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x6e, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x56, 0x32, 0x48, 0x00, 0x52, 0x02, 0x76, 0x32, 0x42, + 0x0c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x78, 0x0a, + 0x18, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x79, 0x50, 0x61, 0x72, 0x74, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x62, 0x61, 0x6b, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, + 0x52, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x22, 0x29, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0xf8, 0x01, 0x0a, 0x13, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, + 0x61, 0x73, 0x68, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x36, 0x0a, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x12, 0x30, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x05, 0x64, + 0x65, 0x6c, 0x61, 0x79, 0x12, 0x47, 0x0a, 0x0a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x61, 0x72, 0x74, + 0x79, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x22, 0x8f, 0x01, + 0x0a, 0x18, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x2a, 0x0a, 0x04, 0x6e, 0x6f, + 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, + 0xd2, 0x02, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x32, 0x0a, + 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x52, 0x04, 0x68, 0x61, 0x73, + 0x68, 0x12, 0x54, 0x0a, 0x13, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x12, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5a, 0x0a, 0x15, 0x63, 0x72, 0x65, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x14, 0x63, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, + 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x69, 0x74, 0x65, 0x6d, 0x22, 0xf7, 0x02, 0x0a, 0x15, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, + 0x0a, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, + 0x6b, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x3e, + 0x0a, 0x0f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6b, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0e, + 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x49, + 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0e, 0x65, 0x71, 0x75, + 0x69, 0x74, 0x79, 0x5f, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0d, 0x65, 0x71, 0x75, 0x69, 0x74, 0x79, + 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x12, 0x42, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x64, 0x43, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x69, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x22, 0x27, + 0x0a, 0x0f, 0x51, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xaf, 0x02, 0x0a, 0x11, 0x51, 0x75, 0x6f, 0x72, + 0x75, 0x6d, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, + 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x52, 0x09, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x05, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x4f, + 0x0a, 0x13, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x6f, 0x72, + 0x75, 0x6d, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x12, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, + 0x38, 0x0a, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x0b, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0x74, 0x0a, 0x0e, 0x46, 0x69, 0x6e, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x2a, 0x0a, 0x05, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x6f, 0x75, 0x6e, 0x64, + 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x36, 0x0a, 0x0a, 0x66, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, + 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x6b, 0x65, + 0x72, 0x49, 0x64, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x73, 0x22, + 0x28, 0x0a, 0x10, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xeb, 0x02, 0x0a, 0x12, 0x54, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x31, 0x0a, 0x09, + 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, + 0x50, 0x0a, 0x15, 0x71, 0x63, 0x5f, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x5f, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x46, + 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x12, 0x71, + 0x63, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x12, 0x52, 0x0a, 0x16, 0x71, 0x63, 0x5f, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x5f, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x52, 0x6f, 0x75, 0x6e, 0x64, + 0x52, 0x13, 0x71, 0x63, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x50, 0x0a, 0x13, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x52, 0x12, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x26, 0x0a, 0x0e, 0x53, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0xea, 0x01, 0x0a, 0x16, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x69, + 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x71, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x51, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x52, 0x0b, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x51, 0x63, 0x12, + 0x43, 0x0a, 0x0c, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x5f, 0x71, 0x63, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x43, 0x65, 0x72, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x6f, 0x72, 0x51, 0x63, 0x12, 0x46, 0x0a, 0x0f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, + 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x0e, 0x73, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0xf4, 0x02, 0x0a, + 0x11, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x73, 0x12, 0x54, 0x0a, 0x12, 0x71, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x5f, 0x63, 0x65, 0x72, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x51, + 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x48, 0x00, 0x52, 0x11, 0x71, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x13, 0x74, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x43, 0x65, 0x72, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x48, 0x01, 0x52, 0x12, 0x74, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x64, 0x0a, 0x18, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x48, 0x02, 0x52, 0x16, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x71, 0x75, 0x6f, 0x72, + 0x75, 0x6d, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x22, 0x84, 0x01, 0x0a, 0x0c, 0x57, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x42, + 0x61, 0x6b, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x12, 0x2e, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x22, 0xf9, 0x01, 0x0a, 0x0d, 0x44, + 0x72, 0x79, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x10, + 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x72, 0x79, + 0x52, 0x75, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, + 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x4e, 0x0a, 0x0f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x8c, 0x02, 0x0a, 0x10, 0x44, 0x72, 0x79, 0x52, 0x75, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x51, 0x0a, 0x10, 0x67, + 0x65, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x0e, + 0x67, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4c, + 0x0a, 0x11, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x67, 0x65, 0x74, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4e, 0x0a, 0x0f, + 0x69, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, + 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x49, 0x6e, 0x76, 0x6f, + 0x6b, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x6e, + 0x76, 0x6f, 0x6b, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0xe7, 0x02, 0x0a, 0x14, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, + 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x35, + 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x76, 0x6f, 0x6b, + 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x3a, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x09, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x52, 0x06, 0x65, 0x6e, 0x65, + 0x72, 0x67, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x22, + 0xff, 0x01, 0x0a, 0x14, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0d, 0x73, 0x65, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x65, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4c, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, + 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x4d, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x74, 0x54, 0x6f, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x5f, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, + 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x75, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x7d, 0x0a, 0x13, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x4d, 0x69, 0x6e, 0x74, 0x54, + 0x6f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x8a, 0x02, 0x0a, 0x11, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x3a, 0x0a, + 0x0d, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x52, 0x0c, 0x65, 0x6e, 0x65, + 0x72, 0x67, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x07, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x3e, 0x0a, + 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0x43, 0x0a, + 0x0f, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x22, 0xda, 0x01, 0x0a, 0x0e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x40, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x12, 0x3e, 0x0a, 0x0f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x6d, + 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x65, + 0x72, 0x67, 0x79, 0x52, 0x0e, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, + 0x69, 0x6e, 0x67, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xd4, 0x0a, 0x0a, 0x13, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x08, 0x6e, 0x6f, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x6f, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x07, 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x5a, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, + 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x60, 0x0a, 0x11, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x63, + 0x0a, 0x12, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, + 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, + 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x48, + 0x00, 0x52, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, + 0x75, 0x6e, 0x64, 0x12, 0x60, 0x0a, 0x11, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x76, + 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, + 0x72, 0x79, 0x52, 0x75, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x76, 0x65, 0x72, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x6b, 0x0a, 0x14, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x5f, 0x69, 0x6e, 0x73, 0x75, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, + 0x6e, 0x73, 0x75, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x13, 0x62, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x75, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, + 0x6e, 0x74, 0x12, 0x68, 0x0a, 0x13, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x69, 0x6e, 0x73, + 0x75, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x35, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x49, 0x6e, 0x73, 0x75, 0x66, 0x66, + 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x12, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, + 0x49, 0x6e, 0x73, 0x75, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x57, 0x0a, 0x0d, + 0x69, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, + 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x46, 0x61, + 0x69, 0x6c, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x46, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x1a, 0x09, 0x0a, 0x07, 0x4e, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x1a, 0x0f, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, + 0x64, 0x1a, 0x11, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x46, + 0x6f, 0x75, 0x6e, 0x64, 0x1a, 0x12, 0x0a, 0x10, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x1a, 0x4b, 0x0a, 0x0f, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x4f, 0x76, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x38, 0x0a, 0x0c, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, + 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x1a, 0x97, 0x01, 0x0a, 0x13, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x49, 0x6e, 0x73, 0x75, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, + 0x0f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0e, 0x72, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, + 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0f, + 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x1a, + 0x54, 0x0a, 0x12, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x49, 0x6e, 0x73, 0x75, 0x66, 0x66, 0x69, + 0x63, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x0f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, + 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, + 0x6e, 0x65, 0x72, 0x67, 0x79, 0x52, 0x0e, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x64, 0x1a, 0xb5, 0x01, 0x0a, 0x0d, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, + 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, + 0x0b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x36, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x52, 0x0a, 0x75, 0x73, 0x65, + 0x64, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x33, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, + 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xaf, 0x0a, 0x0a, 0x15, 0x44, 0x72, 0x79, 0x52, 0x75, + 0x6e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x65, 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, + 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x72, 0x79, + 0x52, 0x75, 0x6e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x61, + 0x64, 0x65, 0x64, 0x48, 0x00, 0x52, 0x10, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x12, 0x3f, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x0c, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5f, 0x0a, 0x10, + 0x69, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, + 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x53, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6e, 0x76, + 0x6f, 0x6b, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x69, 0x6e, + 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x12, 0x58, 0x0a, + 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x53, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x53, 0x65, 0x74, 0x12, 0x62, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x74, 0x65, + 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, + 0x76, 0x32, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x54, + 0x6f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x74, + 0x65, 0x64, 0x54, 0x6f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x6d, 0x0a, 0x14, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, + 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x1a, 0xdd, 0x01, 0x0a, 0x10, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x12, + 0x45, 0x0a, 0x11, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x48, 0x61, 0x73, 0x68, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x49, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x0e, 0x0a, 0x0c, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x53, 0x65, 0x74, 0x1a, 0x11, 0x0a, 0x0f, 0x4d, 0x69, + 0x6e, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xca, 0x01, + 0x0a, 0x13, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x0b, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, + 0x63, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67, + 0x79, 0x52, 0x0a, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x42, 0x0a, + 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xbf, 0x01, 0x0a, 0x0d, 0x49, + 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0c, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x65, + 0x72, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x63, + 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, + 0x52, 0x0a, 0x75, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x3d, 0x0a, 0x07, + 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x07, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0a, 0x0a, 0x08, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x6a, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x50, 0x45, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x50, 0x45, 0x4e, 0x5f, 0x53, 0x54, 0x41, @@ -25198,29 +28337,27 @@ var file_types_proto_rawDesc = []byte{ 0x16, 0x0a, 0x12, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x35, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x36, 0x10, 0x05, 0x42, - 0x48, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x50, 0x01, 0x5a, 0x17, 0x63, 0x6f, 0x6e, - 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2d, 0x67, 0x6f, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0xaa, 0x02, 0x12, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, - 0x6d, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x35, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, + 0x6d, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x32, 0x50, 0x01, 0x5a, 0x04, 0x2e, 0x2f, 0x70, + 0x62, 0xaa, 0x02, 0x12, 0x43, 0x6f, 0x6e, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x75, 0x6d, 0x2e, 0x47, + 0x72, 0x70, 0x63, 0x2e, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_types_proto_rawDescOnce sync.Once - file_types_proto_rawDescData = file_types_proto_rawDesc + file_v2_concordium_types_proto_rawDescOnce sync.Once + file_v2_concordium_types_proto_rawDescData = file_v2_concordium_types_proto_rawDesc ) -func file_types_proto_rawDescGZIP() []byte { - file_types_proto_rawDescOnce.Do(func() { - file_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_types_proto_rawDescData) +func file_v2_concordium_types_proto_rawDescGZIP() []byte { + file_v2_concordium_types_proto_rawDescOnce.Do(func() { + file_v2_concordium_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_v2_concordium_types_proto_rawDescData) }) - return file_types_proto_rawDescData + return file_v2_concordium_types_proto_rawDescData } -var file_types_proto_enumTypes = make([]protoimpl.EnumInfo, 8) -var file_types_proto_msgTypes = make([]protoimpl.MessageInfo, 278) -var file_types_proto_goTypes = []interface{}{ +var file_v2_concordium_types_proto_enumTypes = make([]protoimpl.EnumInfo, 8) +var file_v2_concordium_types_proto_msgTypes = make([]protoimpl.MessageInfo, 312) +var file_v2_concordium_types_proto_goTypes = []interface{}{ (OpenStatus)(0), // 0: concordium.v2.OpenStatus (ContractVersion)(0), // 1: concordium.v2.ContractVersion (CredentialType)(0), // 2: concordium.v2.CredentialType @@ -25280,237 +28417,271 @@ var file_types_proto_goTypes = []interface{}{ (*AccountCredential)(nil), // 56: concordium.v2.AccountCredential (*AccountInfo)(nil), // 57: concordium.v2.AccountInfo (*BlockHashInput)(nil), // 58: concordium.v2.BlockHashInput - (*AccountIdentifierInput)(nil), // 59: concordium.v2.AccountIdentifierInput - (*AccountInfoRequest)(nil), // 60: concordium.v2.AccountInfoRequest - (*FinalizedBlockInfo)(nil), // 61: concordium.v2.FinalizedBlockInfo - (*AncestorsRequest)(nil), // 62: concordium.v2.AncestorsRequest - (*ModuleSourceRequest)(nil), // 63: concordium.v2.ModuleSourceRequest - (*ContractAddress)(nil), // 64: concordium.v2.ContractAddress - (*InstanceInfoRequest)(nil), // 65: concordium.v2.InstanceInfoRequest - (*InstanceInfo)(nil), // 66: concordium.v2.InstanceInfo - (*InstanceStateKVPair)(nil), // 67: concordium.v2.InstanceStateKVPair - (*InstanceStateLookupRequest)(nil), // 68: concordium.v2.InstanceStateLookupRequest - (*InstanceStateValueAtKey)(nil), // 69: concordium.v2.InstanceStateValueAtKey - (*ReceiveName)(nil), // 70: concordium.v2.ReceiveName - (*InitName)(nil), // 71: concordium.v2.InitName - (*Parameter)(nil), // 72: concordium.v2.Parameter - (*ContractStateV0)(nil), // 73: concordium.v2.ContractStateV0 - (*BlockItemStatus)(nil), // 74: concordium.v2.BlockItemStatus - (*BlockItemSummaryInBlock)(nil), // 75: concordium.v2.BlockItemSummaryInBlock - (*Energy)(nil), // 76: concordium.v2.Energy - (*Slot)(nil), // 77: concordium.v2.Slot - (*NextAccountSequenceNumber)(nil), // 78: concordium.v2.NextAccountSequenceNumber - (*Duration)(nil), // 79: concordium.v2.Duration - (*RejectReason)(nil), // 80: concordium.v2.RejectReason - (*ContractInitializedEvent)(nil), // 81: concordium.v2.ContractInitializedEvent - (*ContractEvent)(nil), // 82: concordium.v2.ContractEvent - (*InstanceUpdatedEvent)(nil), // 83: concordium.v2.InstanceUpdatedEvent - (*ContractTraceElement)(nil), // 84: concordium.v2.ContractTraceElement - (*BakerKeysEvent)(nil), // 85: concordium.v2.BakerKeysEvent - (*Memo)(nil), // 86: concordium.v2.Memo - (*BakerStakeUpdatedData)(nil), // 87: concordium.v2.BakerStakeUpdatedData - (*EncryptedAmountRemovedEvent)(nil), // 88: concordium.v2.EncryptedAmountRemovedEvent - (*NewEncryptedAmountEvent)(nil), // 89: concordium.v2.NewEncryptedAmountEvent - (*EncryptedSelfAmountAddedEvent)(nil), // 90: concordium.v2.EncryptedSelfAmountAddedEvent - (*RegisteredData)(nil), // 91: concordium.v2.RegisteredData - (*BakerEvent)(nil), // 92: concordium.v2.BakerEvent - (*DelegatorId)(nil), // 93: concordium.v2.DelegatorId - (*DelegationEvent)(nil), // 94: concordium.v2.DelegationEvent - (*AccountTransactionEffects)(nil), // 95: concordium.v2.AccountTransactionEffects - (*ElectionDifficulty)(nil), // 96: concordium.v2.ElectionDifficulty - (*TimeoutParameters)(nil), // 97: concordium.v2.TimeoutParameters - (*FinalizationCommitteeParameters)(nil), // 98: concordium.v2.FinalizationCommitteeParameters - (*ConsensusParametersV1)(nil), // 99: concordium.v2.ConsensusParametersV1 - (*ExchangeRate)(nil), // 100: concordium.v2.ExchangeRate - (*Ratio)(nil), // 101: concordium.v2.Ratio - (*UpdatePublicKey)(nil), // 102: concordium.v2.UpdatePublicKey - (*UpdateKeysThreshold)(nil), // 103: concordium.v2.UpdateKeysThreshold - (*UpdateKeysIndex)(nil), // 104: concordium.v2.UpdateKeysIndex - (*HigherLevelKeys)(nil), // 105: concordium.v2.HigherLevelKeys - (*AccessStructure)(nil), // 106: concordium.v2.AccessStructure - (*AuthorizationsV0)(nil), // 107: concordium.v2.AuthorizationsV0 - (*AuthorizationsV1)(nil), // 108: concordium.v2.AuthorizationsV1 - (*Description)(nil), // 109: concordium.v2.Description - (*ArInfo)(nil), // 110: concordium.v2.ArInfo - (*IpIdentity)(nil), // 111: concordium.v2.IpIdentity - (*IpInfo)(nil), // 112: concordium.v2.IpInfo - (*DurationSeconds)(nil), // 113: concordium.v2.DurationSeconds - (*InclusiveRangeAmountFraction)(nil), // 114: concordium.v2.InclusiveRangeAmountFraction - (*CommissionRanges)(nil), // 115: concordium.v2.CommissionRanges - (*CapitalBound)(nil), // 116: concordium.v2.CapitalBound - (*LeverageFactor)(nil), // 117: concordium.v2.LeverageFactor - (*Epoch)(nil), // 118: concordium.v2.Epoch - (*RewardPeriodLength)(nil), // 119: concordium.v2.RewardPeriodLength - (*MintRate)(nil), // 120: concordium.v2.MintRate - (*CooldownParametersCpv1)(nil), // 121: concordium.v2.CooldownParametersCpv1 - (*PoolParametersCpv1)(nil), // 122: concordium.v2.PoolParametersCpv1 - (*TimeParametersCpv1)(nil), // 123: concordium.v2.TimeParametersCpv1 - (*MintDistributionCpv1)(nil), // 124: concordium.v2.MintDistributionCpv1 - (*ProtocolUpdate)(nil), // 125: concordium.v2.ProtocolUpdate - (*MintDistributionCpv0)(nil), // 126: concordium.v2.MintDistributionCpv0 - (*TransactionFeeDistribution)(nil), // 127: concordium.v2.TransactionFeeDistribution - (*GasRewards)(nil), // 128: concordium.v2.GasRewards - (*GasRewardsCpv2)(nil), // 129: concordium.v2.GasRewardsCpv2 - (*BakerStakeThreshold)(nil), // 130: concordium.v2.BakerStakeThreshold - (*RootUpdate)(nil), // 131: concordium.v2.RootUpdate - (*Level1Update)(nil), // 132: concordium.v2.Level1Update - (*UpdatePayload)(nil), // 133: concordium.v2.UpdatePayload - (*AccountTransactionDetails)(nil), // 134: concordium.v2.AccountTransactionDetails - (*AccountCreationDetails)(nil), // 135: concordium.v2.AccountCreationDetails - (*TransactionTime)(nil), // 136: concordium.v2.TransactionTime - (*UpdateDetails)(nil), // 137: concordium.v2.UpdateDetails - (*BlockItemSummary)(nil), // 138: concordium.v2.BlockItemSummary - (*GenesisIndex)(nil), // 139: concordium.v2.GenesisIndex - (*ConsensusInfo)(nil), // 140: concordium.v2.ConsensusInfo - (*ArrivedBlockInfo)(nil), // 141: concordium.v2.ArrivedBlockInfo - (*CryptographicParameters)(nil), // 142: concordium.v2.CryptographicParameters - (*BlockInfo)(nil), // 143: concordium.v2.BlockInfo - (*PoolInfoRequest)(nil), // 144: concordium.v2.PoolInfoRequest - (*PoolPendingChange)(nil), // 145: concordium.v2.PoolPendingChange - (*PoolCurrentPaydayInfo)(nil), // 146: concordium.v2.PoolCurrentPaydayInfo - (*PoolInfoResponse)(nil), // 147: concordium.v2.PoolInfoResponse - (*PassiveDelegationInfo)(nil), // 148: concordium.v2.PassiveDelegationInfo - (*BlocksAtHeightRequest)(nil), // 149: concordium.v2.BlocksAtHeightRequest - (*BlocksAtHeightResponse)(nil), // 150: concordium.v2.BlocksAtHeightResponse - (*TokenomicsInfo)(nil), // 151: concordium.v2.TokenomicsInfo - (*InvokeInstanceRequest)(nil), // 152: concordium.v2.InvokeInstanceRequest - (*InvokeInstanceResponse)(nil), // 153: concordium.v2.InvokeInstanceResponse - (*GetPoolDelegatorsRequest)(nil), // 154: concordium.v2.GetPoolDelegatorsRequest - (*DelegatorInfo)(nil), // 155: concordium.v2.DelegatorInfo - (*DelegatorRewardPeriodInfo)(nil), // 156: concordium.v2.DelegatorRewardPeriodInfo - (*Branch)(nil), // 157: concordium.v2.Branch - (*LeadershipElectionNonce)(nil), // 158: concordium.v2.LeadershipElectionNonce - (*ElectionInfo)(nil), // 159: concordium.v2.ElectionInfo - (*BlockSpecialEvent)(nil), // 160: concordium.v2.BlockSpecialEvent - (*PendingUpdate)(nil), // 161: concordium.v2.PendingUpdate - (*NextUpdateSequenceNumbers)(nil), // 162: concordium.v2.NextUpdateSequenceNumbers - (*IpAddress)(nil), // 163: concordium.v2.IpAddress - (*Port)(nil), // 164: concordium.v2.Port - (*IpSocketAddress)(nil), // 165: concordium.v2.IpSocketAddress - (*PeerId)(nil), // 166: concordium.v2.PeerId - (*BannedPeer)(nil), // 167: concordium.v2.BannedPeer - (*BannedPeers)(nil), // 168: concordium.v2.BannedPeers - (*PeerToBan)(nil), // 169: concordium.v2.PeerToBan - (*DumpRequest)(nil), // 170: concordium.v2.DumpRequest - (*PeersInfo)(nil), // 171: concordium.v2.PeersInfo - (*NodeInfo)(nil), // 172: concordium.v2.NodeInfo - (*SendBlockItemRequest)(nil), // 173: concordium.v2.SendBlockItemRequest - (*CredentialDeployment)(nil), // 174: concordium.v2.CredentialDeployment - (*Signature)(nil), // 175: concordium.v2.Signature - (*SignatureMap)(nil), // 176: concordium.v2.SignatureMap - (*AccountSignatureMap)(nil), // 177: concordium.v2.AccountSignatureMap - (*AccountTransactionSignature)(nil), // 178: concordium.v2.AccountTransactionSignature - (*AccountTransactionHeader)(nil), // 179: concordium.v2.AccountTransactionHeader - (*InitContractPayload)(nil), // 180: concordium.v2.InitContractPayload - (*UpdateContractPayload)(nil), // 181: concordium.v2.UpdateContractPayload - (*TransferPayload)(nil), // 182: concordium.v2.TransferPayload - (*TransferWithMemoPayload)(nil), // 183: concordium.v2.TransferWithMemoPayload - (*AccountTransactionPayload)(nil), // 184: concordium.v2.AccountTransactionPayload - (*PreAccountTransaction)(nil), // 185: concordium.v2.PreAccountTransaction - (*AccountTransaction)(nil), // 186: concordium.v2.AccountTransaction - (*UpdateInstructionSignature)(nil), // 187: concordium.v2.UpdateInstructionSignature - (*UpdateInstructionHeader)(nil), // 188: concordium.v2.UpdateInstructionHeader - (*UpdateInstructionPayload)(nil), // 189: concordium.v2.UpdateInstructionPayload - (*UpdateInstruction)(nil), // 190: concordium.v2.UpdateInstruction - (*AccountTransactionSignHash)(nil), // 191: concordium.v2.AccountTransactionSignHash - (*CredentialsPerBlockLimit)(nil), // 192: concordium.v2.CredentialsPerBlockLimit - (*ChainParametersV0)(nil), // 193: concordium.v2.ChainParametersV0 - (*ChainParametersV1)(nil), // 194: concordium.v2.ChainParametersV1 - (*ChainParametersV2)(nil), // 195: concordium.v2.ChainParametersV2 - (*ChainParameters)(nil), // 196: concordium.v2.ChainParameters - (*FinalizationSummaryParty)(nil), // 197: concordium.v2.FinalizationSummaryParty - (*FinalizationIndex)(nil), // 198: concordium.v2.FinalizationIndex - (*FinalizationSummary)(nil), // 199: concordium.v2.FinalizationSummary - (*BlockFinalizationSummary)(nil), // 200: concordium.v2.BlockFinalizationSummary - (*BlockItem)(nil), // 201: concordium.v2.BlockItem - (*VersionedModuleSource_ModuleSourceV0)(nil), // 202: concordium.v2.VersionedModuleSource.ModuleSourceV0 - (*VersionedModuleSource_ModuleSourceV1)(nil), // 203: concordium.v2.VersionedModuleSource.ModuleSourceV1 - (*StakePendingChange_Reduce)(nil), // 204: concordium.v2.StakePendingChange.Reduce - (*AccountStakingInfo_Baker)(nil), // 205: concordium.v2.AccountStakingInfo.Baker - (*AccountStakingInfo_Delegator)(nil), // 206: concordium.v2.AccountStakingInfo.Delegator - nil, // 207: concordium.v2.CredentialPublicKeys.KeysEntry - nil, // 208: concordium.v2.Policy.AttributesEntry - nil, // 209: concordium.v2.CredentialCommitments.AttributesEntry - nil, // 210: concordium.v2.NormalCredentialValues.ArDataEntry - nil, // 211: concordium.v2.AccountInfo.CredsEntry - (*BlockHashInput_RelativeHeight)(nil), // 212: concordium.v2.BlockHashInput.RelativeHeight - (*InstanceInfo_V0)(nil), // 213: concordium.v2.InstanceInfo.V0 - (*InstanceInfo_V1)(nil), // 214: concordium.v2.InstanceInfo.V1 - (*BlockItemStatus_Committed)(nil), // 215: concordium.v2.BlockItemStatus.Committed - (*BlockItemStatus_Finalized)(nil), // 216: concordium.v2.BlockItemStatus.Finalized - (*RejectReason_InvalidInitMethod)(nil), // 217: concordium.v2.RejectReason.InvalidInitMethod - (*RejectReason_InvalidReceiveMethod)(nil), // 218: concordium.v2.RejectReason.InvalidReceiveMethod - (*RejectReason_AmountTooLarge)(nil), // 219: concordium.v2.RejectReason.AmountTooLarge - (*RejectReason_RejectedInit)(nil), // 220: concordium.v2.RejectReason.RejectedInit - (*RejectReason_RejectedReceive)(nil), // 221: concordium.v2.RejectReason.RejectedReceive - (*RejectReason_DuplicateCredIds)(nil), // 222: concordium.v2.RejectReason.DuplicateCredIds - (*RejectReason_NonExistentCredIds)(nil), // 223: concordium.v2.RejectReason.NonExistentCredIds - (*ContractTraceElement_Transferred)(nil), // 224: concordium.v2.ContractTraceElement.Transferred - (*ContractTraceElement_Interrupted)(nil), // 225: concordium.v2.ContractTraceElement.Interrupted - (*ContractTraceElement_Resumed)(nil), // 226: concordium.v2.ContractTraceElement.Resumed - (*ContractTraceElement_Upgraded)(nil), // 227: concordium.v2.ContractTraceElement.Upgraded - (*BakerEvent_BakerAdded)(nil), // 228: concordium.v2.BakerEvent.BakerAdded - (*BakerEvent_BakerStakeIncreased)(nil), // 229: concordium.v2.BakerEvent.BakerStakeIncreased - (*BakerEvent_BakerStakeDecreased)(nil), // 230: concordium.v2.BakerEvent.BakerStakeDecreased - (*BakerEvent_BakerRestakeEarningsUpdated)(nil), // 231: concordium.v2.BakerEvent.BakerRestakeEarningsUpdated - (*BakerEvent_BakerSetOpenStatus)(nil), // 232: concordium.v2.BakerEvent.BakerSetOpenStatus - (*BakerEvent_BakerSetMetadataUrl)(nil), // 233: concordium.v2.BakerEvent.BakerSetMetadataUrl - (*BakerEvent_BakerSetTransactionFeeCommission)(nil), // 234: concordium.v2.BakerEvent.BakerSetTransactionFeeCommission - (*BakerEvent_BakerSetBakingRewardCommission)(nil), // 235: concordium.v2.BakerEvent.BakerSetBakingRewardCommission - (*BakerEvent_BakerSetFinalizationRewardCommission)(nil), // 236: concordium.v2.BakerEvent.BakerSetFinalizationRewardCommission - (*DelegationEvent_DelegationStakeIncreased)(nil), // 237: concordium.v2.DelegationEvent.DelegationStakeIncreased - (*DelegationEvent_DelegationStakeDecreased)(nil), // 238: concordium.v2.DelegationEvent.DelegationStakeDecreased - (*DelegationEvent_DelegationSetRestakeEarnings)(nil), // 239: concordium.v2.DelegationEvent.DelegationSetRestakeEarnings - (*DelegationEvent_DelegationSetDelegationTarget)(nil), // 240: concordium.v2.DelegationEvent.DelegationSetDelegationTarget - (*AccountTransactionEffects_None)(nil), // 241: concordium.v2.AccountTransactionEffects.None - (*AccountTransactionEffects_ContractUpdateIssued)(nil), // 242: concordium.v2.AccountTransactionEffects.ContractUpdateIssued - (*AccountTransactionEffects_AccountTransfer)(nil), // 243: concordium.v2.AccountTransactionEffects.AccountTransfer - (*AccountTransactionEffects_BakerStakeUpdated)(nil), // 244: concordium.v2.AccountTransactionEffects.BakerStakeUpdated - (*AccountTransactionEffects_EncryptedAmountTransferred)(nil), // 245: concordium.v2.AccountTransactionEffects.EncryptedAmountTransferred - (*AccountTransactionEffects_TransferredToPublic)(nil), // 246: concordium.v2.AccountTransactionEffects.TransferredToPublic - (*AccountTransactionEffects_TransferredWithSchedule)(nil), // 247: concordium.v2.AccountTransactionEffects.TransferredWithSchedule - (*AccountTransactionEffects_CredentialsUpdated)(nil), // 248: concordium.v2.AccountTransactionEffects.CredentialsUpdated - (*AccountTransactionEffects_BakerConfigured)(nil), // 249: concordium.v2.AccountTransactionEffects.BakerConfigured - (*AccountTransactionEffects_DelegationConfigured)(nil), // 250: concordium.v2.AccountTransactionEffects.DelegationConfigured - (*ArInfo_ArIdentity)(nil), // 251: concordium.v2.ArInfo.ArIdentity - (*ArInfo_ArPublicKey)(nil), // 252: concordium.v2.ArInfo.ArPublicKey - (*IpInfo_IpVerifyKey)(nil), // 253: concordium.v2.IpInfo.IpVerifyKey - (*IpInfo_IpCdiVerifyKey)(nil), // 254: concordium.v2.IpInfo.IpCdiVerifyKey - (*BlockItemSummary_TransactionIndex)(nil), // 255: concordium.v2.BlockItemSummary.TransactionIndex - (*PoolPendingChange_Reduce)(nil), // 256: concordium.v2.PoolPendingChange.Reduce - (*PoolPendingChange_Remove)(nil), // 257: concordium.v2.PoolPendingChange.Remove - (*BlocksAtHeightRequest_Absolute)(nil), // 258: concordium.v2.BlocksAtHeightRequest.Absolute - (*BlocksAtHeightRequest_Relative)(nil), // 259: concordium.v2.BlocksAtHeightRequest.Relative - (*TokenomicsInfo_V0)(nil), // 260: concordium.v2.TokenomicsInfo.V0 - (*TokenomicsInfo_V1)(nil), // 261: concordium.v2.TokenomicsInfo.V1 - (*InvokeInstanceResponse_Failure)(nil), // 262: concordium.v2.InvokeInstanceResponse.Failure - (*InvokeInstanceResponse_Success)(nil), // 263: concordium.v2.InvokeInstanceResponse.Success - (*ElectionInfo_Baker)(nil), // 264: concordium.v2.ElectionInfo.Baker - (*BlockSpecialEvent_AccountAmounts)(nil), // 265: concordium.v2.BlockSpecialEvent.AccountAmounts - (*BlockSpecialEvent_BakingRewards)(nil), // 266: concordium.v2.BlockSpecialEvent.BakingRewards - (*BlockSpecialEvent_Mint)(nil), // 267: concordium.v2.BlockSpecialEvent.Mint - (*BlockSpecialEvent_FinalizationRewards)(nil), // 268: concordium.v2.BlockSpecialEvent.FinalizationRewards - (*BlockSpecialEvent_BlockReward)(nil), // 269: concordium.v2.BlockSpecialEvent.BlockReward - (*BlockSpecialEvent_PaydayFoundationReward)(nil), // 270: concordium.v2.BlockSpecialEvent.PaydayFoundationReward - (*BlockSpecialEvent_PaydayAccountReward)(nil), // 271: concordium.v2.BlockSpecialEvent.PaydayAccountReward - (*BlockSpecialEvent_BlockAccrueReward)(nil), // 272: concordium.v2.BlockSpecialEvent.BlockAccrueReward - (*BlockSpecialEvent_PaydayPoolReward)(nil), // 273: concordium.v2.BlockSpecialEvent.PaydayPoolReward - (*BlockSpecialEvent_AccountAmounts_Entry)(nil), // 274: concordium.v2.BlockSpecialEvent.AccountAmounts.Entry - (*PeersInfo_Peer)(nil), // 275: concordium.v2.PeersInfo.Peer - (*PeersInfo_Peer_NetworkStats)(nil), // 276: concordium.v2.PeersInfo.Peer.NetworkStats - (*NodeInfo_NetworkInfo)(nil), // 277: concordium.v2.NodeInfo.NetworkInfo - (*NodeInfo_BakerConsensusInfo)(nil), // 278: concordium.v2.NodeInfo.BakerConsensusInfo - (*NodeInfo_Node)(nil), // 279: concordium.v2.NodeInfo.Node - (*NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo)(nil), // 280: concordium.v2.NodeInfo.BakerConsensusInfo.ActiveBakerCommitteeInfo - (*NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo)(nil), // 281: concordium.v2.NodeInfo.BakerConsensusInfo.ActiveFinalizerCommitteeInfo - nil, // 282: concordium.v2.SignatureMap.SignaturesEntry - nil, // 283: concordium.v2.AccountSignatureMap.SignaturesEntry - nil, // 284: concordium.v2.AccountTransactionSignature.SignaturesEntry - nil, // 285: concordium.v2.UpdateInstructionSignature.SignaturesEntry -} -var file_types_proto_depIdxs = []int32{ - 202, // 0: concordium.v2.VersionedModuleSource.v0:type_name -> concordium.v2.VersionedModuleSource.ModuleSourceV0 - 203, // 1: concordium.v2.VersionedModuleSource.v1:type_name -> concordium.v2.VersionedModuleSource.ModuleSourceV1 + (*EpochRequest)(nil), // 59: concordium.v2.EpochRequest + (*AccountIdentifierInput)(nil), // 60: concordium.v2.AccountIdentifierInput + (*AccountInfoRequest)(nil), // 61: concordium.v2.AccountInfoRequest + (*FinalizedBlockInfo)(nil), // 62: concordium.v2.FinalizedBlockInfo + (*AncestorsRequest)(nil), // 63: concordium.v2.AncestorsRequest + (*ModuleSourceRequest)(nil), // 64: concordium.v2.ModuleSourceRequest + (*ContractAddress)(nil), // 65: concordium.v2.ContractAddress + (*InstanceInfoRequest)(nil), // 66: concordium.v2.InstanceInfoRequest + (*InstanceInfo)(nil), // 67: concordium.v2.InstanceInfo + (*InstanceStateKVPair)(nil), // 68: concordium.v2.InstanceStateKVPair + (*InstanceStateLookupRequest)(nil), // 69: concordium.v2.InstanceStateLookupRequest + (*InstanceStateValueAtKey)(nil), // 70: concordium.v2.InstanceStateValueAtKey + (*ReceiveName)(nil), // 71: concordium.v2.ReceiveName + (*InitName)(nil), // 72: concordium.v2.InitName + (*Parameter)(nil), // 73: concordium.v2.Parameter + (*ContractStateV0)(nil), // 74: concordium.v2.ContractStateV0 + (*BlockItemStatus)(nil), // 75: concordium.v2.BlockItemStatus + (*BlockItemSummaryInBlock)(nil), // 76: concordium.v2.BlockItemSummaryInBlock + (*Energy)(nil), // 77: concordium.v2.Energy + (*Slot)(nil), // 78: concordium.v2.Slot + (*NextAccountSequenceNumber)(nil), // 79: concordium.v2.NextAccountSequenceNumber + (*Duration)(nil), // 80: concordium.v2.Duration + (*RejectReason)(nil), // 81: concordium.v2.RejectReason + (*ContractInitializedEvent)(nil), // 82: concordium.v2.ContractInitializedEvent + (*ContractEvent)(nil), // 83: concordium.v2.ContractEvent + (*InstanceUpdatedEvent)(nil), // 84: concordium.v2.InstanceUpdatedEvent + (*ContractTraceElement)(nil), // 85: concordium.v2.ContractTraceElement + (*BakerKeysEvent)(nil), // 86: concordium.v2.BakerKeysEvent + (*Memo)(nil), // 87: concordium.v2.Memo + (*BakerStakeUpdatedData)(nil), // 88: concordium.v2.BakerStakeUpdatedData + (*EncryptedAmountRemovedEvent)(nil), // 89: concordium.v2.EncryptedAmountRemovedEvent + (*NewEncryptedAmountEvent)(nil), // 90: concordium.v2.NewEncryptedAmountEvent + (*EncryptedSelfAmountAddedEvent)(nil), // 91: concordium.v2.EncryptedSelfAmountAddedEvent + (*RegisteredData)(nil), // 92: concordium.v2.RegisteredData + (*BakerEvent)(nil), // 93: concordium.v2.BakerEvent + (*DelegatorId)(nil), // 94: concordium.v2.DelegatorId + (*DelegationEvent)(nil), // 95: concordium.v2.DelegationEvent + (*AccountTransactionEffects)(nil), // 96: concordium.v2.AccountTransactionEffects + (*ElectionDifficulty)(nil), // 97: concordium.v2.ElectionDifficulty + (*TimeoutParameters)(nil), // 98: concordium.v2.TimeoutParameters + (*FinalizationCommitteeParameters)(nil), // 99: concordium.v2.FinalizationCommitteeParameters + (*ConsensusParametersV1)(nil), // 100: concordium.v2.ConsensusParametersV1 + (*ExchangeRate)(nil), // 101: concordium.v2.ExchangeRate + (*Ratio)(nil), // 102: concordium.v2.Ratio + (*UpdatePublicKey)(nil), // 103: concordium.v2.UpdatePublicKey + (*UpdateKeysThreshold)(nil), // 104: concordium.v2.UpdateKeysThreshold + (*UpdateKeysIndex)(nil), // 105: concordium.v2.UpdateKeysIndex + (*HigherLevelKeys)(nil), // 106: concordium.v2.HigherLevelKeys + (*AccessStructure)(nil), // 107: concordium.v2.AccessStructure + (*AuthorizationsV0)(nil), // 108: concordium.v2.AuthorizationsV0 + (*AuthorizationsV1)(nil), // 109: concordium.v2.AuthorizationsV1 + (*Description)(nil), // 110: concordium.v2.Description + (*ArInfo)(nil), // 111: concordium.v2.ArInfo + (*IpIdentity)(nil), // 112: concordium.v2.IpIdentity + (*IpInfo)(nil), // 113: concordium.v2.IpInfo + (*DurationSeconds)(nil), // 114: concordium.v2.DurationSeconds + (*InclusiveRangeAmountFraction)(nil), // 115: concordium.v2.InclusiveRangeAmountFraction + (*CommissionRanges)(nil), // 116: concordium.v2.CommissionRanges + (*CapitalBound)(nil), // 117: concordium.v2.CapitalBound + (*LeverageFactor)(nil), // 118: concordium.v2.LeverageFactor + (*Epoch)(nil), // 119: concordium.v2.Epoch + (*Round)(nil), // 120: concordium.v2.Round + (*RewardPeriodLength)(nil), // 121: concordium.v2.RewardPeriodLength + (*MintRate)(nil), // 122: concordium.v2.MintRate + (*CooldownParametersCpv1)(nil), // 123: concordium.v2.CooldownParametersCpv1 + (*PoolParametersCpv1)(nil), // 124: concordium.v2.PoolParametersCpv1 + (*TimeParametersCpv1)(nil), // 125: concordium.v2.TimeParametersCpv1 + (*MintDistributionCpv1)(nil), // 126: concordium.v2.MintDistributionCpv1 + (*ProtocolUpdate)(nil), // 127: concordium.v2.ProtocolUpdate + (*MintDistributionCpv0)(nil), // 128: concordium.v2.MintDistributionCpv0 + (*TransactionFeeDistribution)(nil), // 129: concordium.v2.TransactionFeeDistribution + (*GasRewards)(nil), // 130: concordium.v2.GasRewards + (*GasRewardsCpv2)(nil), // 131: concordium.v2.GasRewardsCpv2 + (*BakerStakeThreshold)(nil), // 132: concordium.v2.BakerStakeThreshold + (*RootUpdate)(nil), // 133: concordium.v2.RootUpdate + (*Level1Update)(nil), // 134: concordium.v2.Level1Update + (*UpdatePayload)(nil), // 135: concordium.v2.UpdatePayload + (*AccountTransactionDetails)(nil), // 136: concordium.v2.AccountTransactionDetails + (*AccountCreationDetails)(nil), // 137: concordium.v2.AccountCreationDetails + (*TransactionTime)(nil), // 138: concordium.v2.TransactionTime + (*UpdateDetails)(nil), // 139: concordium.v2.UpdateDetails + (*BlockItemSummary)(nil), // 140: concordium.v2.BlockItemSummary + (*GenesisIndex)(nil), // 141: concordium.v2.GenesisIndex + (*ConsensusInfo)(nil), // 142: concordium.v2.ConsensusInfo + (*ArrivedBlockInfo)(nil), // 143: concordium.v2.ArrivedBlockInfo + (*CryptographicParameters)(nil), // 144: concordium.v2.CryptographicParameters + (*BlockInfo)(nil), // 145: concordium.v2.BlockInfo + (*PoolInfoRequest)(nil), // 146: concordium.v2.PoolInfoRequest + (*PoolPendingChange)(nil), // 147: concordium.v2.PoolPendingChange + (*PoolCurrentPaydayInfo)(nil), // 148: concordium.v2.PoolCurrentPaydayInfo + (*PoolInfoResponse)(nil), // 149: concordium.v2.PoolInfoResponse + (*PassiveDelegationInfo)(nil), // 150: concordium.v2.PassiveDelegationInfo + (*BlocksAtHeightRequest)(nil), // 151: concordium.v2.BlocksAtHeightRequest + (*BlocksAtHeightResponse)(nil), // 152: concordium.v2.BlocksAtHeightResponse + (*TokenomicsInfo)(nil), // 153: concordium.v2.TokenomicsInfo + (*InvokeInstanceRequest)(nil), // 154: concordium.v2.InvokeInstanceRequest + (*InvokeInstanceResponse)(nil), // 155: concordium.v2.InvokeInstanceResponse + (*GetPoolDelegatorsRequest)(nil), // 156: concordium.v2.GetPoolDelegatorsRequest + (*DelegatorInfo)(nil), // 157: concordium.v2.DelegatorInfo + (*DelegatorRewardPeriodInfo)(nil), // 158: concordium.v2.DelegatorRewardPeriodInfo + (*Branch)(nil), // 159: concordium.v2.Branch + (*LeadershipElectionNonce)(nil), // 160: concordium.v2.LeadershipElectionNonce + (*ElectionInfo)(nil), // 161: concordium.v2.ElectionInfo + (*BlockSpecialEvent)(nil), // 162: concordium.v2.BlockSpecialEvent + (*PendingUpdate)(nil), // 163: concordium.v2.PendingUpdate + (*NextUpdateSequenceNumbers)(nil), // 164: concordium.v2.NextUpdateSequenceNumbers + (*IpAddress)(nil), // 165: concordium.v2.IpAddress + (*Port)(nil), // 166: concordium.v2.Port + (*IpSocketAddress)(nil), // 167: concordium.v2.IpSocketAddress + (*PeerId)(nil), // 168: concordium.v2.PeerId + (*BannedPeer)(nil), // 169: concordium.v2.BannedPeer + (*BannedPeers)(nil), // 170: concordium.v2.BannedPeers + (*PeerToBan)(nil), // 171: concordium.v2.PeerToBan + (*DumpRequest)(nil), // 172: concordium.v2.DumpRequest + (*PeersInfo)(nil), // 173: concordium.v2.PeersInfo + (*NodeInfo)(nil), // 174: concordium.v2.NodeInfo + (*SendBlockItemRequest)(nil), // 175: concordium.v2.SendBlockItemRequest + (*CredentialDeployment)(nil), // 176: concordium.v2.CredentialDeployment + (*Signature)(nil), // 177: concordium.v2.Signature + (*SignatureMap)(nil), // 178: concordium.v2.SignatureMap + (*AccountSignatureMap)(nil), // 179: concordium.v2.AccountSignatureMap + (*AccountTransactionSignature)(nil), // 180: concordium.v2.AccountTransactionSignature + (*AccountTransactionHeader)(nil), // 181: concordium.v2.AccountTransactionHeader + (*InitContractPayload)(nil), // 182: concordium.v2.InitContractPayload + (*UpdateContractPayload)(nil), // 183: concordium.v2.UpdateContractPayload + (*TransferPayload)(nil), // 184: concordium.v2.TransferPayload + (*TransferWithMemoPayload)(nil), // 185: concordium.v2.TransferWithMemoPayload + (*AccountTransactionPayload)(nil), // 186: concordium.v2.AccountTransactionPayload + (*PreAccountTransaction)(nil), // 187: concordium.v2.PreAccountTransaction + (*AccountTransaction)(nil), // 188: concordium.v2.AccountTransaction + (*UpdateInstructionHeader)(nil), // 189: concordium.v2.UpdateInstructionHeader + (*UpdateInstructionPayload)(nil), // 190: concordium.v2.UpdateInstructionPayload + (*UpdateInstruction)(nil), // 191: concordium.v2.UpdateInstruction + (*AccountTransactionSignHash)(nil), // 192: concordium.v2.AccountTransactionSignHash + (*CredentialsPerBlockLimit)(nil), // 193: concordium.v2.CredentialsPerBlockLimit + (*ChainParametersV0)(nil), // 194: concordium.v2.ChainParametersV0 + (*ChainParametersV1)(nil), // 195: concordium.v2.ChainParametersV1 + (*ChainParametersV2)(nil), // 196: concordium.v2.ChainParametersV2 + (*ChainParameters)(nil), // 197: concordium.v2.ChainParameters + (*FinalizationSummaryParty)(nil), // 198: concordium.v2.FinalizationSummaryParty + (*FinalizationIndex)(nil), // 199: concordium.v2.FinalizationIndex + (*FinalizationSummary)(nil), // 200: concordium.v2.FinalizationSummary + (*BlockFinalizationSummary)(nil), // 201: concordium.v2.BlockFinalizationSummary + (*BlockItem)(nil), // 202: concordium.v2.BlockItem + (*BakerRewardPeriodInfo)(nil), // 203: concordium.v2.BakerRewardPeriodInfo + (*QuorumSignature)(nil), // 204: concordium.v2.QuorumSignature + (*QuorumCertificate)(nil), // 205: concordium.v2.QuorumCertificate + (*FinalizerRound)(nil), // 206: concordium.v2.FinalizerRound + (*TimeoutSignature)(nil), // 207: concordium.v2.TimeoutSignature + (*TimeoutCertificate)(nil), // 208: concordium.v2.TimeoutCertificate + (*SuccessorProof)(nil), // 209: concordium.v2.SuccessorProof + (*EpochFinalizationEntry)(nil), // 210: concordium.v2.EpochFinalizationEntry + (*BlockCertificates)(nil), // 211: concordium.v2.BlockCertificates + (*WinningBaker)(nil), // 212: concordium.v2.WinningBaker + (*DryRunRequest)(nil), // 213: concordium.v2.DryRunRequest + (*DryRunStateQuery)(nil), // 214: concordium.v2.DryRunStateQuery + (*DryRunInvokeInstance)(nil), // 215: concordium.v2.DryRunInvokeInstance + (*DryRunStateOperation)(nil), // 216: concordium.v2.DryRunStateOperation + (*DryRunMintToAccount)(nil), // 217: concordium.v2.DryRunMintToAccount + (*DryRunTransaction)(nil), // 218: concordium.v2.DryRunTransaction + (*DryRunSignature)(nil), // 219: concordium.v2.DryRunSignature + (*DryRunResponse)(nil), // 220: concordium.v2.DryRunResponse + (*DryRunErrorResponse)(nil), // 221: concordium.v2.DryRunErrorResponse + (*DryRunSuccessResponse)(nil), // 222: concordium.v2.DryRunSuccessResponse + (*VersionedModuleSource_ModuleSourceV0)(nil), // 223: concordium.v2.VersionedModuleSource.ModuleSourceV0 + (*VersionedModuleSource_ModuleSourceV1)(nil), // 224: concordium.v2.VersionedModuleSource.ModuleSourceV1 + (*StakePendingChange_Reduce)(nil), // 225: concordium.v2.StakePendingChange.Reduce + (*AccountStakingInfo_Baker)(nil), // 226: concordium.v2.AccountStakingInfo.Baker + (*AccountStakingInfo_Delegator)(nil), // 227: concordium.v2.AccountStakingInfo.Delegator + nil, // 228: concordium.v2.CredentialPublicKeys.KeysEntry + nil, // 229: concordium.v2.Policy.AttributesEntry + nil, // 230: concordium.v2.CredentialCommitments.AttributesEntry + nil, // 231: concordium.v2.NormalCredentialValues.ArDataEntry + nil, // 232: concordium.v2.AccountInfo.CredsEntry + (*BlockHashInput_RelativeHeight)(nil), // 233: concordium.v2.BlockHashInput.RelativeHeight + (*EpochRequest_RelativeEpoch)(nil), // 234: concordium.v2.EpochRequest.RelativeEpoch + (*InstanceInfo_V0)(nil), // 235: concordium.v2.InstanceInfo.V0 + (*InstanceInfo_V1)(nil), // 236: concordium.v2.InstanceInfo.V1 + (*BlockItemStatus_Committed)(nil), // 237: concordium.v2.BlockItemStatus.Committed + (*BlockItemStatus_Finalized)(nil), // 238: concordium.v2.BlockItemStatus.Finalized + (*RejectReason_InvalidInitMethod)(nil), // 239: concordium.v2.RejectReason.InvalidInitMethod + (*RejectReason_InvalidReceiveMethod)(nil), // 240: concordium.v2.RejectReason.InvalidReceiveMethod + (*RejectReason_AmountTooLarge)(nil), // 241: concordium.v2.RejectReason.AmountTooLarge + (*RejectReason_RejectedInit)(nil), // 242: concordium.v2.RejectReason.RejectedInit + (*RejectReason_RejectedReceive)(nil), // 243: concordium.v2.RejectReason.RejectedReceive + (*RejectReason_DuplicateCredIds)(nil), // 244: concordium.v2.RejectReason.DuplicateCredIds + (*RejectReason_NonExistentCredIds)(nil), // 245: concordium.v2.RejectReason.NonExistentCredIds + (*ContractTraceElement_Transferred)(nil), // 246: concordium.v2.ContractTraceElement.Transferred + (*ContractTraceElement_Interrupted)(nil), // 247: concordium.v2.ContractTraceElement.Interrupted + (*ContractTraceElement_Resumed)(nil), // 248: concordium.v2.ContractTraceElement.Resumed + (*ContractTraceElement_Upgraded)(nil), // 249: concordium.v2.ContractTraceElement.Upgraded + (*BakerEvent_BakerAdded)(nil), // 250: concordium.v2.BakerEvent.BakerAdded + (*BakerEvent_BakerStakeIncreased)(nil), // 251: concordium.v2.BakerEvent.BakerStakeIncreased + (*BakerEvent_BakerStakeDecreased)(nil), // 252: concordium.v2.BakerEvent.BakerStakeDecreased + (*BakerEvent_BakerRestakeEarningsUpdated)(nil), // 253: concordium.v2.BakerEvent.BakerRestakeEarningsUpdated + (*BakerEvent_BakerSetOpenStatus)(nil), // 254: concordium.v2.BakerEvent.BakerSetOpenStatus + (*BakerEvent_BakerSetMetadataUrl)(nil), // 255: concordium.v2.BakerEvent.BakerSetMetadataUrl + (*BakerEvent_BakerSetTransactionFeeCommission)(nil), // 256: concordium.v2.BakerEvent.BakerSetTransactionFeeCommission + (*BakerEvent_BakerSetBakingRewardCommission)(nil), // 257: concordium.v2.BakerEvent.BakerSetBakingRewardCommission + (*BakerEvent_BakerSetFinalizationRewardCommission)(nil), // 258: concordium.v2.BakerEvent.BakerSetFinalizationRewardCommission + (*DelegationEvent_DelegationStakeIncreased)(nil), // 259: concordium.v2.DelegationEvent.DelegationStakeIncreased + (*DelegationEvent_DelegationStakeDecreased)(nil), // 260: concordium.v2.DelegationEvent.DelegationStakeDecreased + (*DelegationEvent_DelegationSetRestakeEarnings)(nil), // 261: concordium.v2.DelegationEvent.DelegationSetRestakeEarnings + (*DelegationEvent_DelegationSetDelegationTarget)(nil), // 262: concordium.v2.DelegationEvent.DelegationSetDelegationTarget + (*AccountTransactionEffects_None)(nil), // 263: concordium.v2.AccountTransactionEffects.None + (*AccountTransactionEffects_ContractUpdateIssued)(nil), // 264: concordium.v2.AccountTransactionEffects.ContractUpdateIssued + (*AccountTransactionEffects_AccountTransfer)(nil), // 265: concordium.v2.AccountTransactionEffects.AccountTransfer + (*AccountTransactionEffects_BakerStakeUpdated)(nil), // 266: concordium.v2.AccountTransactionEffects.BakerStakeUpdated + (*AccountTransactionEffects_EncryptedAmountTransferred)(nil), // 267: concordium.v2.AccountTransactionEffects.EncryptedAmountTransferred + (*AccountTransactionEffects_TransferredToPublic)(nil), // 268: concordium.v2.AccountTransactionEffects.TransferredToPublic + (*AccountTransactionEffects_TransferredWithSchedule)(nil), // 269: concordium.v2.AccountTransactionEffects.TransferredWithSchedule + (*AccountTransactionEffects_CredentialsUpdated)(nil), // 270: concordium.v2.AccountTransactionEffects.CredentialsUpdated + (*AccountTransactionEffects_BakerConfigured)(nil), // 271: concordium.v2.AccountTransactionEffects.BakerConfigured + (*AccountTransactionEffects_DelegationConfigured)(nil), // 272: concordium.v2.AccountTransactionEffects.DelegationConfigured + (*ArInfo_ArIdentity)(nil), // 273: concordium.v2.ArInfo.ArIdentity + (*ArInfo_ArPublicKey)(nil), // 274: concordium.v2.ArInfo.ArPublicKey + (*IpInfo_IpVerifyKey)(nil), // 275: concordium.v2.IpInfo.IpVerifyKey + (*IpInfo_IpCdiVerifyKey)(nil), // 276: concordium.v2.IpInfo.IpCdiVerifyKey + (*BlockItemSummary_TransactionIndex)(nil), // 277: concordium.v2.BlockItemSummary.TransactionIndex + (*PoolPendingChange_Reduce)(nil), // 278: concordium.v2.PoolPendingChange.Reduce + (*PoolPendingChange_Remove)(nil), // 279: concordium.v2.PoolPendingChange.Remove + (*BlocksAtHeightRequest_Absolute)(nil), // 280: concordium.v2.BlocksAtHeightRequest.Absolute + (*BlocksAtHeightRequest_Relative)(nil), // 281: concordium.v2.BlocksAtHeightRequest.Relative + (*TokenomicsInfo_V0)(nil), // 282: concordium.v2.TokenomicsInfo.V0 + (*TokenomicsInfo_V1)(nil), // 283: concordium.v2.TokenomicsInfo.V1 + (*InvokeInstanceResponse_Failure)(nil), // 284: concordium.v2.InvokeInstanceResponse.Failure + (*InvokeInstanceResponse_Success)(nil), // 285: concordium.v2.InvokeInstanceResponse.Success + (*ElectionInfo_Baker)(nil), // 286: concordium.v2.ElectionInfo.Baker + (*BlockSpecialEvent_AccountAmounts)(nil), // 287: concordium.v2.BlockSpecialEvent.AccountAmounts + (*BlockSpecialEvent_BakingRewards)(nil), // 288: concordium.v2.BlockSpecialEvent.BakingRewards + (*BlockSpecialEvent_Mint)(nil), // 289: concordium.v2.BlockSpecialEvent.Mint + (*BlockSpecialEvent_FinalizationRewards)(nil), // 290: concordium.v2.BlockSpecialEvent.FinalizationRewards + (*BlockSpecialEvent_BlockReward)(nil), // 291: concordium.v2.BlockSpecialEvent.BlockReward + (*BlockSpecialEvent_PaydayFoundationReward)(nil), // 292: concordium.v2.BlockSpecialEvent.PaydayFoundationReward + (*BlockSpecialEvent_PaydayAccountReward)(nil), // 293: concordium.v2.BlockSpecialEvent.PaydayAccountReward + (*BlockSpecialEvent_BlockAccrueReward)(nil), // 294: concordium.v2.BlockSpecialEvent.BlockAccrueReward + (*BlockSpecialEvent_PaydayPoolReward)(nil), // 295: concordium.v2.BlockSpecialEvent.PaydayPoolReward + (*BlockSpecialEvent_AccountAmounts_Entry)(nil), // 296: concordium.v2.BlockSpecialEvent.AccountAmounts.Entry + (*PeersInfo_Peer)(nil), // 297: concordium.v2.PeersInfo.Peer + (*PeersInfo_Peer_NetworkStats)(nil), // 298: concordium.v2.PeersInfo.Peer.NetworkStats + (*NodeInfo_NetworkInfo)(nil), // 299: concordium.v2.NodeInfo.NetworkInfo + (*NodeInfo_BakerConsensusInfo)(nil), // 300: concordium.v2.NodeInfo.BakerConsensusInfo + (*NodeInfo_Node)(nil), // 301: concordium.v2.NodeInfo.Node + (*NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo)(nil), // 302: concordium.v2.NodeInfo.BakerConsensusInfo.ActiveBakerCommitteeInfo + (*NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo)(nil), // 303: concordium.v2.NodeInfo.BakerConsensusInfo.ActiveFinalizerCommitteeInfo + nil, // 304: concordium.v2.SignatureMap.SignaturesEntry + nil, // 305: concordium.v2.AccountSignatureMap.SignaturesEntry + nil, // 306: concordium.v2.AccountTransactionSignature.SignaturesEntry + (*DryRunErrorResponse_NoState)(nil), // 307: concordium.v2.DryRunErrorResponse.NoState + (*DryRunErrorResponse_BlockNotFound)(nil), // 308: concordium.v2.DryRunErrorResponse.BlockNotFound + (*DryRunErrorResponse_AccountNotFound)(nil), // 309: concordium.v2.DryRunErrorResponse.AccountNotFound + (*DryRunErrorResponse_InstanceNotFound)(nil), // 310: concordium.v2.DryRunErrorResponse.InstanceNotFound + (*DryRunErrorResponse_AmountOverLimit)(nil), // 311: concordium.v2.DryRunErrorResponse.AmountOverLimit + (*DryRunErrorResponse_BalanceInsufficient)(nil), // 312: concordium.v2.DryRunErrorResponse.BalanceInsufficient + (*DryRunErrorResponse_EnergyInsufficient)(nil), // 313: concordium.v2.DryRunErrorResponse.EnergyInsufficient + (*DryRunErrorResponse_InvokeFailure)(nil), // 314: concordium.v2.DryRunErrorResponse.InvokeFailure + (*DryRunSuccessResponse_BlockStateLoaded)(nil), // 315: concordium.v2.DryRunSuccessResponse.BlockStateLoaded + (*DryRunSuccessResponse_TimestampSet)(nil), // 316: concordium.v2.DryRunSuccessResponse.TimestampSet + (*DryRunSuccessResponse_MintedToAccount)(nil), // 317: concordium.v2.DryRunSuccessResponse.MintedToAccount + (*DryRunSuccessResponse_TransactionExecuted)(nil), // 318: concordium.v2.DryRunSuccessResponse.TransactionExecuted + (*DryRunSuccessResponse_InvokeSuccess)(nil), // 319: concordium.v2.DryRunSuccessResponse.InvokeSuccess +} +var file_v2_concordium_types_proto_depIdxs = []int32{ + 223, // 0: concordium.v2.VersionedModuleSource.v0:type_name -> concordium.v2.VersionedModuleSource.ModuleSourceV0 + 224, // 1: concordium.v2.VersionedModuleSource.v1:type_name -> concordium.v2.VersionedModuleSource.ModuleSourceV1 19, // 2: concordium.v2.Release.timestamp:type_name -> concordium.v2.Timestamp 37, // 3: concordium.v2.Release.amount:type_name -> concordium.v2.Amount 11, // 4: concordium.v2.Release.transactions:type_name -> concordium.v2.TransactionHash @@ -25527,22 +28698,22 @@ var file_types_proto_depIdxs = []int32{ 26, // 15: concordium.v2.BakerInfo.election_key:type_name -> concordium.v2.BakerElectionVerifyKey 27, // 16: concordium.v2.BakerInfo.signature_key:type_name -> concordium.v2.BakerSignatureVerifyKey 28, // 17: concordium.v2.BakerInfo.aggregation_key:type_name -> concordium.v2.BakerAggregationVerifyKey - 204, // 18: concordium.v2.StakePendingChange.reduce:type_name -> concordium.v2.StakePendingChange.Reduce + 225, // 18: concordium.v2.StakePendingChange.reduce:type_name -> concordium.v2.StakePendingChange.Reduce 19, // 19: concordium.v2.StakePendingChange.remove:type_name -> concordium.v2.Timestamp 31, // 20: concordium.v2.CommissionRates.finalization:type_name -> concordium.v2.AmountFraction 31, // 21: concordium.v2.CommissionRates.baking:type_name -> concordium.v2.AmountFraction 31, // 22: concordium.v2.CommissionRates.transaction:type_name -> concordium.v2.AmountFraction 0, // 23: concordium.v2.BakerPoolInfo.open_status:type_name -> concordium.v2.OpenStatus 32, // 24: concordium.v2.BakerPoolInfo.commission_rates:type_name -> concordium.v2.CommissionRates - 205, // 25: concordium.v2.AccountStakingInfo.baker:type_name -> concordium.v2.AccountStakingInfo.Baker - 206, // 26: concordium.v2.AccountStakingInfo.delegator:type_name -> concordium.v2.AccountStakingInfo.Delegator + 226, // 25: concordium.v2.AccountStakingInfo.baker:type_name -> concordium.v2.AccountStakingInfo.Baker + 227, // 26: concordium.v2.AccountStakingInfo.delegator:type_name -> concordium.v2.AccountStakingInfo.Delegator 42, // 27: concordium.v2.Address.account:type_name -> concordium.v2.AccountAddress - 64, // 28: concordium.v2.Address.contract:type_name -> concordium.v2.ContractAddress - 207, // 29: concordium.v2.CredentialPublicKeys.keys:type_name -> concordium.v2.CredentialPublicKeys.KeysEntry + 65, // 28: concordium.v2.Address.contract:type_name -> concordium.v2.ContractAddress + 228, // 29: concordium.v2.CredentialPublicKeys.keys:type_name -> concordium.v2.CredentialPublicKeys.KeysEntry 39, // 30: concordium.v2.CredentialPublicKeys.threshold:type_name -> concordium.v2.SignatureThreshold 48, // 31: concordium.v2.Policy.created_at:type_name -> concordium.v2.YearMonth 48, // 32: concordium.v2.Policy.valid_to:type_name -> concordium.v2.YearMonth - 208, // 33: concordium.v2.Policy.attributes:type_name -> concordium.v2.Policy.AttributesEntry + 229, // 33: concordium.v2.Policy.attributes:type_name -> concordium.v2.Policy.AttributesEntry 45, // 34: concordium.v2.InitialCredentialValues.keys:type_name -> concordium.v2.CredentialPublicKeys 46, // 35: concordium.v2.InitialCredentialValues.cred_id:type_name -> concordium.v2.CredentialRegistrationId 47, // 36: concordium.v2.InitialCredentialValues.ip_id:type_name -> concordium.v2.IdentityProviderIdentity @@ -25550,21 +28721,21 @@ var file_types_proto_depIdxs = []int32{ 53, // 38: concordium.v2.CredentialCommitments.prf:type_name -> concordium.v2.Commitment 53, // 39: concordium.v2.CredentialCommitments.cred_counter:type_name -> concordium.v2.Commitment 53, // 40: concordium.v2.CredentialCommitments.max_accounts:type_name -> concordium.v2.Commitment - 209, // 41: concordium.v2.CredentialCommitments.attributes:type_name -> concordium.v2.CredentialCommitments.AttributesEntry + 230, // 41: concordium.v2.CredentialCommitments.attributes:type_name -> concordium.v2.CredentialCommitments.AttributesEntry 53, // 42: concordium.v2.CredentialCommitments.id_cred_sec_sharing_coeff:type_name -> concordium.v2.Commitment 45, // 43: concordium.v2.NormalCredentialValues.keys:type_name -> concordium.v2.CredentialPublicKeys 46, // 44: concordium.v2.NormalCredentialValues.cred_id:type_name -> concordium.v2.CredentialRegistrationId 47, // 45: concordium.v2.NormalCredentialValues.ip_id:type_name -> concordium.v2.IdentityProviderIdentity 49, // 46: concordium.v2.NormalCredentialValues.policy:type_name -> concordium.v2.Policy 52, // 47: concordium.v2.NormalCredentialValues.ar_threshold:type_name -> concordium.v2.ArThreshold - 210, // 48: concordium.v2.NormalCredentialValues.ar_data:type_name -> concordium.v2.NormalCredentialValues.ArDataEntry + 231, // 48: concordium.v2.NormalCredentialValues.ar_data:type_name -> concordium.v2.NormalCredentialValues.ArDataEntry 54, // 49: concordium.v2.NormalCredentialValues.commitments:type_name -> concordium.v2.CredentialCommitments 50, // 50: concordium.v2.AccountCredential.initial:type_name -> concordium.v2.InitialCredentialValues 55, // 51: concordium.v2.AccountCredential.normal:type_name -> concordium.v2.NormalCredentialValues 35, // 52: concordium.v2.AccountInfo.sequence_number:type_name -> concordium.v2.SequenceNumber 37, // 53: concordium.v2.AccountInfo.amount:type_name -> concordium.v2.Amount 22, // 54: concordium.v2.AccountInfo.schedule:type_name -> concordium.v2.ReleaseSchedule - 211, // 55: concordium.v2.AccountInfo.creds:type_name -> concordium.v2.AccountInfo.CredsEntry + 232, // 55: concordium.v2.AccountInfo.creds:type_name -> concordium.v2.AccountInfo.CredsEntry 40, // 56: concordium.v2.AccountInfo.threshold:type_name -> concordium.v2.AccountThreshold 24, // 57: concordium.v2.AccountInfo.encrypted_balance:type_name -> concordium.v2.EncryptedBalance 41, // 58: concordium.v2.AccountInfo.encryption_key:type_name -> concordium.v2.EncryptionKey @@ -25575,693 +28746,779 @@ var file_types_proto_depIdxs = []int32{ 8, // 63: concordium.v2.BlockHashInput.last_final:type_name -> concordium.v2.Empty 9, // 64: concordium.v2.BlockHashInput.given:type_name -> concordium.v2.BlockHash 13, // 65: concordium.v2.BlockHashInput.absolute_height:type_name -> concordium.v2.AbsoluteBlockHeight - 212, // 66: concordium.v2.BlockHashInput.relative_height:type_name -> concordium.v2.BlockHashInput.RelativeHeight - 42, // 67: concordium.v2.AccountIdentifierInput.address:type_name -> concordium.v2.AccountAddress - 46, // 68: concordium.v2.AccountIdentifierInput.cred_id:type_name -> concordium.v2.CredentialRegistrationId - 16, // 69: concordium.v2.AccountIdentifierInput.account_index:type_name -> concordium.v2.AccountIndex - 58, // 70: concordium.v2.AccountInfoRequest.block_hash:type_name -> concordium.v2.BlockHashInput - 59, // 71: concordium.v2.AccountInfoRequest.account_identifier:type_name -> concordium.v2.AccountIdentifierInput - 9, // 72: concordium.v2.FinalizedBlockInfo.hash:type_name -> concordium.v2.BlockHash - 13, // 73: concordium.v2.FinalizedBlockInfo.height:type_name -> concordium.v2.AbsoluteBlockHeight - 58, // 74: concordium.v2.AncestorsRequest.block_hash:type_name -> concordium.v2.BlockHashInput - 58, // 75: concordium.v2.ModuleSourceRequest.block_hash:type_name -> concordium.v2.BlockHashInput - 17, // 76: concordium.v2.ModuleSourceRequest.module_ref:type_name -> concordium.v2.ModuleRef - 58, // 77: concordium.v2.InstanceInfoRequest.block_hash:type_name -> concordium.v2.BlockHashInput - 64, // 78: concordium.v2.InstanceInfoRequest.address:type_name -> concordium.v2.ContractAddress - 213, // 79: concordium.v2.InstanceInfo.v0:type_name -> concordium.v2.InstanceInfo.V0 - 214, // 80: concordium.v2.InstanceInfo.v1:type_name -> concordium.v2.InstanceInfo.V1 - 58, // 81: concordium.v2.InstanceStateLookupRequest.block_hash:type_name -> concordium.v2.BlockHashInput - 64, // 82: concordium.v2.InstanceStateLookupRequest.address:type_name -> concordium.v2.ContractAddress - 8, // 83: concordium.v2.BlockItemStatus.received:type_name -> concordium.v2.Empty - 215, // 84: concordium.v2.BlockItemStatus.committed:type_name -> concordium.v2.BlockItemStatus.Committed - 216, // 85: concordium.v2.BlockItemStatus.finalized:type_name -> concordium.v2.BlockItemStatus.Finalized - 9, // 86: concordium.v2.BlockItemSummaryInBlock.block_hash:type_name -> concordium.v2.BlockHash - 138, // 87: concordium.v2.BlockItemSummaryInBlock.outcome:type_name -> concordium.v2.BlockItemSummary - 35, // 88: concordium.v2.NextAccountSequenceNumber.sequence_number:type_name -> concordium.v2.SequenceNumber - 8, // 89: concordium.v2.RejectReason.module_not_wf:type_name -> concordium.v2.Empty - 17, // 90: concordium.v2.RejectReason.module_hash_already_exists:type_name -> concordium.v2.ModuleRef - 42, // 91: concordium.v2.RejectReason.invalid_account_reference:type_name -> concordium.v2.AccountAddress - 217, // 92: concordium.v2.RejectReason.invalid_init_method:type_name -> concordium.v2.RejectReason.InvalidInitMethod - 218, // 93: concordium.v2.RejectReason.invalid_receive_method:type_name -> concordium.v2.RejectReason.InvalidReceiveMethod - 17, // 94: concordium.v2.RejectReason.invalid_module_reference:type_name -> concordium.v2.ModuleRef - 64, // 95: concordium.v2.RejectReason.invalid_contract_address:type_name -> concordium.v2.ContractAddress - 8, // 96: concordium.v2.RejectReason.runtime_failure:type_name -> concordium.v2.Empty - 219, // 97: concordium.v2.RejectReason.amount_too_large:type_name -> concordium.v2.RejectReason.AmountTooLarge - 8, // 98: concordium.v2.RejectReason.serialization_failure:type_name -> concordium.v2.Empty - 8, // 99: concordium.v2.RejectReason.out_of_energy:type_name -> concordium.v2.Empty - 220, // 100: concordium.v2.RejectReason.rejected_init:type_name -> concordium.v2.RejectReason.RejectedInit - 221, // 101: concordium.v2.RejectReason.rejected_receive:type_name -> concordium.v2.RejectReason.RejectedReceive - 8, // 102: concordium.v2.RejectReason.invalid_proof:type_name -> concordium.v2.Empty - 15, // 103: concordium.v2.RejectReason.already_a_baker:type_name -> concordium.v2.BakerId - 42, // 104: concordium.v2.RejectReason.not_a_baker:type_name -> concordium.v2.AccountAddress - 8, // 105: concordium.v2.RejectReason.insufficient_balance_for_baker_stake:type_name -> concordium.v2.Empty - 8, // 106: concordium.v2.RejectReason.stake_under_minimum_threshold_for_baking:type_name -> concordium.v2.Empty - 8, // 107: concordium.v2.RejectReason.baker_in_cooldown:type_name -> concordium.v2.Empty - 28, // 108: concordium.v2.RejectReason.duplicate_aggregation_key:type_name -> concordium.v2.BakerAggregationVerifyKey - 8, // 109: concordium.v2.RejectReason.non_existent_credential_id:type_name -> concordium.v2.Empty - 8, // 110: concordium.v2.RejectReason.key_index_already_in_use:type_name -> concordium.v2.Empty - 8, // 111: concordium.v2.RejectReason.invalid_account_threshold:type_name -> concordium.v2.Empty - 8, // 112: concordium.v2.RejectReason.invalid_credential_key_sign_threshold:type_name -> concordium.v2.Empty - 8, // 113: concordium.v2.RejectReason.invalid_encrypted_amount_transfer_proof:type_name -> concordium.v2.Empty - 8, // 114: concordium.v2.RejectReason.invalid_transfer_to_public_proof:type_name -> concordium.v2.Empty - 42, // 115: concordium.v2.RejectReason.encrypted_amount_self_transfer:type_name -> concordium.v2.AccountAddress - 8, // 116: concordium.v2.RejectReason.invalid_index_on_encrypted_transfer:type_name -> concordium.v2.Empty - 8, // 117: concordium.v2.RejectReason.zero_scheduledAmount:type_name -> concordium.v2.Empty - 8, // 118: concordium.v2.RejectReason.non_increasing_schedule:type_name -> concordium.v2.Empty - 8, // 119: concordium.v2.RejectReason.first_scheduled_release_expired:type_name -> concordium.v2.Empty - 42, // 120: concordium.v2.RejectReason.scheduled_self_transfer:type_name -> concordium.v2.AccountAddress - 8, // 121: concordium.v2.RejectReason.invalid_credentials:type_name -> concordium.v2.Empty - 222, // 122: concordium.v2.RejectReason.duplicate_cred_ids:type_name -> concordium.v2.RejectReason.DuplicateCredIds - 223, // 123: concordium.v2.RejectReason.non_existent_cred_ids:type_name -> concordium.v2.RejectReason.NonExistentCredIds - 8, // 124: concordium.v2.RejectReason.remove_first_credential:type_name -> concordium.v2.Empty - 8, // 125: concordium.v2.RejectReason.credential_holder_did_not_sign:type_name -> concordium.v2.Empty - 8, // 126: concordium.v2.RejectReason.not_allowed_multiple_credentials:type_name -> concordium.v2.Empty - 8, // 127: concordium.v2.RejectReason.not_allowed_to_receive_encrypted:type_name -> concordium.v2.Empty - 8, // 128: concordium.v2.RejectReason.not_allowed_to_handle_encrypted:type_name -> concordium.v2.Empty - 8, // 129: concordium.v2.RejectReason.missing_baker_add_parameters:type_name -> concordium.v2.Empty - 8, // 130: concordium.v2.RejectReason.finalization_reward_commission_not_in_range:type_name -> concordium.v2.Empty - 8, // 131: concordium.v2.RejectReason.baking_reward_commission_not_in_range:type_name -> concordium.v2.Empty - 8, // 132: concordium.v2.RejectReason.transaction_fee_commission_not_in_range:type_name -> concordium.v2.Empty - 8, // 133: concordium.v2.RejectReason.already_a_delegator:type_name -> concordium.v2.Empty - 8, // 134: concordium.v2.RejectReason.insufficient_balance_for_delegation_stake:type_name -> concordium.v2.Empty - 8, // 135: concordium.v2.RejectReason.missing_delegation_add_parameters:type_name -> concordium.v2.Empty - 8, // 136: concordium.v2.RejectReason.insufficient_delegation_stake:type_name -> concordium.v2.Empty - 8, // 137: concordium.v2.RejectReason.delegator_in_cooldown:type_name -> concordium.v2.Empty - 42, // 138: concordium.v2.RejectReason.not_a_delegator:type_name -> concordium.v2.AccountAddress - 15, // 139: concordium.v2.RejectReason.delegation_target_not_a_baker:type_name -> concordium.v2.BakerId - 8, // 140: concordium.v2.RejectReason.stake_over_maximum_threshold_for_pool:type_name -> concordium.v2.Empty - 8, // 141: concordium.v2.RejectReason.pool_would_become_over_delegated:type_name -> concordium.v2.Empty - 8, // 142: concordium.v2.RejectReason.pool_closed:type_name -> concordium.v2.Empty - 1, // 143: concordium.v2.ContractInitializedEvent.contract_version:type_name -> concordium.v2.ContractVersion - 17, // 144: concordium.v2.ContractInitializedEvent.origin_ref:type_name -> concordium.v2.ModuleRef - 64, // 145: concordium.v2.ContractInitializedEvent.address:type_name -> concordium.v2.ContractAddress - 37, // 146: concordium.v2.ContractInitializedEvent.amount:type_name -> concordium.v2.Amount - 71, // 147: concordium.v2.ContractInitializedEvent.init_name:type_name -> concordium.v2.InitName - 82, // 148: concordium.v2.ContractInitializedEvent.events:type_name -> concordium.v2.ContractEvent - 1, // 149: concordium.v2.InstanceUpdatedEvent.contract_version:type_name -> concordium.v2.ContractVersion - 64, // 150: concordium.v2.InstanceUpdatedEvent.address:type_name -> concordium.v2.ContractAddress - 43, // 151: concordium.v2.InstanceUpdatedEvent.instigator:type_name -> concordium.v2.Address - 37, // 152: concordium.v2.InstanceUpdatedEvent.amount:type_name -> concordium.v2.Amount - 72, // 153: concordium.v2.InstanceUpdatedEvent.parameter:type_name -> concordium.v2.Parameter - 70, // 154: concordium.v2.InstanceUpdatedEvent.receive_name:type_name -> concordium.v2.ReceiveName - 82, // 155: concordium.v2.InstanceUpdatedEvent.events:type_name -> concordium.v2.ContractEvent - 83, // 156: concordium.v2.ContractTraceElement.updated:type_name -> concordium.v2.InstanceUpdatedEvent - 224, // 157: concordium.v2.ContractTraceElement.transferred:type_name -> concordium.v2.ContractTraceElement.Transferred - 225, // 158: concordium.v2.ContractTraceElement.interrupted:type_name -> concordium.v2.ContractTraceElement.Interrupted - 226, // 159: concordium.v2.ContractTraceElement.resumed:type_name -> concordium.v2.ContractTraceElement.Resumed - 227, // 160: concordium.v2.ContractTraceElement.upgraded:type_name -> concordium.v2.ContractTraceElement.Upgraded - 15, // 161: concordium.v2.BakerKeysEvent.baker_id:type_name -> concordium.v2.BakerId - 42, // 162: concordium.v2.BakerKeysEvent.account:type_name -> concordium.v2.AccountAddress - 27, // 163: concordium.v2.BakerKeysEvent.sign_key:type_name -> concordium.v2.BakerSignatureVerifyKey - 26, // 164: concordium.v2.BakerKeysEvent.election_key:type_name -> concordium.v2.BakerElectionVerifyKey - 28, // 165: concordium.v2.BakerKeysEvent.aggregation_key:type_name -> concordium.v2.BakerAggregationVerifyKey - 15, // 166: concordium.v2.BakerStakeUpdatedData.baker_id:type_name -> concordium.v2.BakerId - 37, // 167: concordium.v2.BakerStakeUpdatedData.new_stake:type_name -> concordium.v2.Amount - 42, // 168: concordium.v2.EncryptedAmountRemovedEvent.account:type_name -> concordium.v2.AccountAddress - 23, // 169: concordium.v2.EncryptedAmountRemovedEvent.new_amount:type_name -> concordium.v2.EncryptedAmount - 23, // 170: concordium.v2.EncryptedAmountRemovedEvent.input_amount:type_name -> concordium.v2.EncryptedAmount - 42, // 171: concordium.v2.NewEncryptedAmountEvent.receiver:type_name -> concordium.v2.AccountAddress - 23, // 172: concordium.v2.NewEncryptedAmountEvent.encrypted_amount:type_name -> concordium.v2.EncryptedAmount - 42, // 173: concordium.v2.EncryptedSelfAmountAddedEvent.account:type_name -> concordium.v2.AccountAddress - 23, // 174: concordium.v2.EncryptedSelfAmountAddedEvent.new_amount:type_name -> concordium.v2.EncryptedAmount - 37, // 175: concordium.v2.EncryptedSelfAmountAddedEvent.amount:type_name -> concordium.v2.Amount - 228, // 176: concordium.v2.BakerEvent.baker_added:type_name -> concordium.v2.BakerEvent.BakerAdded - 15, // 177: concordium.v2.BakerEvent.baker_removed:type_name -> concordium.v2.BakerId - 229, // 178: concordium.v2.BakerEvent.baker_stake_increased:type_name -> concordium.v2.BakerEvent.BakerStakeIncreased - 230, // 179: concordium.v2.BakerEvent.baker_stake_decreased:type_name -> concordium.v2.BakerEvent.BakerStakeDecreased - 231, // 180: concordium.v2.BakerEvent.baker_restake_earnings_updated:type_name -> concordium.v2.BakerEvent.BakerRestakeEarningsUpdated - 85, // 181: concordium.v2.BakerEvent.baker_keys_updated:type_name -> concordium.v2.BakerKeysEvent - 232, // 182: concordium.v2.BakerEvent.baker_set_open_status:type_name -> concordium.v2.BakerEvent.BakerSetOpenStatus - 233, // 183: concordium.v2.BakerEvent.baker_set_metadata_url:type_name -> concordium.v2.BakerEvent.BakerSetMetadataUrl - 234, // 184: concordium.v2.BakerEvent.baker_set_transaction_fee_commission:type_name -> concordium.v2.BakerEvent.BakerSetTransactionFeeCommission - 235, // 185: concordium.v2.BakerEvent.baker_set_baking_reward_commission:type_name -> concordium.v2.BakerEvent.BakerSetBakingRewardCommission - 236, // 186: concordium.v2.BakerEvent.baker_set_finalization_reward_commission:type_name -> concordium.v2.BakerEvent.BakerSetFinalizationRewardCommission - 16, // 187: concordium.v2.DelegatorId.id:type_name -> concordium.v2.AccountIndex - 237, // 188: concordium.v2.DelegationEvent.delegation_stake_increased:type_name -> concordium.v2.DelegationEvent.DelegationStakeIncreased - 238, // 189: concordium.v2.DelegationEvent.delegation_stake_decreased:type_name -> concordium.v2.DelegationEvent.DelegationStakeDecreased - 239, // 190: concordium.v2.DelegationEvent.delegation_set_restake_earnings:type_name -> concordium.v2.DelegationEvent.DelegationSetRestakeEarnings - 240, // 191: concordium.v2.DelegationEvent.delegation_set_delegation_target:type_name -> concordium.v2.DelegationEvent.DelegationSetDelegationTarget - 93, // 192: concordium.v2.DelegationEvent.delegation_added:type_name -> concordium.v2.DelegatorId - 93, // 193: concordium.v2.DelegationEvent.delegation_removed:type_name -> concordium.v2.DelegatorId - 241, // 194: concordium.v2.AccountTransactionEffects.none:type_name -> concordium.v2.AccountTransactionEffects.None - 17, // 195: concordium.v2.AccountTransactionEffects.module_deployed:type_name -> concordium.v2.ModuleRef - 81, // 196: concordium.v2.AccountTransactionEffects.contract_initialized:type_name -> concordium.v2.ContractInitializedEvent - 242, // 197: concordium.v2.AccountTransactionEffects.contract_update_issued:type_name -> concordium.v2.AccountTransactionEffects.ContractUpdateIssued - 243, // 198: concordium.v2.AccountTransactionEffects.account_transfer:type_name -> concordium.v2.AccountTransactionEffects.AccountTransfer - 228, // 199: concordium.v2.AccountTransactionEffects.baker_added:type_name -> concordium.v2.BakerEvent.BakerAdded - 15, // 200: concordium.v2.AccountTransactionEffects.baker_removed:type_name -> concordium.v2.BakerId - 244, // 201: concordium.v2.AccountTransactionEffects.baker_stake_updated:type_name -> concordium.v2.AccountTransactionEffects.BakerStakeUpdated - 231, // 202: concordium.v2.AccountTransactionEffects.baker_restake_earnings_updated:type_name -> concordium.v2.BakerEvent.BakerRestakeEarningsUpdated - 85, // 203: concordium.v2.AccountTransactionEffects.baker_keys_updated:type_name -> concordium.v2.BakerKeysEvent - 245, // 204: concordium.v2.AccountTransactionEffects.encrypted_amount_transferred:type_name -> concordium.v2.AccountTransactionEffects.EncryptedAmountTransferred - 90, // 205: concordium.v2.AccountTransactionEffects.transferred_to_encrypted:type_name -> concordium.v2.EncryptedSelfAmountAddedEvent - 246, // 206: concordium.v2.AccountTransactionEffects.transferred_to_public:type_name -> concordium.v2.AccountTransactionEffects.TransferredToPublic - 247, // 207: concordium.v2.AccountTransactionEffects.transferred_with_schedule:type_name -> concordium.v2.AccountTransactionEffects.TransferredWithSchedule - 46, // 208: concordium.v2.AccountTransactionEffects.credential_keys_updated:type_name -> concordium.v2.CredentialRegistrationId - 248, // 209: concordium.v2.AccountTransactionEffects.credentials_updated:type_name -> concordium.v2.AccountTransactionEffects.CredentialsUpdated - 91, // 210: concordium.v2.AccountTransactionEffects.data_registered:type_name -> concordium.v2.RegisteredData - 249, // 211: concordium.v2.AccountTransactionEffects.baker_configured:type_name -> concordium.v2.AccountTransactionEffects.BakerConfigured - 250, // 212: concordium.v2.AccountTransactionEffects.delegation_configured:type_name -> concordium.v2.AccountTransactionEffects.DelegationConfigured - 31, // 213: concordium.v2.ElectionDifficulty.value:type_name -> concordium.v2.AmountFraction - 79, // 214: concordium.v2.TimeoutParameters.timeout_base:type_name -> concordium.v2.Duration - 101, // 215: concordium.v2.TimeoutParameters.timeout_increase:type_name -> concordium.v2.Ratio - 101, // 216: concordium.v2.TimeoutParameters.timeout_decrease:type_name -> concordium.v2.Ratio - 31, // 217: concordium.v2.FinalizationCommitteeParameters.finalizer_relative_stake_threshold:type_name -> concordium.v2.AmountFraction - 97, // 218: concordium.v2.ConsensusParametersV1.timeout_parameters:type_name -> concordium.v2.TimeoutParameters - 79, // 219: concordium.v2.ConsensusParametersV1.min_block_time:type_name -> concordium.v2.Duration - 76, // 220: concordium.v2.ConsensusParametersV1.block_energy_limit:type_name -> concordium.v2.Energy - 101, // 221: concordium.v2.ExchangeRate.value:type_name -> concordium.v2.Ratio - 102, // 222: concordium.v2.HigherLevelKeys.keys:type_name -> concordium.v2.UpdatePublicKey - 103, // 223: concordium.v2.HigherLevelKeys.threshold:type_name -> concordium.v2.UpdateKeysThreshold - 104, // 224: concordium.v2.AccessStructure.access_public_keys:type_name -> concordium.v2.UpdateKeysIndex - 103, // 225: concordium.v2.AccessStructure.access_threshold:type_name -> concordium.v2.UpdateKeysThreshold - 102, // 226: concordium.v2.AuthorizationsV0.keys:type_name -> concordium.v2.UpdatePublicKey - 106, // 227: concordium.v2.AuthorizationsV0.emergency:type_name -> concordium.v2.AccessStructure - 106, // 228: concordium.v2.AuthorizationsV0.protocol:type_name -> concordium.v2.AccessStructure - 106, // 229: concordium.v2.AuthorizationsV0.parameter_consensus:type_name -> concordium.v2.AccessStructure - 106, // 230: concordium.v2.AuthorizationsV0.parameter_euro_per_energy:type_name -> concordium.v2.AccessStructure - 106, // 231: concordium.v2.AuthorizationsV0.parameter_micro_CCD_per_euro:type_name -> concordium.v2.AccessStructure - 106, // 232: concordium.v2.AuthorizationsV0.parameter_foundation_account:type_name -> concordium.v2.AccessStructure - 106, // 233: concordium.v2.AuthorizationsV0.parameter_mint_distribution:type_name -> concordium.v2.AccessStructure - 106, // 234: concordium.v2.AuthorizationsV0.parameter_transaction_fee_distribution:type_name -> concordium.v2.AccessStructure - 106, // 235: concordium.v2.AuthorizationsV0.parameter_gas_rewards:type_name -> concordium.v2.AccessStructure - 106, // 236: concordium.v2.AuthorizationsV0.pool_parameters:type_name -> concordium.v2.AccessStructure - 106, // 237: concordium.v2.AuthorizationsV0.add_anonymity_revoker:type_name -> concordium.v2.AccessStructure - 106, // 238: concordium.v2.AuthorizationsV0.add_identity_provider:type_name -> concordium.v2.AccessStructure - 107, // 239: concordium.v2.AuthorizationsV1.v0:type_name -> concordium.v2.AuthorizationsV0 - 106, // 240: concordium.v2.AuthorizationsV1.parameter_cooldown:type_name -> concordium.v2.AccessStructure - 106, // 241: concordium.v2.AuthorizationsV1.parameter_time:type_name -> concordium.v2.AccessStructure - 251, // 242: concordium.v2.ArInfo.identity:type_name -> concordium.v2.ArInfo.ArIdentity - 109, // 243: concordium.v2.ArInfo.description:type_name -> concordium.v2.Description - 252, // 244: concordium.v2.ArInfo.public_key:type_name -> concordium.v2.ArInfo.ArPublicKey - 111, // 245: concordium.v2.IpInfo.identity:type_name -> concordium.v2.IpIdentity - 109, // 246: concordium.v2.IpInfo.description:type_name -> concordium.v2.Description - 253, // 247: concordium.v2.IpInfo.verify_key:type_name -> concordium.v2.IpInfo.IpVerifyKey - 254, // 248: concordium.v2.IpInfo.cdi_verify_key:type_name -> concordium.v2.IpInfo.IpCdiVerifyKey - 31, // 249: concordium.v2.InclusiveRangeAmountFraction.min:type_name -> concordium.v2.AmountFraction - 31, // 250: concordium.v2.InclusiveRangeAmountFraction.max_:type_name -> concordium.v2.AmountFraction - 114, // 251: concordium.v2.CommissionRanges.finalization:type_name -> concordium.v2.InclusiveRangeAmountFraction - 114, // 252: concordium.v2.CommissionRanges.baking:type_name -> concordium.v2.InclusiveRangeAmountFraction - 114, // 253: concordium.v2.CommissionRanges.transaction:type_name -> concordium.v2.InclusiveRangeAmountFraction - 31, // 254: concordium.v2.CapitalBound.value:type_name -> concordium.v2.AmountFraction - 101, // 255: concordium.v2.LeverageFactor.value:type_name -> concordium.v2.Ratio - 118, // 256: concordium.v2.RewardPeriodLength.value:type_name -> concordium.v2.Epoch - 113, // 257: concordium.v2.CooldownParametersCpv1.pool_owner_cooldown:type_name -> concordium.v2.DurationSeconds - 113, // 258: concordium.v2.CooldownParametersCpv1.delegator_cooldown:type_name -> concordium.v2.DurationSeconds - 31, // 259: concordium.v2.PoolParametersCpv1.passive_finalization_commission:type_name -> concordium.v2.AmountFraction - 31, // 260: concordium.v2.PoolParametersCpv1.passive_baking_commission:type_name -> concordium.v2.AmountFraction - 31, // 261: concordium.v2.PoolParametersCpv1.passive_transaction_commission:type_name -> concordium.v2.AmountFraction - 115, // 262: concordium.v2.PoolParametersCpv1.commission_bounds:type_name -> concordium.v2.CommissionRanges - 37, // 263: concordium.v2.PoolParametersCpv1.minimum_equity_capital:type_name -> concordium.v2.Amount - 116, // 264: concordium.v2.PoolParametersCpv1.capital_bound:type_name -> concordium.v2.CapitalBound - 117, // 265: concordium.v2.PoolParametersCpv1.leverage_bound:type_name -> concordium.v2.LeverageFactor - 119, // 266: concordium.v2.TimeParametersCpv1.reward_period_length:type_name -> concordium.v2.RewardPeriodLength - 120, // 267: concordium.v2.TimeParametersCpv1.mint_per_payday:type_name -> concordium.v2.MintRate - 31, // 268: concordium.v2.MintDistributionCpv1.baking_reward:type_name -> concordium.v2.AmountFraction - 31, // 269: concordium.v2.MintDistributionCpv1.finalization_reward:type_name -> concordium.v2.AmountFraction - 10, // 270: concordium.v2.ProtocolUpdate.specificationHash:type_name -> concordium.v2.Sha256Hash - 120, // 271: concordium.v2.MintDistributionCpv0.mint_per_slot:type_name -> concordium.v2.MintRate - 31, // 272: concordium.v2.MintDistributionCpv0.baking_reward:type_name -> concordium.v2.AmountFraction - 31, // 273: concordium.v2.MintDistributionCpv0.finalization_reward:type_name -> concordium.v2.AmountFraction - 31, // 274: concordium.v2.TransactionFeeDistribution.baker:type_name -> concordium.v2.AmountFraction - 31, // 275: concordium.v2.TransactionFeeDistribution.gas_account:type_name -> concordium.v2.AmountFraction - 31, // 276: concordium.v2.GasRewards.baker:type_name -> concordium.v2.AmountFraction - 31, // 277: concordium.v2.GasRewards.finalization_proof:type_name -> concordium.v2.AmountFraction - 31, // 278: concordium.v2.GasRewards.account_creation:type_name -> concordium.v2.AmountFraction - 31, // 279: concordium.v2.GasRewards.chain_update:type_name -> concordium.v2.AmountFraction - 31, // 280: concordium.v2.GasRewardsCpv2.baker:type_name -> concordium.v2.AmountFraction - 31, // 281: concordium.v2.GasRewardsCpv2.account_creation:type_name -> concordium.v2.AmountFraction - 31, // 282: concordium.v2.GasRewardsCpv2.chain_update:type_name -> concordium.v2.AmountFraction - 37, // 283: concordium.v2.BakerStakeThreshold.baker_stake_threshold:type_name -> concordium.v2.Amount - 105, // 284: concordium.v2.RootUpdate.root_keys_update:type_name -> concordium.v2.HigherLevelKeys - 105, // 285: concordium.v2.RootUpdate.level_1_keys_update:type_name -> concordium.v2.HigherLevelKeys - 107, // 286: concordium.v2.RootUpdate.level_2_keys_update_v0:type_name -> concordium.v2.AuthorizationsV0 - 108, // 287: concordium.v2.RootUpdate.level_2_keys_update_v1:type_name -> concordium.v2.AuthorizationsV1 - 105, // 288: concordium.v2.Level1Update.level_1_keys_update:type_name -> concordium.v2.HigherLevelKeys - 107, // 289: concordium.v2.Level1Update.level_2_keys_update_v0:type_name -> concordium.v2.AuthorizationsV0 - 108, // 290: concordium.v2.Level1Update.level_2_keys_update_v1:type_name -> concordium.v2.AuthorizationsV1 - 125, // 291: concordium.v2.UpdatePayload.protocol_update:type_name -> concordium.v2.ProtocolUpdate - 96, // 292: concordium.v2.UpdatePayload.election_difficulty_update:type_name -> concordium.v2.ElectionDifficulty - 100, // 293: concordium.v2.UpdatePayload.euro_per_energy_update:type_name -> concordium.v2.ExchangeRate - 100, // 294: concordium.v2.UpdatePayload.micro_ccd_per_euro_update:type_name -> concordium.v2.ExchangeRate - 42, // 295: concordium.v2.UpdatePayload.foundation_account_update:type_name -> concordium.v2.AccountAddress - 126, // 296: concordium.v2.UpdatePayload.mint_distribution_update:type_name -> concordium.v2.MintDistributionCpv0 - 127, // 297: concordium.v2.UpdatePayload.transaction_fee_distribution_update:type_name -> concordium.v2.TransactionFeeDistribution - 128, // 298: concordium.v2.UpdatePayload.gas_rewards_update:type_name -> concordium.v2.GasRewards - 130, // 299: concordium.v2.UpdatePayload.baker_stake_threshold_update:type_name -> concordium.v2.BakerStakeThreshold - 131, // 300: concordium.v2.UpdatePayload.root_update:type_name -> concordium.v2.RootUpdate - 132, // 301: concordium.v2.UpdatePayload.level_1_update:type_name -> concordium.v2.Level1Update - 110, // 302: concordium.v2.UpdatePayload.add_anonymity_revoker_update:type_name -> concordium.v2.ArInfo - 112, // 303: concordium.v2.UpdatePayload.add_identity_provider_update:type_name -> concordium.v2.IpInfo - 121, // 304: concordium.v2.UpdatePayload.cooldown_parameters_cpv_1_update:type_name -> concordium.v2.CooldownParametersCpv1 - 122, // 305: concordium.v2.UpdatePayload.pool_parameters_cpv_1_update:type_name -> concordium.v2.PoolParametersCpv1 - 123, // 306: concordium.v2.UpdatePayload.time_parameters_cpv_1_update:type_name -> concordium.v2.TimeParametersCpv1 - 124, // 307: concordium.v2.UpdatePayload.mint_distribution_cpv_1_update:type_name -> concordium.v2.MintDistributionCpv1 - 129, // 308: concordium.v2.UpdatePayload.gas_rewards_cpv_2_update:type_name -> concordium.v2.GasRewardsCpv2 - 97, // 309: concordium.v2.UpdatePayload.timeout_parameters_update:type_name -> concordium.v2.TimeoutParameters - 79, // 310: concordium.v2.UpdatePayload.min_block_time_update:type_name -> concordium.v2.Duration - 76, // 311: concordium.v2.UpdatePayload.block_energy_limit_update:type_name -> concordium.v2.Energy - 98, // 312: concordium.v2.UpdatePayload.finalization_committee_parameters_update:type_name -> concordium.v2.FinalizationCommitteeParameters - 37, // 313: concordium.v2.AccountTransactionDetails.cost:type_name -> concordium.v2.Amount - 42, // 314: concordium.v2.AccountTransactionDetails.sender:type_name -> concordium.v2.AccountAddress - 95, // 315: concordium.v2.AccountTransactionDetails.effects:type_name -> concordium.v2.AccountTransactionEffects - 2, // 316: concordium.v2.AccountCreationDetails.credential_type:type_name -> concordium.v2.CredentialType - 42, // 317: concordium.v2.AccountCreationDetails.address:type_name -> concordium.v2.AccountAddress - 46, // 318: concordium.v2.AccountCreationDetails.reg_id:type_name -> concordium.v2.CredentialRegistrationId - 136, // 319: concordium.v2.UpdateDetails.effective_time:type_name -> concordium.v2.TransactionTime - 133, // 320: concordium.v2.UpdateDetails.payload:type_name -> concordium.v2.UpdatePayload - 255, // 321: concordium.v2.BlockItemSummary.index:type_name -> concordium.v2.BlockItemSummary.TransactionIndex - 76, // 322: concordium.v2.BlockItemSummary.energy_cost:type_name -> concordium.v2.Energy - 11, // 323: concordium.v2.BlockItemSummary.hash:type_name -> concordium.v2.TransactionHash - 134, // 324: concordium.v2.BlockItemSummary.account_transaction:type_name -> concordium.v2.AccountTransactionDetails - 135, // 325: concordium.v2.BlockItemSummary.account_creation:type_name -> concordium.v2.AccountCreationDetails - 137, // 326: concordium.v2.BlockItemSummary.update:type_name -> concordium.v2.UpdateDetails - 9, // 327: concordium.v2.ConsensusInfo.best_block:type_name -> concordium.v2.BlockHash - 9, // 328: concordium.v2.ConsensusInfo.genesis_block:type_name -> concordium.v2.BlockHash - 19, // 329: concordium.v2.ConsensusInfo.genesis_time:type_name -> concordium.v2.Timestamp - 79, // 330: concordium.v2.ConsensusInfo.slot_duration:type_name -> concordium.v2.Duration - 79, // 331: concordium.v2.ConsensusInfo.epoch_duration:type_name -> concordium.v2.Duration - 9, // 332: concordium.v2.ConsensusInfo.last_finalized_block:type_name -> concordium.v2.BlockHash - 13, // 333: concordium.v2.ConsensusInfo.best_block_height:type_name -> concordium.v2.AbsoluteBlockHeight - 13, // 334: concordium.v2.ConsensusInfo.last_finalized_block_height:type_name -> concordium.v2.AbsoluteBlockHeight - 19, // 335: concordium.v2.ConsensusInfo.block_last_received_time:type_name -> concordium.v2.Timestamp - 19, // 336: concordium.v2.ConsensusInfo.block_last_arrived_time:type_name -> concordium.v2.Timestamp - 19, // 337: concordium.v2.ConsensusInfo.last_finalized_time:type_name -> concordium.v2.Timestamp - 5, // 338: concordium.v2.ConsensusInfo.protocol_version:type_name -> concordium.v2.ProtocolVersion - 139, // 339: concordium.v2.ConsensusInfo.genesis_index:type_name -> concordium.v2.GenesisIndex - 9, // 340: concordium.v2.ConsensusInfo.current_era_genesis_block:type_name -> concordium.v2.BlockHash - 19, // 341: concordium.v2.ConsensusInfo.current_era_genesis_time:type_name -> concordium.v2.Timestamp - 9, // 342: concordium.v2.ArrivedBlockInfo.hash:type_name -> concordium.v2.BlockHash - 13, // 343: concordium.v2.ArrivedBlockInfo.height:type_name -> concordium.v2.AbsoluteBlockHeight - 9, // 344: concordium.v2.BlockInfo.hash:type_name -> concordium.v2.BlockHash - 13, // 345: concordium.v2.BlockInfo.height:type_name -> concordium.v2.AbsoluteBlockHeight - 9, // 346: concordium.v2.BlockInfo.parent_block:type_name -> concordium.v2.BlockHash - 9, // 347: concordium.v2.BlockInfo.last_finalized_block:type_name -> concordium.v2.BlockHash - 139, // 348: concordium.v2.BlockInfo.genesis_index:type_name -> concordium.v2.GenesisIndex - 14, // 349: concordium.v2.BlockInfo.era_block_height:type_name -> concordium.v2.BlockHeight - 19, // 350: concordium.v2.BlockInfo.receive_time:type_name -> concordium.v2.Timestamp - 19, // 351: concordium.v2.BlockInfo.arrive_time:type_name -> concordium.v2.Timestamp - 77, // 352: concordium.v2.BlockInfo.slot_number:type_name -> concordium.v2.Slot - 19, // 353: concordium.v2.BlockInfo.slot_time:type_name -> concordium.v2.Timestamp - 15, // 354: concordium.v2.BlockInfo.baker:type_name -> concordium.v2.BakerId - 76, // 355: concordium.v2.BlockInfo.transactions_energy_cost:type_name -> concordium.v2.Energy - 12, // 356: concordium.v2.BlockInfo.state_hash:type_name -> concordium.v2.StateHash - 5, // 357: concordium.v2.BlockInfo.protocol_version:type_name -> concordium.v2.ProtocolVersion - 58, // 358: concordium.v2.PoolInfoRequest.block_hash:type_name -> concordium.v2.BlockHashInput - 15, // 359: concordium.v2.PoolInfoRequest.baker:type_name -> concordium.v2.BakerId - 256, // 360: concordium.v2.PoolPendingChange.reduce:type_name -> concordium.v2.PoolPendingChange.Reduce - 257, // 361: concordium.v2.PoolPendingChange.remove:type_name -> concordium.v2.PoolPendingChange.Remove - 37, // 362: concordium.v2.PoolCurrentPaydayInfo.transaction_fees_earned:type_name -> concordium.v2.Amount - 37, // 363: concordium.v2.PoolCurrentPaydayInfo.effective_stake:type_name -> concordium.v2.Amount - 37, // 364: concordium.v2.PoolCurrentPaydayInfo.baker_equity_capital:type_name -> concordium.v2.Amount - 37, // 365: concordium.v2.PoolCurrentPaydayInfo.delegated_capital:type_name -> concordium.v2.Amount - 15, // 366: concordium.v2.PoolInfoResponse.baker:type_name -> concordium.v2.BakerId - 42, // 367: concordium.v2.PoolInfoResponse.address:type_name -> concordium.v2.AccountAddress - 37, // 368: concordium.v2.PoolInfoResponse.equity_capital:type_name -> concordium.v2.Amount - 37, // 369: concordium.v2.PoolInfoResponse.delegated_capital:type_name -> concordium.v2.Amount - 37, // 370: concordium.v2.PoolInfoResponse.delegated_capital_cap:type_name -> concordium.v2.Amount - 33, // 371: concordium.v2.PoolInfoResponse.pool_info:type_name -> concordium.v2.BakerPoolInfo - 145, // 372: concordium.v2.PoolInfoResponse.equity_pending_change:type_name -> concordium.v2.PoolPendingChange - 146, // 373: concordium.v2.PoolInfoResponse.current_payday_info:type_name -> concordium.v2.PoolCurrentPaydayInfo - 37, // 374: concordium.v2.PoolInfoResponse.all_pool_total_capital:type_name -> concordium.v2.Amount - 37, // 375: concordium.v2.PassiveDelegationInfo.delegated_capital:type_name -> concordium.v2.Amount - 32, // 376: concordium.v2.PassiveDelegationInfo.commission_rates:type_name -> concordium.v2.CommissionRates - 37, // 377: concordium.v2.PassiveDelegationInfo.current_payday_transaction_fees_earned:type_name -> concordium.v2.Amount - 37, // 378: concordium.v2.PassiveDelegationInfo.current_payday_delegated_capital:type_name -> concordium.v2.Amount - 37, // 379: concordium.v2.PassiveDelegationInfo.all_pool_total_capital:type_name -> concordium.v2.Amount - 258, // 380: concordium.v2.BlocksAtHeightRequest.absolute:type_name -> concordium.v2.BlocksAtHeightRequest.Absolute - 259, // 381: concordium.v2.BlocksAtHeightRequest.relative:type_name -> concordium.v2.BlocksAtHeightRequest.Relative - 9, // 382: concordium.v2.BlocksAtHeightResponse.blocks:type_name -> concordium.v2.BlockHash - 260, // 383: concordium.v2.TokenomicsInfo.v0:type_name -> concordium.v2.TokenomicsInfo.V0 - 261, // 384: concordium.v2.TokenomicsInfo.v1:type_name -> concordium.v2.TokenomicsInfo.V1 - 58, // 385: concordium.v2.InvokeInstanceRequest.block_hash:type_name -> concordium.v2.BlockHashInput - 43, // 386: concordium.v2.InvokeInstanceRequest.invoker:type_name -> concordium.v2.Address - 64, // 387: concordium.v2.InvokeInstanceRequest.instance:type_name -> concordium.v2.ContractAddress - 37, // 388: concordium.v2.InvokeInstanceRequest.amount:type_name -> concordium.v2.Amount - 70, // 389: concordium.v2.InvokeInstanceRequest.entrypoint:type_name -> concordium.v2.ReceiveName - 72, // 390: concordium.v2.InvokeInstanceRequest.parameter:type_name -> concordium.v2.Parameter - 76, // 391: concordium.v2.InvokeInstanceRequest.energy:type_name -> concordium.v2.Energy - 263, // 392: concordium.v2.InvokeInstanceResponse.success:type_name -> concordium.v2.InvokeInstanceResponse.Success - 262, // 393: concordium.v2.InvokeInstanceResponse.failure:type_name -> concordium.v2.InvokeInstanceResponse.Failure - 58, // 394: concordium.v2.GetPoolDelegatorsRequest.block_hash:type_name -> concordium.v2.BlockHashInput - 15, // 395: concordium.v2.GetPoolDelegatorsRequest.baker:type_name -> concordium.v2.BakerId - 42, // 396: concordium.v2.DelegatorInfo.account:type_name -> concordium.v2.AccountAddress - 37, // 397: concordium.v2.DelegatorInfo.stake:type_name -> concordium.v2.Amount - 30, // 398: concordium.v2.DelegatorInfo.pending_change:type_name -> concordium.v2.StakePendingChange - 42, // 399: concordium.v2.DelegatorRewardPeriodInfo.account:type_name -> concordium.v2.AccountAddress - 37, // 400: concordium.v2.DelegatorRewardPeriodInfo.stake:type_name -> concordium.v2.Amount - 9, // 401: concordium.v2.Branch.block_hash:type_name -> concordium.v2.BlockHash - 157, // 402: concordium.v2.Branch.children:type_name -> concordium.v2.Branch - 96, // 403: concordium.v2.ElectionInfo.election_difficulty:type_name -> concordium.v2.ElectionDifficulty - 158, // 404: concordium.v2.ElectionInfo.election_nonce:type_name -> concordium.v2.LeadershipElectionNonce - 264, // 405: concordium.v2.ElectionInfo.baker_election_info:type_name -> concordium.v2.ElectionInfo.Baker - 266, // 406: concordium.v2.BlockSpecialEvent.baking_rewards:type_name -> concordium.v2.BlockSpecialEvent.BakingRewards - 267, // 407: concordium.v2.BlockSpecialEvent.mint:type_name -> concordium.v2.BlockSpecialEvent.Mint - 268, // 408: concordium.v2.BlockSpecialEvent.finalization_rewards:type_name -> concordium.v2.BlockSpecialEvent.FinalizationRewards - 269, // 409: concordium.v2.BlockSpecialEvent.block_reward:type_name -> concordium.v2.BlockSpecialEvent.BlockReward - 270, // 410: concordium.v2.BlockSpecialEvent.payday_foundation_reward:type_name -> concordium.v2.BlockSpecialEvent.PaydayFoundationReward - 271, // 411: concordium.v2.BlockSpecialEvent.payday_account_reward:type_name -> concordium.v2.BlockSpecialEvent.PaydayAccountReward - 272, // 412: concordium.v2.BlockSpecialEvent.block_accrue_reward:type_name -> concordium.v2.BlockSpecialEvent.BlockAccrueReward - 273, // 413: concordium.v2.BlockSpecialEvent.payday_pool_reward:type_name -> concordium.v2.BlockSpecialEvent.PaydayPoolReward - 136, // 414: concordium.v2.PendingUpdate.effective_time:type_name -> concordium.v2.TransactionTime - 105, // 415: concordium.v2.PendingUpdate.root_keys:type_name -> concordium.v2.HigherLevelKeys - 105, // 416: concordium.v2.PendingUpdate.level1_keys:type_name -> concordium.v2.HigherLevelKeys - 107, // 417: concordium.v2.PendingUpdate.level2_keys_cpv_0:type_name -> concordium.v2.AuthorizationsV0 - 108, // 418: concordium.v2.PendingUpdate.level2_keys_cpv_1:type_name -> concordium.v2.AuthorizationsV1 - 125, // 419: concordium.v2.PendingUpdate.protocol:type_name -> concordium.v2.ProtocolUpdate - 96, // 420: concordium.v2.PendingUpdate.election_difficulty:type_name -> concordium.v2.ElectionDifficulty - 100, // 421: concordium.v2.PendingUpdate.euro_per_energy:type_name -> concordium.v2.ExchangeRate - 100, // 422: concordium.v2.PendingUpdate.micro_ccd_per_euro:type_name -> concordium.v2.ExchangeRate - 42, // 423: concordium.v2.PendingUpdate.foundation_account:type_name -> concordium.v2.AccountAddress - 126, // 424: concordium.v2.PendingUpdate.mint_distribution_cpv_0:type_name -> concordium.v2.MintDistributionCpv0 - 124, // 425: concordium.v2.PendingUpdate.mint_distribution_cpv_1:type_name -> concordium.v2.MintDistributionCpv1 - 127, // 426: concordium.v2.PendingUpdate.transaction_fee_distribution:type_name -> concordium.v2.TransactionFeeDistribution - 128, // 427: concordium.v2.PendingUpdate.gas_rewards:type_name -> concordium.v2.GasRewards - 130, // 428: concordium.v2.PendingUpdate.pool_parameters_cpv_0:type_name -> concordium.v2.BakerStakeThreshold - 122, // 429: concordium.v2.PendingUpdate.pool_parameters_cpv_1:type_name -> concordium.v2.PoolParametersCpv1 - 110, // 430: concordium.v2.PendingUpdate.add_anonymity_revoker:type_name -> concordium.v2.ArInfo - 112, // 431: concordium.v2.PendingUpdate.add_identity_provider:type_name -> concordium.v2.IpInfo - 121, // 432: concordium.v2.PendingUpdate.cooldown_parameters:type_name -> concordium.v2.CooldownParametersCpv1 - 123, // 433: concordium.v2.PendingUpdate.time_parameters:type_name -> concordium.v2.TimeParametersCpv1 - 129, // 434: concordium.v2.PendingUpdate.gas_rewards_cpv_2:type_name -> concordium.v2.GasRewardsCpv2 - 97, // 435: concordium.v2.PendingUpdate.timeout_parameters:type_name -> concordium.v2.TimeoutParameters - 79, // 436: concordium.v2.PendingUpdate.min_block_time:type_name -> concordium.v2.Duration - 76, // 437: concordium.v2.PendingUpdate.block_energy_limit:type_name -> concordium.v2.Energy - 98, // 438: concordium.v2.PendingUpdate.finalization_committee_parameters:type_name -> concordium.v2.FinalizationCommitteeParameters - 35, // 439: concordium.v2.NextUpdateSequenceNumbers.root_keys:type_name -> concordium.v2.SequenceNumber - 35, // 440: concordium.v2.NextUpdateSequenceNumbers.level1_keys:type_name -> concordium.v2.SequenceNumber - 35, // 441: concordium.v2.NextUpdateSequenceNumbers.level2_keys:type_name -> concordium.v2.SequenceNumber - 35, // 442: concordium.v2.NextUpdateSequenceNumbers.protocol:type_name -> concordium.v2.SequenceNumber - 35, // 443: concordium.v2.NextUpdateSequenceNumbers.election_difficulty:type_name -> concordium.v2.SequenceNumber - 35, // 444: concordium.v2.NextUpdateSequenceNumbers.euro_per_energy:type_name -> concordium.v2.SequenceNumber - 35, // 445: concordium.v2.NextUpdateSequenceNumbers.micro_ccd_per_euro:type_name -> concordium.v2.SequenceNumber - 35, // 446: concordium.v2.NextUpdateSequenceNumbers.foundation_account:type_name -> concordium.v2.SequenceNumber - 35, // 447: concordium.v2.NextUpdateSequenceNumbers.mint_distribution:type_name -> concordium.v2.SequenceNumber - 35, // 448: concordium.v2.NextUpdateSequenceNumbers.transaction_fee_distribution:type_name -> concordium.v2.SequenceNumber - 35, // 449: concordium.v2.NextUpdateSequenceNumbers.gas_rewards:type_name -> concordium.v2.SequenceNumber - 35, // 450: concordium.v2.NextUpdateSequenceNumbers.pool_parameters:type_name -> concordium.v2.SequenceNumber - 35, // 451: concordium.v2.NextUpdateSequenceNumbers.add_anonymity_revoker:type_name -> concordium.v2.SequenceNumber - 35, // 452: concordium.v2.NextUpdateSequenceNumbers.add_identity_provider:type_name -> concordium.v2.SequenceNumber - 35, // 453: concordium.v2.NextUpdateSequenceNumbers.cooldown_parameters:type_name -> concordium.v2.SequenceNumber - 35, // 454: concordium.v2.NextUpdateSequenceNumbers.time_parameters:type_name -> concordium.v2.SequenceNumber - 35, // 455: concordium.v2.NextUpdateSequenceNumbers.timeout_parameters:type_name -> concordium.v2.SequenceNumber - 35, // 456: concordium.v2.NextUpdateSequenceNumbers.min_block_time:type_name -> concordium.v2.SequenceNumber - 35, // 457: concordium.v2.NextUpdateSequenceNumbers.block_energy_limit:type_name -> concordium.v2.SequenceNumber - 35, // 458: concordium.v2.NextUpdateSequenceNumbers.finalization_committee_parameters:type_name -> concordium.v2.SequenceNumber - 163, // 459: concordium.v2.IpSocketAddress.ip:type_name -> concordium.v2.IpAddress - 164, // 460: concordium.v2.IpSocketAddress.port:type_name -> concordium.v2.Port - 163, // 461: concordium.v2.BannedPeer.ip_address:type_name -> concordium.v2.IpAddress - 167, // 462: concordium.v2.BannedPeers.peers:type_name -> concordium.v2.BannedPeer - 163, // 463: concordium.v2.PeerToBan.ip_address:type_name -> concordium.v2.IpAddress - 275, // 464: concordium.v2.PeersInfo.peers:type_name -> concordium.v2.PeersInfo.Peer - 19, // 465: concordium.v2.NodeInfo.local_time:type_name -> concordium.v2.Timestamp - 79, // 466: concordium.v2.NodeInfo.peer_uptime:type_name -> concordium.v2.Duration - 277, // 467: concordium.v2.NodeInfo.network_info:type_name -> concordium.v2.NodeInfo.NetworkInfo - 8, // 468: concordium.v2.NodeInfo.bootstrapper:type_name -> concordium.v2.Empty - 279, // 469: concordium.v2.NodeInfo.node:type_name -> concordium.v2.NodeInfo.Node - 186, // 470: concordium.v2.SendBlockItemRequest.account_transaction:type_name -> concordium.v2.AccountTransaction - 174, // 471: concordium.v2.SendBlockItemRequest.credential_deployment:type_name -> concordium.v2.CredentialDeployment - 190, // 472: concordium.v2.SendBlockItemRequest.update_instruction:type_name -> concordium.v2.UpdateInstruction - 136, // 473: concordium.v2.CredentialDeployment.message_expiry:type_name -> concordium.v2.TransactionTime - 282, // 474: concordium.v2.SignatureMap.signatures:type_name -> concordium.v2.SignatureMap.SignaturesEntry - 283, // 475: concordium.v2.AccountSignatureMap.signatures:type_name -> concordium.v2.AccountSignatureMap.SignaturesEntry - 284, // 476: concordium.v2.AccountTransactionSignature.signatures:type_name -> concordium.v2.AccountTransactionSignature.SignaturesEntry - 42, // 477: concordium.v2.AccountTransactionHeader.sender:type_name -> concordium.v2.AccountAddress - 35, // 478: concordium.v2.AccountTransactionHeader.sequence_number:type_name -> concordium.v2.SequenceNumber - 76, // 479: concordium.v2.AccountTransactionHeader.energy_amount:type_name -> concordium.v2.Energy - 136, // 480: concordium.v2.AccountTransactionHeader.expiry:type_name -> concordium.v2.TransactionTime - 37, // 481: concordium.v2.InitContractPayload.amount:type_name -> concordium.v2.Amount - 17, // 482: concordium.v2.InitContractPayload.module_ref:type_name -> concordium.v2.ModuleRef - 71, // 483: concordium.v2.InitContractPayload.init_name:type_name -> concordium.v2.InitName - 72, // 484: concordium.v2.InitContractPayload.parameter:type_name -> concordium.v2.Parameter - 37, // 485: concordium.v2.UpdateContractPayload.amount:type_name -> concordium.v2.Amount - 64, // 486: concordium.v2.UpdateContractPayload.address:type_name -> concordium.v2.ContractAddress - 70, // 487: concordium.v2.UpdateContractPayload.receive_name:type_name -> concordium.v2.ReceiveName - 72, // 488: concordium.v2.UpdateContractPayload.parameter:type_name -> concordium.v2.Parameter - 37, // 489: concordium.v2.TransferPayload.amount:type_name -> concordium.v2.Amount - 42, // 490: concordium.v2.TransferPayload.receiver:type_name -> concordium.v2.AccountAddress - 37, // 491: concordium.v2.TransferWithMemoPayload.amount:type_name -> concordium.v2.Amount - 42, // 492: concordium.v2.TransferWithMemoPayload.receiver:type_name -> concordium.v2.AccountAddress - 86, // 493: concordium.v2.TransferWithMemoPayload.memo:type_name -> concordium.v2.Memo - 18, // 494: concordium.v2.AccountTransactionPayload.deploy_module:type_name -> concordium.v2.VersionedModuleSource - 180, // 495: concordium.v2.AccountTransactionPayload.init_contract:type_name -> concordium.v2.InitContractPayload - 181, // 496: concordium.v2.AccountTransactionPayload.update_contract:type_name -> concordium.v2.UpdateContractPayload - 182, // 497: concordium.v2.AccountTransactionPayload.transfer:type_name -> concordium.v2.TransferPayload - 183, // 498: concordium.v2.AccountTransactionPayload.transfer_with_memo:type_name -> concordium.v2.TransferWithMemoPayload - 91, // 499: concordium.v2.AccountTransactionPayload.register_data:type_name -> concordium.v2.RegisteredData - 179, // 500: concordium.v2.PreAccountTransaction.header:type_name -> concordium.v2.AccountTransactionHeader - 184, // 501: concordium.v2.PreAccountTransaction.payload:type_name -> concordium.v2.AccountTransactionPayload - 178, // 502: concordium.v2.AccountTransaction.signature:type_name -> concordium.v2.AccountTransactionSignature - 179, // 503: concordium.v2.AccountTransaction.header:type_name -> concordium.v2.AccountTransactionHeader - 184, // 504: concordium.v2.AccountTransaction.payload:type_name -> concordium.v2.AccountTransactionPayload - 285, // 505: concordium.v2.UpdateInstructionSignature.signatures:type_name -> concordium.v2.UpdateInstructionSignature.SignaturesEntry - 36, // 506: concordium.v2.UpdateInstructionHeader.sequence_number:type_name -> concordium.v2.UpdateSequenceNumber - 136, // 507: concordium.v2.UpdateInstructionHeader.effective_time:type_name -> concordium.v2.TransactionTime - 136, // 508: concordium.v2.UpdateInstructionHeader.timeout:type_name -> concordium.v2.TransactionTime - 176, // 509: concordium.v2.UpdateInstruction.signatures:type_name -> concordium.v2.SignatureMap - 188, // 510: concordium.v2.UpdateInstruction.header:type_name -> concordium.v2.UpdateInstructionHeader - 189, // 511: concordium.v2.UpdateInstruction.payload:type_name -> concordium.v2.UpdateInstructionPayload - 96, // 512: concordium.v2.ChainParametersV0.election_difficulty:type_name -> concordium.v2.ElectionDifficulty - 100, // 513: concordium.v2.ChainParametersV0.euro_per_energy:type_name -> concordium.v2.ExchangeRate - 100, // 514: concordium.v2.ChainParametersV0.micro_ccd_per_euro:type_name -> concordium.v2.ExchangeRate - 118, // 515: concordium.v2.ChainParametersV0.baker_cooldown_epochs:type_name -> concordium.v2.Epoch - 192, // 516: concordium.v2.ChainParametersV0.account_creation_limit:type_name -> concordium.v2.CredentialsPerBlockLimit - 126, // 517: concordium.v2.ChainParametersV0.mint_distribution:type_name -> concordium.v2.MintDistributionCpv0 - 127, // 518: concordium.v2.ChainParametersV0.transaction_fee_distribution:type_name -> concordium.v2.TransactionFeeDistribution - 128, // 519: concordium.v2.ChainParametersV0.gas_rewards:type_name -> concordium.v2.GasRewards - 42, // 520: concordium.v2.ChainParametersV0.foundation_account:type_name -> concordium.v2.AccountAddress - 37, // 521: concordium.v2.ChainParametersV0.minimum_threshold_for_baking:type_name -> concordium.v2.Amount - 105, // 522: concordium.v2.ChainParametersV0.root_keys:type_name -> concordium.v2.HigherLevelKeys - 105, // 523: concordium.v2.ChainParametersV0.level1_keys:type_name -> concordium.v2.HigherLevelKeys - 107, // 524: concordium.v2.ChainParametersV0.level2_keys:type_name -> concordium.v2.AuthorizationsV0 - 96, // 525: concordium.v2.ChainParametersV1.election_difficulty:type_name -> concordium.v2.ElectionDifficulty - 100, // 526: concordium.v2.ChainParametersV1.euro_per_energy:type_name -> concordium.v2.ExchangeRate - 100, // 527: concordium.v2.ChainParametersV1.micro_ccd_per_euro:type_name -> concordium.v2.ExchangeRate - 121, // 528: concordium.v2.ChainParametersV1.cooldown_parameters:type_name -> concordium.v2.CooldownParametersCpv1 - 123, // 529: concordium.v2.ChainParametersV1.time_parameters:type_name -> concordium.v2.TimeParametersCpv1 - 192, // 530: concordium.v2.ChainParametersV1.account_creation_limit:type_name -> concordium.v2.CredentialsPerBlockLimit - 124, // 531: concordium.v2.ChainParametersV1.mint_distribution:type_name -> concordium.v2.MintDistributionCpv1 - 127, // 532: concordium.v2.ChainParametersV1.transaction_fee_distribution:type_name -> concordium.v2.TransactionFeeDistribution - 128, // 533: concordium.v2.ChainParametersV1.gas_rewards:type_name -> concordium.v2.GasRewards - 42, // 534: concordium.v2.ChainParametersV1.foundation_account:type_name -> concordium.v2.AccountAddress - 122, // 535: concordium.v2.ChainParametersV1.pool_parameters:type_name -> concordium.v2.PoolParametersCpv1 - 105, // 536: concordium.v2.ChainParametersV1.root_keys:type_name -> concordium.v2.HigherLevelKeys - 105, // 537: concordium.v2.ChainParametersV1.level1_keys:type_name -> concordium.v2.HigherLevelKeys - 108, // 538: concordium.v2.ChainParametersV1.level2_keys:type_name -> concordium.v2.AuthorizationsV1 - 99, // 539: concordium.v2.ChainParametersV2.consensus_parameters:type_name -> concordium.v2.ConsensusParametersV1 - 100, // 540: concordium.v2.ChainParametersV2.euro_per_energy:type_name -> concordium.v2.ExchangeRate - 100, // 541: concordium.v2.ChainParametersV2.micro_ccd_per_euro:type_name -> concordium.v2.ExchangeRate - 121, // 542: concordium.v2.ChainParametersV2.cooldown_parameters:type_name -> concordium.v2.CooldownParametersCpv1 - 123, // 543: concordium.v2.ChainParametersV2.time_parameters:type_name -> concordium.v2.TimeParametersCpv1 - 192, // 544: concordium.v2.ChainParametersV2.account_creation_limit:type_name -> concordium.v2.CredentialsPerBlockLimit - 124, // 545: concordium.v2.ChainParametersV2.mint_distribution:type_name -> concordium.v2.MintDistributionCpv1 - 127, // 546: concordium.v2.ChainParametersV2.transaction_fee_distribution:type_name -> concordium.v2.TransactionFeeDistribution - 129, // 547: concordium.v2.ChainParametersV2.gas_rewards:type_name -> concordium.v2.GasRewardsCpv2 - 42, // 548: concordium.v2.ChainParametersV2.foundation_account:type_name -> concordium.v2.AccountAddress - 122, // 549: concordium.v2.ChainParametersV2.pool_parameters:type_name -> concordium.v2.PoolParametersCpv1 - 105, // 550: concordium.v2.ChainParametersV2.root_keys:type_name -> concordium.v2.HigherLevelKeys - 105, // 551: concordium.v2.ChainParametersV2.level1_keys:type_name -> concordium.v2.HigherLevelKeys - 108, // 552: concordium.v2.ChainParametersV2.level2_keys:type_name -> concordium.v2.AuthorizationsV1 - 98, // 553: concordium.v2.ChainParametersV2.finalization_committee_parameters:type_name -> concordium.v2.FinalizationCommitteeParameters - 193, // 554: concordium.v2.ChainParameters.v0:type_name -> concordium.v2.ChainParametersV0 - 194, // 555: concordium.v2.ChainParameters.v1:type_name -> concordium.v2.ChainParametersV1 - 195, // 556: concordium.v2.ChainParameters.v2:type_name -> concordium.v2.ChainParametersV2 - 15, // 557: concordium.v2.FinalizationSummaryParty.baker:type_name -> concordium.v2.BakerId - 9, // 558: concordium.v2.FinalizationSummary.block:type_name -> concordium.v2.BlockHash - 198, // 559: concordium.v2.FinalizationSummary.index:type_name -> concordium.v2.FinalizationIndex - 14, // 560: concordium.v2.FinalizationSummary.delay:type_name -> concordium.v2.BlockHeight - 197, // 561: concordium.v2.FinalizationSummary.finalizers:type_name -> concordium.v2.FinalizationSummaryParty - 8, // 562: concordium.v2.BlockFinalizationSummary.none:type_name -> concordium.v2.Empty - 199, // 563: concordium.v2.BlockFinalizationSummary.record:type_name -> concordium.v2.FinalizationSummary - 11, // 564: concordium.v2.BlockItem.hash:type_name -> concordium.v2.TransactionHash - 186, // 565: concordium.v2.BlockItem.account_transaction:type_name -> concordium.v2.AccountTransaction - 174, // 566: concordium.v2.BlockItem.credential_deployment:type_name -> concordium.v2.CredentialDeployment - 190, // 567: concordium.v2.BlockItem.update_instruction:type_name -> concordium.v2.UpdateInstruction - 37, // 568: concordium.v2.StakePendingChange.Reduce.new_stake:type_name -> concordium.v2.Amount - 19, // 569: concordium.v2.StakePendingChange.Reduce.effective_time:type_name -> concordium.v2.Timestamp - 37, // 570: concordium.v2.AccountStakingInfo.Baker.staked_amount:type_name -> concordium.v2.Amount - 29, // 571: concordium.v2.AccountStakingInfo.Baker.baker_info:type_name -> concordium.v2.BakerInfo - 30, // 572: concordium.v2.AccountStakingInfo.Baker.pending_change:type_name -> concordium.v2.StakePendingChange - 33, // 573: concordium.v2.AccountStakingInfo.Baker.pool_info:type_name -> concordium.v2.BakerPoolInfo - 37, // 574: concordium.v2.AccountStakingInfo.Delegator.staked_amount:type_name -> concordium.v2.Amount - 25, // 575: concordium.v2.AccountStakingInfo.Delegator.target:type_name -> concordium.v2.DelegationTarget - 30, // 576: concordium.v2.AccountStakingInfo.Delegator.pending_change:type_name -> concordium.v2.StakePendingChange - 44, // 577: concordium.v2.CredentialPublicKeys.KeysEntry.value:type_name -> concordium.v2.AccountVerifyKey - 53, // 578: concordium.v2.CredentialCommitments.AttributesEntry.value:type_name -> concordium.v2.Commitment - 51, // 579: concordium.v2.NormalCredentialValues.ArDataEntry.value:type_name -> concordium.v2.ChainArData - 56, // 580: concordium.v2.AccountInfo.CredsEntry.value:type_name -> concordium.v2.AccountCredential - 139, // 581: concordium.v2.BlockHashInput.RelativeHeight.genesis_index:type_name -> concordium.v2.GenesisIndex - 14, // 582: concordium.v2.BlockHashInput.RelativeHeight.height:type_name -> concordium.v2.BlockHeight - 73, // 583: concordium.v2.InstanceInfo.V0.model:type_name -> concordium.v2.ContractStateV0 - 42, // 584: concordium.v2.InstanceInfo.V0.owner:type_name -> concordium.v2.AccountAddress - 37, // 585: concordium.v2.InstanceInfo.V0.amount:type_name -> concordium.v2.Amount - 70, // 586: concordium.v2.InstanceInfo.V0.methods:type_name -> concordium.v2.ReceiveName - 71, // 587: concordium.v2.InstanceInfo.V0.name:type_name -> concordium.v2.InitName - 17, // 588: concordium.v2.InstanceInfo.V0.source_module:type_name -> concordium.v2.ModuleRef - 42, // 589: concordium.v2.InstanceInfo.V1.owner:type_name -> concordium.v2.AccountAddress - 37, // 590: concordium.v2.InstanceInfo.V1.amount:type_name -> concordium.v2.Amount - 70, // 591: concordium.v2.InstanceInfo.V1.methods:type_name -> concordium.v2.ReceiveName - 71, // 592: concordium.v2.InstanceInfo.V1.name:type_name -> concordium.v2.InitName - 17, // 593: concordium.v2.InstanceInfo.V1.source_module:type_name -> concordium.v2.ModuleRef - 75, // 594: concordium.v2.BlockItemStatus.Committed.outcomes:type_name -> concordium.v2.BlockItemSummaryInBlock - 75, // 595: concordium.v2.BlockItemStatus.Finalized.outcome:type_name -> concordium.v2.BlockItemSummaryInBlock - 17, // 596: concordium.v2.RejectReason.InvalidInitMethod.module_ref:type_name -> concordium.v2.ModuleRef - 71, // 597: concordium.v2.RejectReason.InvalidInitMethod.init_name:type_name -> concordium.v2.InitName - 17, // 598: concordium.v2.RejectReason.InvalidReceiveMethod.module_ref:type_name -> concordium.v2.ModuleRef - 70, // 599: concordium.v2.RejectReason.InvalidReceiveMethod.receive_name:type_name -> concordium.v2.ReceiveName - 43, // 600: concordium.v2.RejectReason.AmountTooLarge.address:type_name -> concordium.v2.Address - 37, // 601: concordium.v2.RejectReason.AmountTooLarge.amount:type_name -> concordium.v2.Amount - 64, // 602: concordium.v2.RejectReason.RejectedReceive.contract_address:type_name -> concordium.v2.ContractAddress - 70, // 603: concordium.v2.RejectReason.RejectedReceive.receive_name:type_name -> concordium.v2.ReceiveName - 72, // 604: concordium.v2.RejectReason.RejectedReceive.parameter:type_name -> concordium.v2.Parameter - 46, // 605: concordium.v2.RejectReason.DuplicateCredIds.ids:type_name -> concordium.v2.CredentialRegistrationId - 46, // 606: concordium.v2.RejectReason.NonExistentCredIds.ids:type_name -> concordium.v2.CredentialRegistrationId - 64, // 607: concordium.v2.ContractTraceElement.Transferred.sender:type_name -> concordium.v2.ContractAddress - 37, // 608: concordium.v2.ContractTraceElement.Transferred.amount:type_name -> concordium.v2.Amount - 42, // 609: concordium.v2.ContractTraceElement.Transferred.receiver:type_name -> concordium.v2.AccountAddress - 64, // 610: concordium.v2.ContractTraceElement.Interrupted.address:type_name -> concordium.v2.ContractAddress - 82, // 611: concordium.v2.ContractTraceElement.Interrupted.events:type_name -> concordium.v2.ContractEvent - 64, // 612: concordium.v2.ContractTraceElement.Resumed.address:type_name -> concordium.v2.ContractAddress - 64, // 613: concordium.v2.ContractTraceElement.Upgraded.address:type_name -> concordium.v2.ContractAddress - 17, // 614: concordium.v2.ContractTraceElement.Upgraded.from:type_name -> concordium.v2.ModuleRef - 17, // 615: concordium.v2.ContractTraceElement.Upgraded.to:type_name -> concordium.v2.ModuleRef - 85, // 616: concordium.v2.BakerEvent.BakerAdded.keys_event:type_name -> concordium.v2.BakerKeysEvent - 37, // 617: concordium.v2.BakerEvent.BakerAdded.stake:type_name -> concordium.v2.Amount - 15, // 618: concordium.v2.BakerEvent.BakerStakeIncreased.baker_id:type_name -> concordium.v2.BakerId - 37, // 619: concordium.v2.BakerEvent.BakerStakeIncreased.new_stake:type_name -> concordium.v2.Amount - 15, // 620: concordium.v2.BakerEvent.BakerStakeDecreased.baker_id:type_name -> concordium.v2.BakerId - 37, // 621: concordium.v2.BakerEvent.BakerStakeDecreased.new_stake:type_name -> concordium.v2.Amount - 15, // 622: concordium.v2.BakerEvent.BakerRestakeEarningsUpdated.baker_id:type_name -> concordium.v2.BakerId - 15, // 623: concordium.v2.BakerEvent.BakerSetOpenStatus.baker_id:type_name -> concordium.v2.BakerId - 0, // 624: concordium.v2.BakerEvent.BakerSetOpenStatus.open_status:type_name -> concordium.v2.OpenStatus - 15, // 625: concordium.v2.BakerEvent.BakerSetMetadataUrl.baker_id:type_name -> concordium.v2.BakerId - 15, // 626: concordium.v2.BakerEvent.BakerSetTransactionFeeCommission.baker_id:type_name -> concordium.v2.BakerId - 31, // 627: concordium.v2.BakerEvent.BakerSetTransactionFeeCommission.transaction_fee_commission:type_name -> concordium.v2.AmountFraction - 15, // 628: concordium.v2.BakerEvent.BakerSetBakingRewardCommission.baker_id:type_name -> concordium.v2.BakerId - 31, // 629: concordium.v2.BakerEvent.BakerSetBakingRewardCommission.baking_reward_commission:type_name -> concordium.v2.AmountFraction - 15, // 630: concordium.v2.BakerEvent.BakerSetFinalizationRewardCommission.baker_id:type_name -> concordium.v2.BakerId - 31, // 631: concordium.v2.BakerEvent.BakerSetFinalizationRewardCommission.finalization_reward_commission:type_name -> concordium.v2.AmountFraction - 93, // 632: concordium.v2.DelegationEvent.DelegationStakeIncreased.delegator_id:type_name -> concordium.v2.DelegatorId - 37, // 633: concordium.v2.DelegationEvent.DelegationStakeIncreased.new_stake:type_name -> concordium.v2.Amount - 93, // 634: concordium.v2.DelegationEvent.DelegationStakeDecreased.delegator_id:type_name -> concordium.v2.DelegatorId - 37, // 635: concordium.v2.DelegationEvent.DelegationStakeDecreased.new_stake:type_name -> concordium.v2.Amount - 93, // 636: concordium.v2.DelegationEvent.DelegationSetRestakeEarnings.delegator_id:type_name -> concordium.v2.DelegatorId - 93, // 637: concordium.v2.DelegationEvent.DelegationSetDelegationTarget.delegator_id:type_name -> concordium.v2.DelegatorId - 25, // 638: concordium.v2.DelegationEvent.DelegationSetDelegationTarget.delegation_target:type_name -> concordium.v2.DelegationTarget - 4, // 639: concordium.v2.AccountTransactionEffects.None.transaction_type:type_name -> concordium.v2.TransactionType - 80, // 640: concordium.v2.AccountTransactionEffects.None.reject_reason:type_name -> concordium.v2.RejectReason - 84, // 641: concordium.v2.AccountTransactionEffects.ContractUpdateIssued.effects:type_name -> concordium.v2.ContractTraceElement - 37, // 642: concordium.v2.AccountTransactionEffects.AccountTransfer.amount:type_name -> concordium.v2.Amount - 42, // 643: concordium.v2.AccountTransactionEffects.AccountTransfer.receiver:type_name -> concordium.v2.AccountAddress - 86, // 644: concordium.v2.AccountTransactionEffects.AccountTransfer.memo:type_name -> concordium.v2.Memo - 87, // 645: concordium.v2.AccountTransactionEffects.BakerStakeUpdated.update:type_name -> concordium.v2.BakerStakeUpdatedData - 88, // 646: concordium.v2.AccountTransactionEffects.EncryptedAmountTransferred.removed:type_name -> concordium.v2.EncryptedAmountRemovedEvent - 89, // 647: concordium.v2.AccountTransactionEffects.EncryptedAmountTransferred.added:type_name -> concordium.v2.NewEncryptedAmountEvent - 86, // 648: concordium.v2.AccountTransactionEffects.EncryptedAmountTransferred.memo:type_name -> concordium.v2.Memo - 88, // 649: concordium.v2.AccountTransactionEffects.TransferredToPublic.removed:type_name -> concordium.v2.EncryptedAmountRemovedEvent - 37, // 650: concordium.v2.AccountTransactionEffects.TransferredToPublic.amount:type_name -> concordium.v2.Amount - 42, // 651: concordium.v2.AccountTransactionEffects.TransferredWithSchedule.receiver:type_name -> concordium.v2.AccountAddress - 21, // 652: concordium.v2.AccountTransactionEffects.TransferredWithSchedule.amount:type_name -> concordium.v2.NewRelease - 86, // 653: concordium.v2.AccountTransactionEffects.TransferredWithSchedule.memo:type_name -> concordium.v2.Memo - 46, // 654: concordium.v2.AccountTransactionEffects.CredentialsUpdated.new_cred_ids:type_name -> concordium.v2.CredentialRegistrationId - 46, // 655: concordium.v2.AccountTransactionEffects.CredentialsUpdated.removed_cred_ids:type_name -> concordium.v2.CredentialRegistrationId - 40, // 656: concordium.v2.AccountTransactionEffects.CredentialsUpdated.new_threshold:type_name -> concordium.v2.AccountThreshold - 92, // 657: concordium.v2.AccountTransactionEffects.BakerConfigured.events:type_name -> concordium.v2.BakerEvent - 94, // 658: concordium.v2.AccountTransactionEffects.DelegationConfigured.events:type_name -> concordium.v2.DelegationEvent - 37, // 659: concordium.v2.PoolPendingChange.Reduce.reduced_equity_capital:type_name -> concordium.v2.Amount - 19, // 660: concordium.v2.PoolPendingChange.Reduce.effective_time:type_name -> concordium.v2.Timestamp - 19, // 661: concordium.v2.PoolPendingChange.Remove.effective_time:type_name -> concordium.v2.Timestamp - 13, // 662: concordium.v2.BlocksAtHeightRequest.Absolute.height:type_name -> concordium.v2.AbsoluteBlockHeight - 139, // 663: concordium.v2.BlocksAtHeightRequest.Relative.genesis_index:type_name -> concordium.v2.GenesisIndex - 14, // 664: concordium.v2.BlocksAtHeightRequest.Relative.height:type_name -> concordium.v2.BlockHeight - 37, // 665: concordium.v2.TokenomicsInfo.V0.total_amount:type_name -> concordium.v2.Amount - 37, // 666: concordium.v2.TokenomicsInfo.V0.total_encrypted_amount:type_name -> concordium.v2.Amount - 37, // 667: concordium.v2.TokenomicsInfo.V0.baking_reward_account:type_name -> concordium.v2.Amount - 37, // 668: concordium.v2.TokenomicsInfo.V0.finalization_reward_account:type_name -> concordium.v2.Amount - 37, // 669: concordium.v2.TokenomicsInfo.V0.gas_account:type_name -> concordium.v2.Amount - 5, // 670: concordium.v2.TokenomicsInfo.V0.protocol_version:type_name -> concordium.v2.ProtocolVersion - 37, // 671: concordium.v2.TokenomicsInfo.V1.total_amount:type_name -> concordium.v2.Amount - 37, // 672: concordium.v2.TokenomicsInfo.V1.total_encrypted_amount:type_name -> concordium.v2.Amount - 37, // 673: concordium.v2.TokenomicsInfo.V1.baking_reward_account:type_name -> concordium.v2.Amount - 37, // 674: concordium.v2.TokenomicsInfo.V1.finalization_reward_account:type_name -> concordium.v2.Amount - 37, // 675: concordium.v2.TokenomicsInfo.V1.gas_account:type_name -> concordium.v2.Amount - 37, // 676: concordium.v2.TokenomicsInfo.V1.foundation_transaction_rewards:type_name -> concordium.v2.Amount - 19, // 677: concordium.v2.TokenomicsInfo.V1.next_payday_time:type_name -> concordium.v2.Timestamp - 120, // 678: concordium.v2.TokenomicsInfo.V1.next_payday_mint_rate:type_name -> concordium.v2.MintRate - 37, // 679: concordium.v2.TokenomicsInfo.V1.total_staked_capital:type_name -> concordium.v2.Amount - 5, // 680: concordium.v2.TokenomicsInfo.V1.protocol_version:type_name -> concordium.v2.ProtocolVersion - 76, // 681: concordium.v2.InvokeInstanceResponse.Failure.used_energy:type_name -> concordium.v2.Energy - 80, // 682: concordium.v2.InvokeInstanceResponse.Failure.reason:type_name -> concordium.v2.RejectReason - 76, // 683: concordium.v2.InvokeInstanceResponse.Success.used_energy:type_name -> concordium.v2.Energy - 84, // 684: concordium.v2.InvokeInstanceResponse.Success.effects:type_name -> concordium.v2.ContractTraceElement - 15, // 685: concordium.v2.ElectionInfo.Baker.baker:type_name -> concordium.v2.BakerId - 42, // 686: concordium.v2.ElectionInfo.Baker.account:type_name -> concordium.v2.AccountAddress - 274, // 687: concordium.v2.BlockSpecialEvent.AccountAmounts.entries:type_name -> concordium.v2.BlockSpecialEvent.AccountAmounts.Entry - 265, // 688: concordium.v2.BlockSpecialEvent.BakingRewards.baker_rewards:type_name -> concordium.v2.BlockSpecialEvent.AccountAmounts - 37, // 689: concordium.v2.BlockSpecialEvent.BakingRewards.remainder:type_name -> concordium.v2.Amount - 37, // 690: concordium.v2.BlockSpecialEvent.Mint.mint_baking_reward:type_name -> concordium.v2.Amount - 37, // 691: concordium.v2.BlockSpecialEvent.Mint.mint_finalization_reward:type_name -> concordium.v2.Amount - 37, // 692: concordium.v2.BlockSpecialEvent.Mint.mint_platform_development_charge:type_name -> concordium.v2.Amount - 42, // 693: concordium.v2.BlockSpecialEvent.Mint.foundation_account:type_name -> concordium.v2.AccountAddress - 265, // 694: concordium.v2.BlockSpecialEvent.FinalizationRewards.finalization_rewards:type_name -> concordium.v2.BlockSpecialEvent.AccountAmounts - 37, // 695: concordium.v2.BlockSpecialEvent.FinalizationRewards.remainder:type_name -> concordium.v2.Amount - 37, // 696: concordium.v2.BlockSpecialEvent.BlockReward.transaction_fees:type_name -> concordium.v2.Amount - 37, // 697: concordium.v2.BlockSpecialEvent.BlockReward.old_gas_account:type_name -> concordium.v2.Amount - 37, // 698: concordium.v2.BlockSpecialEvent.BlockReward.new_gas_account:type_name -> concordium.v2.Amount - 37, // 699: concordium.v2.BlockSpecialEvent.BlockReward.baker_reward:type_name -> concordium.v2.Amount - 37, // 700: concordium.v2.BlockSpecialEvent.BlockReward.foundation_charge:type_name -> concordium.v2.Amount - 42, // 701: concordium.v2.BlockSpecialEvent.BlockReward.baker:type_name -> concordium.v2.AccountAddress - 42, // 702: concordium.v2.BlockSpecialEvent.BlockReward.foundation_account:type_name -> concordium.v2.AccountAddress - 42, // 703: concordium.v2.BlockSpecialEvent.PaydayFoundationReward.foundation_account:type_name -> concordium.v2.AccountAddress - 37, // 704: concordium.v2.BlockSpecialEvent.PaydayFoundationReward.development_charge:type_name -> concordium.v2.Amount - 42, // 705: concordium.v2.BlockSpecialEvent.PaydayAccountReward.account:type_name -> concordium.v2.AccountAddress - 37, // 706: concordium.v2.BlockSpecialEvent.PaydayAccountReward.transaction_fees:type_name -> concordium.v2.Amount - 37, // 707: concordium.v2.BlockSpecialEvent.PaydayAccountReward.baker_reward:type_name -> concordium.v2.Amount - 37, // 708: concordium.v2.BlockSpecialEvent.PaydayAccountReward.finalization_reward:type_name -> concordium.v2.Amount - 37, // 709: concordium.v2.BlockSpecialEvent.BlockAccrueReward.transaction_fees:type_name -> concordium.v2.Amount - 37, // 710: concordium.v2.BlockSpecialEvent.BlockAccrueReward.old_gas_account:type_name -> concordium.v2.Amount - 37, // 711: concordium.v2.BlockSpecialEvent.BlockAccrueReward.new_gas_account:type_name -> concordium.v2.Amount - 37, // 712: concordium.v2.BlockSpecialEvent.BlockAccrueReward.baker_reward:type_name -> concordium.v2.Amount - 37, // 713: concordium.v2.BlockSpecialEvent.BlockAccrueReward.passive_reward:type_name -> concordium.v2.Amount - 37, // 714: concordium.v2.BlockSpecialEvent.BlockAccrueReward.foundation_charge:type_name -> concordium.v2.Amount - 15, // 715: concordium.v2.BlockSpecialEvent.BlockAccrueReward.baker:type_name -> concordium.v2.BakerId - 15, // 716: concordium.v2.BlockSpecialEvent.PaydayPoolReward.pool_owner:type_name -> concordium.v2.BakerId - 37, // 717: concordium.v2.BlockSpecialEvent.PaydayPoolReward.transaction_fees:type_name -> concordium.v2.Amount - 37, // 718: concordium.v2.BlockSpecialEvent.PaydayPoolReward.baker_reward:type_name -> concordium.v2.Amount - 37, // 719: concordium.v2.BlockSpecialEvent.PaydayPoolReward.finalization_reward:type_name -> concordium.v2.Amount - 42, // 720: concordium.v2.BlockSpecialEvent.AccountAmounts.Entry.account:type_name -> concordium.v2.AccountAddress - 37, // 721: concordium.v2.BlockSpecialEvent.AccountAmounts.Entry.amount:type_name -> concordium.v2.Amount - 166, // 722: concordium.v2.PeersInfo.Peer.peer_id:type_name -> concordium.v2.PeerId - 165, // 723: concordium.v2.PeersInfo.Peer.socket_address:type_name -> concordium.v2.IpSocketAddress - 276, // 724: concordium.v2.PeersInfo.Peer.network_stats:type_name -> concordium.v2.PeersInfo.Peer.NetworkStats - 8, // 725: concordium.v2.PeersInfo.Peer.bootstrapper:type_name -> concordium.v2.Empty - 6, // 726: concordium.v2.PeersInfo.Peer.node_catchup_status:type_name -> concordium.v2.PeersInfo.Peer.CatchupStatus - 166, // 727: concordium.v2.NodeInfo.NetworkInfo.node_id:type_name -> concordium.v2.PeerId - 15, // 728: concordium.v2.NodeInfo.BakerConsensusInfo.baker_id:type_name -> concordium.v2.BakerId - 7, // 729: concordium.v2.NodeInfo.BakerConsensusInfo.passive_committee_info:type_name -> concordium.v2.NodeInfo.BakerConsensusInfo.PassiveCommitteeInfo - 280, // 730: concordium.v2.NodeInfo.BakerConsensusInfo.active_baker_committee_info:type_name -> concordium.v2.NodeInfo.BakerConsensusInfo.ActiveBakerCommitteeInfo - 281, // 731: concordium.v2.NodeInfo.BakerConsensusInfo.active_finalizer_committee_info:type_name -> concordium.v2.NodeInfo.BakerConsensusInfo.ActiveFinalizerCommitteeInfo - 8, // 732: concordium.v2.NodeInfo.Node.not_running:type_name -> concordium.v2.Empty - 8, // 733: concordium.v2.NodeInfo.Node.passive:type_name -> concordium.v2.Empty - 278, // 734: concordium.v2.NodeInfo.Node.active:type_name -> concordium.v2.NodeInfo.BakerConsensusInfo - 175, // 735: concordium.v2.SignatureMap.SignaturesEntry.value:type_name -> concordium.v2.Signature - 175, // 736: concordium.v2.AccountSignatureMap.SignaturesEntry.value:type_name -> concordium.v2.Signature - 177, // 737: concordium.v2.AccountTransactionSignature.SignaturesEntry.value:type_name -> concordium.v2.AccountSignatureMap - 175, // 738: concordium.v2.UpdateInstructionSignature.SignaturesEntry.value:type_name -> concordium.v2.Signature - 739, // [739:739] is the sub-list for method output_type - 739, // [739:739] is the sub-list for method input_type - 739, // [739:739] is the sub-list for extension type_name - 739, // [739:739] is the sub-list for extension extendee - 0, // [0:739] is the sub-list for field type_name -} - -func init() { file_types_proto_init() } -func file_types_proto_init() { - if File_types_proto != nil { + 233, // 66: concordium.v2.BlockHashInput.relative_height:type_name -> concordium.v2.BlockHashInput.RelativeHeight + 234, // 67: concordium.v2.EpochRequest.relative_epoch:type_name -> concordium.v2.EpochRequest.RelativeEpoch + 58, // 68: concordium.v2.EpochRequest.block_hash:type_name -> concordium.v2.BlockHashInput + 42, // 69: concordium.v2.AccountIdentifierInput.address:type_name -> concordium.v2.AccountAddress + 46, // 70: concordium.v2.AccountIdentifierInput.cred_id:type_name -> concordium.v2.CredentialRegistrationId + 16, // 71: concordium.v2.AccountIdentifierInput.account_index:type_name -> concordium.v2.AccountIndex + 58, // 72: concordium.v2.AccountInfoRequest.block_hash:type_name -> concordium.v2.BlockHashInput + 60, // 73: concordium.v2.AccountInfoRequest.account_identifier:type_name -> concordium.v2.AccountIdentifierInput + 9, // 74: concordium.v2.FinalizedBlockInfo.hash:type_name -> concordium.v2.BlockHash + 13, // 75: concordium.v2.FinalizedBlockInfo.height:type_name -> concordium.v2.AbsoluteBlockHeight + 58, // 76: concordium.v2.AncestorsRequest.block_hash:type_name -> concordium.v2.BlockHashInput + 58, // 77: concordium.v2.ModuleSourceRequest.block_hash:type_name -> concordium.v2.BlockHashInput + 17, // 78: concordium.v2.ModuleSourceRequest.module_ref:type_name -> concordium.v2.ModuleRef + 58, // 79: concordium.v2.InstanceInfoRequest.block_hash:type_name -> concordium.v2.BlockHashInput + 65, // 80: concordium.v2.InstanceInfoRequest.address:type_name -> concordium.v2.ContractAddress + 235, // 81: concordium.v2.InstanceInfo.v0:type_name -> concordium.v2.InstanceInfo.V0 + 236, // 82: concordium.v2.InstanceInfo.v1:type_name -> concordium.v2.InstanceInfo.V1 + 58, // 83: concordium.v2.InstanceStateLookupRequest.block_hash:type_name -> concordium.v2.BlockHashInput + 65, // 84: concordium.v2.InstanceStateLookupRequest.address:type_name -> concordium.v2.ContractAddress + 8, // 85: concordium.v2.BlockItemStatus.received:type_name -> concordium.v2.Empty + 237, // 86: concordium.v2.BlockItemStatus.committed:type_name -> concordium.v2.BlockItemStatus.Committed + 238, // 87: concordium.v2.BlockItemStatus.finalized:type_name -> concordium.v2.BlockItemStatus.Finalized + 9, // 88: concordium.v2.BlockItemSummaryInBlock.block_hash:type_name -> concordium.v2.BlockHash + 140, // 89: concordium.v2.BlockItemSummaryInBlock.outcome:type_name -> concordium.v2.BlockItemSummary + 35, // 90: concordium.v2.NextAccountSequenceNumber.sequence_number:type_name -> concordium.v2.SequenceNumber + 8, // 91: concordium.v2.RejectReason.module_not_wf:type_name -> concordium.v2.Empty + 17, // 92: concordium.v2.RejectReason.module_hash_already_exists:type_name -> concordium.v2.ModuleRef + 42, // 93: concordium.v2.RejectReason.invalid_account_reference:type_name -> concordium.v2.AccountAddress + 239, // 94: concordium.v2.RejectReason.invalid_init_method:type_name -> concordium.v2.RejectReason.InvalidInitMethod + 240, // 95: concordium.v2.RejectReason.invalid_receive_method:type_name -> concordium.v2.RejectReason.InvalidReceiveMethod + 17, // 96: concordium.v2.RejectReason.invalid_module_reference:type_name -> concordium.v2.ModuleRef + 65, // 97: concordium.v2.RejectReason.invalid_contract_address:type_name -> concordium.v2.ContractAddress + 8, // 98: concordium.v2.RejectReason.runtime_failure:type_name -> concordium.v2.Empty + 241, // 99: concordium.v2.RejectReason.amount_too_large:type_name -> concordium.v2.RejectReason.AmountTooLarge + 8, // 100: concordium.v2.RejectReason.serialization_failure:type_name -> concordium.v2.Empty + 8, // 101: concordium.v2.RejectReason.out_of_energy:type_name -> concordium.v2.Empty + 242, // 102: concordium.v2.RejectReason.rejected_init:type_name -> concordium.v2.RejectReason.RejectedInit + 243, // 103: concordium.v2.RejectReason.rejected_receive:type_name -> concordium.v2.RejectReason.RejectedReceive + 8, // 104: concordium.v2.RejectReason.invalid_proof:type_name -> concordium.v2.Empty + 15, // 105: concordium.v2.RejectReason.already_a_baker:type_name -> concordium.v2.BakerId + 42, // 106: concordium.v2.RejectReason.not_a_baker:type_name -> concordium.v2.AccountAddress + 8, // 107: concordium.v2.RejectReason.insufficient_balance_for_baker_stake:type_name -> concordium.v2.Empty + 8, // 108: concordium.v2.RejectReason.stake_under_minimum_threshold_for_baking:type_name -> concordium.v2.Empty + 8, // 109: concordium.v2.RejectReason.baker_in_cooldown:type_name -> concordium.v2.Empty + 28, // 110: concordium.v2.RejectReason.duplicate_aggregation_key:type_name -> concordium.v2.BakerAggregationVerifyKey + 8, // 111: concordium.v2.RejectReason.non_existent_credential_id:type_name -> concordium.v2.Empty + 8, // 112: concordium.v2.RejectReason.key_index_already_in_use:type_name -> concordium.v2.Empty + 8, // 113: concordium.v2.RejectReason.invalid_account_threshold:type_name -> concordium.v2.Empty + 8, // 114: concordium.v2.RejectReason.invalid_credential_key_sign_threshold:type_name -> concordium.v2.Empty + 8, // 115: concordium.v2.RejectReason.invalid_encrypted_amount_transfer_proof:type_name -> concordium.v2.Empty + 8, // 116: concordium.v2.RejectReason.invalid_transfer_to_public_proof:type_name -> concordium.v2.Empty + 42, // 117: concordium.v2.RejectReason.encrypted_amount_self_transfer:type_name -> concordium.v2.AccountAddress + 8, // 118: concordium.v2.RejectReason.invalid_index_on_encrypted_transfer:type_name -> concordium.v2.Empty + 8, // 119: concordium.v2.RejectReason.zero_scheduledAmount:type_name -> concordium.v2.Empty + 8, // 120: concordium.v2.RejectReason.non_increasing_schedule:type_name -> concordium.v2.Empty + 8, // 121: concordium.v2.RejectReason.first_scheduled_release_expired:type_name -> concordium.v2.Empty + 42, // 122: concordium.v2.RejectReason.scheduled_self_transfer:type_name -> concordium.v2.AccountAddress + 8, // 123: concordium.v2.RejectReason.invalid_credentials:type_name -> concordium.v2.Empty + 244, // 124: concordium.v2.RejectReason.duplicate_cred_ids:type_name -> concordium.v2.RejectReason.DuplicateCredIds + 245, // 125: concordium.v2.RejectReason.non_existent_cred_ids:type_name -> concordium.v2.RejectReason.NonExistentCredIds + 8, // 126: concordium.v2.RejectReason.remove_first_credential:type_name -> concordium.v2.Empty + 8, // 127: concordium.v2.RejectReason.credential_holder_did_not_sign:type_name -> concordium.v2.Empty + 8, // 128: concordium.v2.RejectReason.not_allowed_multiple_credentials:type_name -> concordium.v2.Empty + 8, // 129: concordium.v2.RejectReason.not_allowed_to_receive_encrypted:type_name -> concordium.v2.Empty + 8, // 130: concordium.v2.RejectReason.not_allowed_to_handle_encrypted:type_name -> concordium.v2.Empty + 8, // 131: concordium.v2.RejectReason.missing_baker_add_parameters:type_name -> concordium.v2.Empty + 8, // 132: concordium.v2.RejectReason.finalization_reward_commission_not_in_range:type_name -> concordium.v2.Empty + 8, // 133: concordium.v2.RejectReason.baking_reward_commission_not_in_range:type_name -> concordium.v2.Empty + 8, // 134: concordium.v2.RejectReason.transaction_fee_commission_not_in_range:type_name -> concordium.v2.Empty + 8, // 135: concordium.v2.RejectReason.already_a_delegator:type_name -> concordium.v2.Empty + 8, // 136: concordium.v2.RejectReason.insufficient_balance_for_delegation_stake:type_name -> concordium.v2.Empty + 8, // 137: concordium.v2.RejectReason.missing_delegation_add_parameters:type_name -> concordium.v2.Empty + 8, // 138: concordium.v2.RejectReason.insufficient_delegation_stake:type_name -> concordium.v2.Empty + 8, // 139: concordium.v2.RejectReason.delegator_in_cooldown:type_name -> concordium.v2.Empty + 42, // 140: concordium.v2.RejectReason.not_a_delegator:type_name -> concordium.v2.AccountAddress + 15, // 141: concordium.v2.RejectReason.delegation_target_not_a_baker:type_name -> concordium.v2.BakerId + 8, // 142: concordium.v2.RejectReason.stake_over_maximum_threshold_for_pool:type_name -> concordium.v2.Empty + 8, // 143: concordium.v2.RejectReason.pool_would_become_over_delegated:type_name -> concordium.v2.Empty + 8, // 144: concordium.v2.RejectReason.pool_closed:type_name -> concordium.v2.Empty + 1, // 145: concordium.v2.ContractInitializedEvent.contract_version:type_name -> concordium.v2.ContractVersion + 17, // 146: concordium.v2.ContractInitializedEvent.origin_ref:type_name -> concordium.v2.ModuleRef + 65, // 147: concordium.v2.ContractInitializedEvent.address:type_name -> concordium.v2.ContractAddress + 37, // 148: concordium.v2.ContractInitializedEvent.amount:type_name -> concordium.v2.Amount + 72, // 149: concordium.v2.ContractInitializedEvent.init_name:type_name -> concordium.v2.InitName + 83, // 150: concordium.v2.ContractInitializedEvent.events:type_name -> concordium.v2.ContractEvent + 1, // 151: concordium.v2.InstanceUpdatedEvent.contract_version:type_name -> concordium.v2.ContractVersion + 65, // 152: concordium.v2.InstanceUpdatedEvent.address:type_name -> concordium.v2.ContractAddress + 43, // 153: concordium.v2.InstanceUpdatedEvent.instigator:type_name -> concordium.v2.Address + 37, // 154: concordium.v2.InstanceUpdatedEvent.amount:type_name -> concordium.v2.Amount + 73, // 155: concordium.v2.InstanceUpdatedEvent.parameter:type_name -> concordium.v2.Parameter + 71, // 156: concordium.v2.InstanceUpdatedEvent.receive_name:type_name -> concordium.v2.ReceiveName + 83, // 157: concordium.v2.InstanceUpdatedEvent.events:type_name -> concordium.v2.ContractEvent + 84, // 158: concordium.v2.ContractTraceElement.updated:type_name -> concordium.v2.InstanceUpdatedEvent + 246, // 159: concordium.v2.ContractTraceElement.transferred:type_name -> concordium.v2.ContractTraceElement.Transferred + 247, // 160: concordium.v2.ContractTraceElement.interrupted:type_name -> concordium.v2.ContractTraceElement.Interrupted + 248, // 161: concordium.v2.ContractTraceElement.resumed:type_name -> concordium.v2.ContractTraceElement.Resumed + 249, // 162: concordium.v2.ContractTraceElement.upgraded:type_name -> concordium.v2.ContractTraceElement.Upgraded + 15, // 163: concordium.v2.BakerKeysEvent.baker_id:type_name -> concordium.v2.BakerId + 42, // 164: concordium.v2.BakerKeysEvent.account:type_name -> concordium.v2.AccountAddress + 27, // 165: concordium.v2.BakerKeysEvent.sign_key:type_name -> concordium.v2.BakerSignatureVerifyKey + 26, // 166: concordium.v2.BakerKeysEvent.election_key:type_name -> concordium.v2.BakerElectionVerifyKey + 28, // 167: concordium.v2.BakerKeysEvent.aggregation_key:type_name -> concordium.v2.BakerAggregationVerifyKey + 15, // 168: concordium.v2.BakerStakeUpdatedData.baker_id:type_name -> concordium.v2.BakerId + 37, // 169: concordium.v2.BakerStakeUpdatedData.new_stake:type_name -> concordium.v2.Amount + 42, // 170: concordium.v2.EncryptedAmountRemovedEvent.account:type_name -> concordium.v2.AccountAddress + 23, // 171: concordium.v2.EncryptedAmountRemovedEvent.new_amount:type_name -> concordium.v2.EncryptedAmount + 23, // 172: concordium.v2.EncryptedAmountRemovedEvent.input_amount:type_name -> concordium.v2.EncryptedAmount + 42, // 173: concordium.v2.NewEncryptedAmountEvent.receiver:type_name -> concordium.v2.AccountAddress + 23, // 174: concordium.v2.NewEncryptedAmountEvent.encrypted_amount:type_name -> concordium.v2.EncryptedAmount + 42, // 175: concordium.v2.EncryptedSelfAmountAddedEvent.account:type_name -> concordium.v2.AccountAddress + 23, // 176: concordium.v2.EncryptedSelfAmountAddedEvent.new_amount:type_name -> concordium.v2.EncryptedAmount + 37, // 177: concordium.v2.EncryptedSelfAmountAddedEvent.amount:type_name -> concordium.v2.Amount + 250, // 178: concordium.v2.BakerEvent.baker_added:type_name -> concordium.v2.BakerEvent.BakerAdded + 15, // 179: concordium.v2.BakerEvent.baker_removed:type_name -> concordium.v2.BakerId + 251, // 180: concordium.v2.BakerEvent.baker_stake_increased:type_name -> concordium.v2.BakerEvent.BakerStakeIncreased + 252, // 181: concordium.v2.BakerEvent.baker_stake_decreased:type_name -> concordium.v2.BakerEvent.BakerStakeDecreased + 253, // 182: concordium.v2.BakerEvent.baker_restake_earnings_updated:type_name -> concordium.v2.BakerEvent.BakerRestakeEarningsUpdated + 86, // 183: concordium.v2.BakerEvent.baker_keys_updated:type_name -> concordium.v2.BakerKeysEvent + 254, // 184: concordium.v2.BakerEvent.baker_set_open_status:type_name -> concordium.v2.BakerEvent.BakerSetOpenStatus + 255, // 185: concordium.v2.BakerEvent.baker_set_metadata_url:type_name -> concordium.v2.BakerEvent.BakerSetMetadataUrl + 256, // 186: concordium.v2.BakerEvent.baker_set_transaction_fee_commission:type_name -> concordium.v2.BakerEvent.BakerSetTransactionFeeCommission + 257, // 187: concordium.v2.BakerEvent.baker_set_baking_reward_commission:type_name -> concordium.v2.BakerEvent.BakerSetBakingRewardCommission + 258, // 188: concordium.v2.BakerEvent.baker_set_finalization_reward_commission:type_name -> concordium.v2.BakerEvent.BakerSetFinalizationRewardCommission + 16, // 189: concordium.v2.DelegatorId.id:type_name -> concordium.v2.AccountIndex + 259, // 190: concordium.v2.DelegationEvent.delegation_stake_increased:type_name -> concordium.v2.DelegationEvent.DelegationStakeIncreased + 260, // 191: concordium.v2.DelegationEvent.delegation_stake_decreased:type_name -> concordium.v2.DelegationEvent.DelegationStakeDecreased + 261, // 192: concordium.v2.DelegationEvent.delegation_set_restake_earnings:type_name -> concordium.v2.DelegationEvent.DelegationSetRestakeEarnings + 262, // 193: concordium.v2.DelegationEvent.delegation_set_delegation_target:type_name -> concordium.v2.DelegationEvent.DelegationSetDelegationTarget + 94, // 194: concordium.v2.DelegationEvent.delegation_added:type_name -> concordium.v2.DelegatorId + 94, // 195: concordium.v2.DelegationEvent.delegation_removed:type_name -> concordium.v2.DelegatorId + 263, // 196: concordium.v2.AccountTransactionEffects.none:type_name -> concordium.v2.AccountTransactionEffects.None + 17, // 197: concordium.v2.AccountTransactionEffects.module_deployed:type_name -> concordium.v2.ModuleRef + 82, // 198: concordium.v2.AccountTransactionEffects.contract_initialized:type_name -> concordium.v2.ContractInitializedEvent + 264, // 199: concordium.v2.AccountTransactionEffects.contract_update_issued:type_name -> concordium.v2.AccountTransactionEffects.ContractUpdateIssued + 265, // 200: concordium.v2.AccountTransactionEffects.account_transfer:type_name -> concordium.v2.AccountTransactionEffects.AccountTransfer + 250, // 201: concordium.v2.AccountTransactionEffects.baker_added:type_name -> concordium.v2.BakerEvent.BakerAdded + 15, // 202: concordium.v2.AccountTransactionEffects.baker_removed:type_name -> concordium.v2.BakerId + 266, // 203: concordium.v2.AccountTransactionEffects.baker_stake_updated:type_name -> concordium.v2.AccountTransactionEffects.BakerStakeUpdated + 253, // 204: concordium.v2.AccountTransactionEffects.baker_restake_earnings_updated:type_name -> concordium.v2.BakerEvent.BakerRestakeEarningsUpdated + 86, // 205: concordium.v2.AccountTransactionEffects.baker_keys_updated:type_name -> concordium.v2.BakerKeysEvent + 267, // 206: concordium.v2.AccountTransactionEffects.encrypted_amount_transferred:type_name -> concordium.v2.AccountTransactionEffects.EncryptedAmountTransferred + 91, // 207: concordium.v2.AccountTransactionEffects.transferred_to_encrypted:type_name -> concordium.v2.EncryptedSelfAmountAddedEvent + 268, // 208: concordium.v2.AccountTransactionEffects.transferred_to_public:type_name -> concordium.v2.AccountTransactionEffects.TransferredToPublic + 269, // 209: concordium.v2.AccountTransactionEffects.transferred_with_schedule:type_name -> concordium.v2.AccountTransactionEffects.TransferredWithSchedule + 46, // 210: concordium.v2.AccountTransactionEffects.credential_keys_updated:type_name -> concordium.v2.CredentialRegistrationId + 270, // 211: concordium.v2.AccountTransactionEffects.credentials_updated:type_name -> concordium.v2.AccountTransactionEffects.CredentialsUpdated + 92, // 212: concordium.v2.AccountTransactionEffects.data_registered:type_name -> concordium.v2.RegisteredData + 271, // 213: concordium.v2.AccountTransactionEffects.baker_configured:type_name -> concordium.v2.AccountTransactionEffects.BakerConfigured + 272, // 214: concordium.v2.AccountTransactionEffects.delegation_configured:type_name -> concordium.v2.AccountTransactionEffects.DelegationConfigured + 31, // 215: concordium.v2.ElectionDifficulty.value:type_name -> concordium.v2.AmountFraction + 80, // 216: concordium.v2.TimeoutParameters.timeout_base:type_name -> concordium.v2.Duration + 102, // 217: concordium.v2.TimeoutParameters.timeout_increase:type_name -> concordium.v2.Ratio + 102, // 218: concordium.v2.TimeoutParameters.timeout_decrease:type_name -> concordium.v2.Ratio + 31, // 219: concordium.v2.FinalizationCommitteeParameters.finalizer_relative_stake_threshold:type_name -> concordium.v2.AmountFraction + 98, // 220: concordium.v2.ConsensusParametersV1.timeout_parameters:type_name -> concordium.v2.TimeoutParameters + 80, // 221: concordium.v2.ConsensusParametersV1.min_block_time:type_name -> concordium.v2.Duration + 77, // 222: concordium.v2.ConsensusParametersV1.block_energy_limit:type_name -> concordium.v2.Energy + 102, // 223: concordium.v2.ExchangeRate.value:type_name -> concordium.v2.Ratio + 103, // 224: concordium.v2.HigherLevelKeys.keys:type_name -> concordium.v2.UpdatePublicKey + 104, // 225: concordium.v2.HigherLevelKeys.threshold:type_name -> concordium.v2.UpdateKeysThreshold + 105, // 226: concordium.v2.AccessStructure.access_public_keys:type_name -> concordium.v2.UpdateKeysIndex + 104, // 227: concordium.v2.AccessStructure.access_threshold:type_name -> concordium.v2.UpdateKeysThreshold + 103, // 228: concordium.v2.AuthorizationsV0.keys:type_name -> concordium.v2.UpdatePublicKey + 107, // 229: concordium.v2.AuthorizationsV0.emergency:type_name -> concordium.v2.AccessStructure + 107, // 230: concordium.v2.AuthorizationsV0.protocol:type_name -> concordium.v2.AccessStructure + 107, // 231: concordium.v2.AuthorizationsV0.parameter_consensus:type_name -> concordium.v2.AccessStructure + 107, // 232: concordium.v2.AuthorizationsV0.parameter_euro_per_energy:type_name -> concordium.v2.AccessStructure + 107, // 233: concordium.v2.AuthorizationsV0.parameter_micro_CCD_per_euro:type_name -> concordium.v2.AccessStructure + 107, // 234: concordium.v2.AuthorizationsV0.parameter_foundation_account:type_name -> concordium.v2.AccessStructure + 107, // 235: concordium.v2.AuthorizationsV0.parameter_mint_distribution:type_name -> concordium.v2.AccessStructure + 107, // 236: concordium.v2.AuthorizationsV0.parameter_transaction_fee_distribution:type_name -> concordium.v2.AccessStructure + 107, // 237: concordium.v2.AuthorizationsV0.parameter_gas_rewards:type_name -> concordium.v2.AccessStructure + 107, // 238: concordium.v2.AuthorizationsV0.pool_parameters:type_name -> concordium.v2.AccessStructure + 107, // 239: concordium.v2.AuthorizationsV0.add_anonymity_revoker:type_name -> concordium.v2.AccessStructure + 107, // 240: concordium.v2.AuthorizationsV0.add_identity_provider:type_name -> concordium.v2.AccessStructure + 108, // 241: concordium.v2.AuthorizationsV1.v0:type_name -> concordium.v2.AuthorizationsV0 + 107, // 242: concordium.v2.AuthorizationsV1.parameter_cooldown:type_name -> concordium.v2.AccessStructure + 107, // 243: concordium.v2.AuthorizationsV1.parameter_time:type_name -> concordium.v2.AccessStructure + 273, // 244: concordium.v2.ArInfo.identity:type_name -> concordium.v2.ArInfo.ArIdentity + 110, // 245: concordium.v2.ArInfo.description:type_name -> concordium.v2.Description + 274, // 246: concordium.v2.ArInfo.public_key:type_name -> concordium.v2.ArInfo.ArPublicKey + 112, // 247: concordium.v2.IpInfo.identity:type_name -> concordium.v2.IpIdentity + 110, // 248: concordium.v2.IpInfo.description:type_name -> concordium.v2.Description + 275, // 249: concordium.v2.IpInfo.verify_key:type_name -> concordium.v2.IpInfo.IpVerifyKey + 276, // 250: concordium.v2.IpInfo.cdi_verify_key:type_name -> concordium.v2.IpInfo.IpCdiVerifyKey + 31, // 251: concordium.v2.InclusiveRangeAmountFraction.min:type_name -> concordium.v2.AmountFraction + 31, // 252: concordium.v2.InclusiveRangeAmountFraction.max_:type_name -> concordium.v2.AmountFraction + 115, // 253: concordium.v2.CommissionRanges.finalization:type_name -> concordium.v2.InclusiveRangeAmountFraction + 115, // 254: concordium.v2.CommissionRanges.baking:type_name -> concordium.v2.InclusiveRangeAmountFraction + 115, // 255: concordium.v2.CommissionRanges.transaction:type_name -> concordium.v2.InclusiveRangeAmountFraction + 31, // 256: concordium.v2.CapitalBound.value:type_name -> concordium.v2.AmountFraction + 102, // 257: concordium.v2.LeverageFactor.value:type_name -> concordium.v2.Ratio + 119, // 258: concordium.v2.RewardPeriodLength.value:type_name -> concordium.v2.Epoch + 114, // 259: concordium.v2.CooldownParametersCpv1.pool_owner_cooldown:type_name -> concordium.v2.DurationSeconds + 114, // 260: concordium.v2.CooldownParametersCpv1.delegator_cooldown:type_name -> concordium.v2.DurationSeconds + 31, // 261: concordium.v2.PoolParametersCpv1.passive_finalization_commission:type_name -> concordium.v2.AmountFraction + 31, // 262: concordium.v2.PoolParametersCpv1.passive_baking_commission:type_name -> concordium.v2.AmountFraction + 31, // 263: concordium.v2.PoolParametersCpv1.passive_transaction_commission:type_name -> concordium.v2.AmountFraction + 116, // 264: concordium.v2.PoolParametersCpv1.commission_bounds:type_name -> concordium.v2.CommissionRanges + 37, // 265: concordium.v2.PoolParametersCpv1.minimum_equity_capital:type_name -> concordium.v2.Amount + 117, // 266: concordium.v2.PoolParametersCpv1.capital_bound:type_name -> concordium.v2.CapitalBound + 118, // 267: concordium.v2.PoolParametersCpv1.leverage_bound:type_name -> concordium.v2.LeverageFactor + 121, // 268: concordium.v2.TimeParametersCpv1.reward_period_length:type_name -> concordium.v2.RewardPeriodLength + 122, // 269: concordium.v2.TimeParametersCpv1.mint_per_payday:type_name -> concordium.v2.MintRate + 31, // 270: concordium.v2.MintDistributionCpv1.baking_reward:type_name -> concordium.v2.AmountFraction + 31, // 271: concordium.v2.MintDistributionCpv1.finalization_reward:type_name -> concordium.v2.AmountFraction + 10, // 272: concordium.v2.ProtocolUpdate.specificationHash:type_name -> concordium.v2.Sha256Hash + 122, // 273: concordium.v2.MintDistributionCpv0.mint_per_slot:type_name -> concordium.v2.MintRate + 31, // 274: concordium.v2.MintDistributionCpv0.baking_reward:type_name -> concordium.v2.AmountFraction + 31, // 275: concordium.v2.MintDistributionCpv0.finalization_reward:type_name -> concordium.v2.AmountFraction + 31, // 276: concordium.v2.TransactionFeeDistribution.baker:type_name -> concordium.v2.AmountFraction + 31, // 277: concordium.v2.TransactionFeeDistribution.gas_account:type_name -> concordium.v2.AmountFraction + 31, // 278: concordium.v2.GasRewards.baker:type_name -> concordium.v2.AmountFraction + 31, // 279: concordium.v2.GasRewards.finalization_proof:type_name -> concordium.v2.AmountFraction + 31, // 280: concordium.v2.GasRewards.account_creation:type_name -> concordium.v2.AmountFraction + 31, // 281: concordium.v2.GasRewards.chain_update:type_name -> concordium.v2.AmountFraction + 31, // 282: concordium.v2.GasRewardsCpv2.baker:type_name -> concordium.v2.AmountFraction + 31, // 283: concordium.v2.GasRewardsCpv2.account_creation:type_name -> concordium.v2.AmountFraction + 31, // 284: concordium.v2.GasRewardsCpv2.chain_update:type_name -> concordium.v2.AmountFraction + 37, // 285: concordium.v2.BakerStakeThreshold.baker_stake_threshold:type_name -> concordium.v2.Amount + 106, // 286: concordium.v2.RootUpdate.root_keys_update:type_name -> concordium.v2.HigherLevelKeys + 106, // 287: concordium.v2.RootUpdate.level_1_keys_update:type_name -> concordium.v2.HigherLevelKeys + 108, // 288: concordium.v2.RootUpdate.level_2_keys_update_v0:type_name -> concordium.v2.AuthorizationsV0 + 109, // 289: concordium.v2.RootUpdate.level_2_keys_update_v1:type_name -> concordium.v2.AuthorizationsV1 + 106, // 290: concordium.v2.Level1Update.level_1_keys_update:type_name -> concordium.v2.HigherLevelKeys + 108, // 291: concordium.v2.Level1Update.level_2_keys_update_v0:type_name -> concordium.v2.AuthorizationsV0 + 109, // 292: concordium.v2.Level1Update.level_2_keys_update_v1:type_name -> concordium.v2.AuthorizationsV1 + 127, // 293: concordium.v2.UpdatePayload.protocol_update:type_name -> concordium.v2.ProtocolUpdate + 97, // 294: concordium.v2.UpdatePayload.election_difficulty_update:type_name -> concordium.v2.ElectionDifficulty + 101, // 295: concordium.v2.UpdatePayload.euro_per_energy_update:type_name -> concordium.v2.ExchangeRate + 101, // 296: concordium.v2.UpdatePayload.micro_ccd_per_euro_update:type_name -> concordium.v2.ExchangeRate + 42, // 297: concordium.v2.UpdatePayload.foundation_account_update:type_name -> concordium.v2.AccountAddress + 128, // 298: concordium.v2.UpdatePayload.mint_distribution_update:type_name -> concordium.v2.MintDistributionCpv0 + 129, // 299: concordium.v2.UpdatePayload.transaction_fee_distribution_update:type_name -> concordium.v2.TransactionFeeDistribution + 130, // 300: concordium.v2.UpdatePayload.gas_rewards_update:type_name -> concordium.v2.GasRewards + 132, // 301: concordium.v2.UpdatePayload.baker_stake_threshold_update:type_name -> concordium.v2.BakerStakeThreshold + 133, // 302: concordium.v2.UpdatePayload.root_update:type_name -> concordium.v2.RootUpdate + 134, // 303: concordium.v2.UpdatePayload.level_1_update:type_name -> concordium.v2.Level1Update + 111, // 304: concordium.v2.UpdatePayload.add_anonymity_revoker_update:type_name -> concordium.v2.ArInfo + 113, // 305: concordium.v2.UpdatePayload.add_identity_provider_update:type_name -> concordium.v2.IpInfo + 123, // 306: concordium.v2.UpdatePayload.cooldown_parameters_cpv_1_update:type_name -> concordium.v2.CooldownParametersCpv1 + 124, // 307: concordium.v2.UpdatePayload.pool_parameters_cpv_1_update:type_name -> concordium.v2.PoolParametersCpv1 + 125, // 308: concordium.v2.UpdatePayload.time_parameters_cpv_1_update:type_name -> concordium.v2.TimeParametersCpv1 + 126, // 309: concordium.v2.UpdatePayload.mint_distribution_cpv_1_update:type_name -> concordium.v2.MintDistributionCpv1 + 131, // 310: concordium.v2.UpdatePayload.gas_rewards_cpv_2_update:type_name -> concordium.v2.GasRewardsCpv2 + 98, // 311: concordium.v2.UpdatePayload.timeout_parameters_update:type_name -> concordium.v2.TimeoutParameters + 80, // 312: concordium.v2.UpdatePayload.min_block_time_update:type_name -> concordium.v2.Duration + 77, // 313: concordium.v2.UpdatePayload.block_energy_limit_update:type_name -> concordium.v2.Energy + 99, // 314: concordium.v2.UpdatePayload.finalization_committee_parameters_update:type_name -> concordium.v2.FinalizationCommitteeParameters + 37, // 315: concordium.v2.AccountTransactionDetails.cost:type_name -> concordium.v2.Amount + 42, // 316: concordium.v2.AccountTransactionDetails.sender:type_name -> concordium.v2.AccountAddress + 96, // 317: concordium.v2.AccountTransactionDetails.effects:type_name -> concordium.v2.AccountTransactionEffects + 2, // 318: concordium.v2.AccountCreationDetails.credential_type:type_name -> concordium.v2.CredentialType + 42, // 319: concordium.v2.AccountCreationDetails.address:type_name -> concordium.v2.AccountAddress + 46, // 320: concordium.v2.AccountCreationDetails.reg_id:type_name -> concordium.v2.CredentialRegistrationId + 138, // 321: concordium.v2.UpdateDetails.effective_time:type_name -> concordium.v2.TransactionTime + 135, // 322: concordium.v2.UpdateDetails.payload:type_name -> concordium.v2.UpdatePayload + 277, // 323: concordium.v2.BlockItemSummary.index:type_name -> concordium.v2.BlockItemSummary.TransactionIndex + 77, // 324: concordium.v2.BlockItemSummary.energy_cost:type_name -> concordium.v2.Energy + 11, // 325: concordium.v2.BlockItemSummary.hash:type_name -> concordium.v2.TransactionHash + 136, // 326: concordium.v2.BlockItemSummary.account_transaction:type_name -> concordium.v2.AccountTransactionDetails + 137, // 327: concordium.v2.BlockItemSummary.account_creation:type_name -> concordium.v2.AccountCreationDetails + 139, // 328: concordium.v2.BlockItemSummary.update:type_name -> concordium.v2.UpdateDetails + 9, // 329: concordium.v2.ConsensusInfo.best_block:type_name -> concordium.v2.BlockHash + 9, // 330: concordium.v2.ConsensusInfo.genesis_block:type_name -> concordium.v2.BlockHash + 19, // 331: concordium.v2.ConsensusInfo.genesis_time:type_name -> concordium.v2.Timestamp + 80, // 332: concordium.v2.ConsensusInfo.slot_duration:type_name -> concordium.v2.Duration + 80, // 333: concordium.v2.ConsensusInfo.epoch_duration:type_name -> concordium.v2.Duration + 9, // 334: concordium.v2.ConsensusInfo.last_finalized_block:type_name -> concordium.v2.BlockHash + 13, // 335: concordium.v2.ConsensusInfo.best_block_height:type_name -> concordium.v2.AbsoluteBlockHeight + 13, // 336: concordium.v2.ConsensusInfo.last_finalized_block_height:type_name -> concordium.v2.AbsoluteBlockHeight + 19, // 337: concordium.v2.ConsensusInfo.block_last_received_time:type_name -> concordium.v2.Timestamp + 19, // 338: concordium.v2.ConsensusInfo.block_last_arrived_time:type_name -> concordium.v2.Timestamp + 19, // 339: concordium.v2.ConsensusInfo.last_finalized_time:type_name -> concordium.v2.Timestamp + 5, // 340: concordium.v2.ConsensusInfo.protocol_version:type_name -> concordium.v2.ProtocolVersion + 141, // 341: concordium.v2.ConsensusInfo.genesis_index:type_name -> concordium.v2.GenesisIndex + 9, // 342: concordium.v2.ConsensusInfo.current_era_genesis_block:type_name -> concordium.v2.BlockHash + 19, // 343: concordium.v2.ConsensusInfo.current_era_genesis_time:type_name -> concordium.v2.Timestamp + 80, // 344: concordium.v2.ConsensusInfo.current_timeout_duration:type_name -> concordium.v2.Duration + 120, // 345: concordium.v2.ConsensusInfo.current_round:type_name -> concordium.v2.Round + 119, // 346: concordium.v2.ConsensusInfo.current_epoch:type_name -> concordium.v2.Epoch + 19, // 347: concordium.v2.ConsensusInfo.trigger_block_time:type_name -> concordium.v2.Timestamp + 9, // 348: concordium.v2.ArrivedBlockInfo.hash:type_name -> concordium.v2.BlockHash + 13, // 349: concordium.v2.ArrivedBlockInfo.height:type_name -> concordium.v2.AbsoluteBlockHeight + 9, // 350: concordium.v2.BlockInfo.hash:type_name -> concordium.v2.BlockHash + 13, // 351: concordium.v2.BlockInfo.height:type_name -> concordium.v2.AbsoluteBlockHeight + 9, // 352: concordium.v2.BlockInfo.parent_block:type_name -> concordium.v2.BlockHash + 9, // 353: concordium.v2.BlockInfo.last_finalized_block:type_name -> concordium.v2.BlockHash + 141, // 354: concordium.v2.BlockInfo.genesis_index:type_name -> concordium.v2.GenesisIndex + 14, // 355: concordium.v2.BlockInfo.era_block_height:type_name -> concordium.v2.BlockHeight + 19, // 356: concordium.v2.BlockInfo.receive_time:type_name -> concordium.v2.Timestamp + 19, // 357: concordium.v2.BlockInfo.arrive_time:type_name -> concordium.v2.Timestamp + 78, // 358: concordium.v2.BlockInfo.slot_number:type_name -> concordium.v2.Slot + 19, // 359: concordium.v2.BlockInfo.slot_time:type_name -> concordium.v2.Timestamp + 15, // 360: concordium.v2.BlockInfo.baker:type_name -> concordium.v2.BakerId + 77, // 361: concordium.v2.BlockInfo.transactions_energy_cost:type_name -> concordium.v2.Energy + 12, // 362: concordium.v2.BlockInfo.state_hash:type_name -> concordium.v2.StateHash + 5, // 363: concordium.v2.BlockInfo.protocol_version:type_name -> concordium.v2.ProtocolVersion + 120, // 364: concordium.v2.BlockInfo.round:type_name -> concordium.v2.Round + 119, // 365: concordium.v2.BlockInfo.epoch:type_name -> concordium.v2.Epoch + 58, // 366: concordium.v2.PoolInfoRequest.block_hash:type_name -> concordium.v2.BlockHashInput + 15, // 367: concordium.v2.PoolInfoRequest.baker:type_name -> concordium.v2.BakerId + 278, // 368: concordium.v2.PoolPendingChange.reduce:type_name -> concordium.v2.PoolPendingChange.Reduce + 279, // 369: concordium.v2.PoolPendingChange.remove:type_name -> concordium.v2.PoolPendingChange.Remove + 37, // 370: concordium.v2.PoolCurrentPaydayInfo.transaction_fees_earned:type_name -> concordium.v2.Amount + 37, // 371: concordium.v2.PoolCurrentPaydayInfo.effective_stake:type_name -> concordium.v2.Amount + 37, // 372: concordium.v2.PoolCurrentPaydayInfo.baker_equity_capital:type_name -> concordium.v2.Amount + 37, // 373: concordium.v2.PoolCurrentPaydayInfo.delegated_capital:type_name -> concordium.v2.Amount + 32, // 374: concordium.v2.PoolCurrentPaydayInfo.commission_rates:type_name -> concordium.v2.CommissionRates + 15, // 375: concordium.v2.PoolInfoResponse.baker:type_name -> concordium.v2.BakerId + 42, // 376: concordium.v2.PoolInfoResponse.address:type_name -> concordium.v2.AccountAddress + 37, // 377: concordium.v2.PoolInfoResponse.equity_capital:type_name -> concordium.v2.Amount + 37, // 378: concordium.v2.PoolInfoResponse.delegated_capital:type_name -> concordium.v2.Amount + 37, // 379: concordium.v2.PoolInfoResponse.delegated_capital_cap:type_name -> concordium.v2.Amount + 33, // 380: concordium.v2.PoolInfoResponse.pool_info:type_name -> concordium.v2.BakerPoolInfo + 147, // 381: concordium.v2.PoolInfoResponse.equity_pending_change:type_name -> concordium.v2.PoolPendingChange + 148, // 382: concordium.v2.PoolInfoResponse.current_payday_info:type_name -> concordium.v2.PoolCurrentPaydayInfo + 37, // 383: concordium.v2.PoolInfoResponse.all_pool_total_capital:type_name -> concordium.v2.Amount + 37, // 384: concordium.v2.PassiveDelegationInfo.delegated_capital:type_name -> concordium.v2.Amount + 32, // 385: concordium.v2.PassiveDelegationInfo.commission_rates:type_name -> concordium.v2.CommissionRates + 37, // 386: concordium.v2.PassiveDelegationInfo.current_payday_transaction_fees_earned:type_name -> concordium.v2.Amount + 37, // 387: concordium.v2.PassiveDelegationInfo.current_payday_delegated_capital:type_name -> concordium.v2.Amount + 37, // 388: concordium.v2.PassiveDelegationInfo.all_pool_total_capital:type_name -> concordium.v2.Amount + 280, // 389: concordium.v2.BlocksAtHeightRequest.absolute:type_name -> concordium.v2.BlocksAtHeightRequest.Absolute + 281, // 390: concordium.v2.BlocksAtHeightRequest.relative:type_name -> concordium.v2.BlocksAtHeightRequest.Relative + 9, // 391: concordium.v2.BlocksAtHeightResponse.blocks:type_name -> concordium.v2.BlockHash + 282, // 392: concordium.v2.TokenomicsInfo.v0:type_name -> concordium.v2.TokenomicsInfo.V0 + 283, // 393: concordium.v2.TokenomicsInfo.v1:type_name -> concordium.v2.TokenomicsInfo.V1 + 58, // 394: concordium.v2.InvokeInstanceRequest.block_hash:type_name -> concordium.v2.BlockHashInput + 43, // 395: concordium.v2.InvokeInstanceRequest.invoker:type_name -> concordium.v2.Address + 65, // 396: concordium.v2.InvokeInstanceRequest.instance:type_name -> concordium.v2.ContractAddress + 37, // 397: concordium.v2.InvokeInstanceRequest.amount:type_name -> concordium.v2.Amount + 71, // 398: concordium.v2.InvokeInstanceRequest.entrypoint:type_name -> concordium.v2.ReceiveName + 73, // 399: concordium.v2.InvokeInstanceRequest.parameter:type_name -> concordium.v2.Parameter + 77, // 400: concordium.v2.InvokeInstanceRequest.energy:type_name -> concordium.v2.Energy + 285, // 401: concordium.v2.InvokeInstanceResponse.success:type_name -> concordium.v2.InvokeInstanceResponse.Success + 284, // 402: concordium.v2.InvokeInstanceResponse.failure:type_name -> concordium.v2.InvokeInstanceResponse.Failure + 58, // 403: concordium.v2.GetPoolDelegatorsRequest.block_hash:type_name -> concordium.v2.BlockHashInput + 15, // 404: concordium.v2.GetPoolDelegatorsRequest.baker:type_name -> concordium.v2.BakerId + 42, // 405: concordium.v2.DelegatorInfo.account:type_name -> concordium.v2.AccountAddress + 37, // 406: concordium.v2.DelegatorInfo.stake:type_name -> concordium.v2.Amount + 30, // 407: concordium.v2.DelegatorInfo.pending_change:type_name -> concordium.v2.StakePendingChange + 42, // 408: concordium.v2.DelegatorRewardPeriodInfo.account:type_name -> concordium.v2.AccountAddress + 37, // 409: concordium.v2.DelegatorRewardPeriodInfo.stake:type_name -> concordium.v2.Amount + 9, // 410: concordium.v2.Branch.block_hash:type_name -> concordium.v2.BlockHash + 159, // 411: concordium.v2.Branch.children:type_name -> concordium.v2.Branch + 97, // 412: concordium.v2.ElectionInfo.election_difficulty:type_name -> concordium.v2.ElectionDifficulty + 160, // 413: concordium.v2.ElectionInfo.election_nonce:type_name -> concordium.v2.LeadershipElectionNonce + 286, // 414: concordium.v2.ElectionInfo.baker_election_info:type_name -> concordium.v2.ElectionInfo.Baker + 288, // 415: concordium.v2.BlockSpecialEvent.baking_rewards:type_name -> concordium.v2.BlockSpecialEvent.BakingRewards + 289, // 416: concordium.v2.BlockSpecialEvent.mint:type_name -> concordium.v2.BlockSpecialEvent.Mint + 290, // 417: concordium.v2.BlockSpecialEvent.finalization_rewards:type_name -> concordium.v2.BlockSpecialEvent.FinalizationRewards + 291, // 418: concordium.v2.BlockSpecialEvent.block_reward:type_name -> concordium.v2.BlockSpecialEvent.BlockReward + 292, // 419: concordium.v2.BlockSpecialEvent.payday_foundation_reward:type_name -> concordium.v2.BlockSpecialEvent.PaydayFoundationReward + 293, // 420: concordium.v2.BlockSpecialEvent.payday_account_reward:type_name -> concordium.v2.BlockSpecialEvent.PaydayAccountReward + 294, // 421: concordium.v2.BlockSpecialEvent.block_accrue_reward:type_name -> concordium.v2.BlockSpecialEvent.BlockAccrueReward + 295, // 422: concordium.v2.BlockSpecialEvent.payday_pool_reward:type_name -> concordium.v2.BlockSpecialEvent.PaydayPoolReward + 138, // 423: concordium.v2.PendingUpdate.effective_time:type_name -> concordium.v2.TransactionTime + 106, // 424: concordium.v2.PendingUpdate.root_keys:type_name -> concordium.v2.HigherLevelKeys + 106, // 425: concordium.v2.PendingUpdate.level1_keys:type_name -> concordium.v2.HigherLevelKeys + 108, // 426: concordium.v2.PendingUpdate.level2_keys_cpv_0:type_name -> concordium.v2.AuthorizationsV0 + 109, // 427: concordium.v2.PendingUpdate.level2_keys_cpv_1:type_name -> concordium.v2.AuthorizationsV1 + 127, // 428: concordium.v2.PendingUpdate.protocol:type_name -> concordium.v2.ProtocolUpdate + 97, // 429: concordium.v2.PendingUpdate.election_difficulty:type_name -> concordium.v2.ElectionDifficulty + 101, // 430: concordium.v2.PendingUpdate.euro_per_energy:type_name -> concordium.v2.ExchangeRate + 101, // 431: concordium.v2.PendingUpdate.micro_ccd_per_euro:type_name -> concordium.v2.ExchangeRate + 42, // 432: concordium.v2.PendingUpdate.foundation_account:type_name -> concordium.v2.AccountAddress + 128, // 433: concordium.v2.PendingUpdate.mint_distribution_cpv_0:type_name -> concordium.v2.MintDistributionCpv0 + 126, // 434: concordium.v2.PendingUpdate.mint_distribution_cpv_1:type_name -> concordium.v2.MintDistributionCpv1 + 129, // 435: concordium.v2.PendingUpdate.transaction_fee_distribution:type_name -> concordium.v2.TransactionFeeDistribution + 130, // 436: concordium.v2.PendingUpdate.gas_rewards:type_name -> concordium.v2.GasRewards + 132, // 437: concordium.v2.PendingUpdate.pool_parameters_cpv_0:type_name -> concordium.v2.BakerStakeThreshold + 124, // 438: concordium.v2.PendingUpdate.pool_parameters_cpv_1:type_name -> concordium.v2.PoolParametersCpv1 + 111, // 439: concordium.v2.PendingUpdate.add_anonymity_revoker:type_name -> concordium.v2.ArInfo + 113, // 440: concordium.v2.PendingUpdate.add_identity_provider:type_name -> concordium.v2.IpInfo + 123, // 441: concordium.v2.PendingUpdate.cooldown_parameters:type_name -> concordium.v2.CooldownParametersCpv1 + 125, // 442: concordium.v2.PendingUpdate.time_parameters:type_name -> concordium.v2.TimeParametersCpv1 + 131, // 443: concordium.v2.PendingUpdate.gas_rewards_cpv_2:type_name -> concordium.v2.GasRewardsCpv2 + 98, // 444: concordium.v2.PendingUpdate.timeout_parameters:type_name -> concordium.v2.TimeoutParameters + 80, // 445: concordium.v2.PendingUpdate.min_block_time:type_name -> concordium.v2.Duration + 77, // 446: concordium.v2.PendingUpdate.block_energy_limit:type_name -> concordium.v2.Energy + 99, // 447: concordium.v2.PendingUpdate.finalization_committee_parameters:type_name -> concordium.v2.FinalizationCommitteeParameters + 35, // 448: concordium.v2.NextUpdateSequenceNumbers.root_keys:type_name -> concordium.v2.SequenceNumber + 35, // 449: concordium.v2.NextUpdateSequenceNumbers.level1_keys:type_name -> concordium.v2.SequenceNumber + 35, // 450: concordium.v2.NextUpdateSequenceNumbers.level2_keys:type_name -> concordium.v2.SequenceNumber + 35, // 451: concordium.v2.NextUpdateSequenceNumbers.protocol:type_name -> concordium.v2.SequenceNumber + 35, // 452: concordium.v2.NextUpdateSequenceNumbers.election_difficulty:type_name -> concordium.v2.SequenceNumber + 35, // 453: concordium.v2.NextUpdateSequenceNumbers.euro_per_energy:type_name -> concordium.v2.SequenceNumber + 35, // 454: concordium.v2.NextUpdateSequenceNumbers.micro_ccd_per_euro:type_name -> concordium.v2.SequenceNumber + 35, // 455: concordium.v2.NextUpdateSequenceNumbers.foundation_account:type_name -> concordium.v2.SequenceNumber + 35, // 456: concordium.v2.NextUpdateSequenceNumbers.mint_distribution:type_name -> concordium.v2.SequenceNumber + 35, // 457: concordium.v2.NextUpdateSequenceNumbers.transaction_fee_distribution:type_name -> concordium.v2.SequenceNumber + 35, // 458: concordium.v2.NextUpdateSequenceNumbers.gas_rewards:type_name -> concordium.v2.SequenceNumber + 35, // 459: concordium.v2.NextUpdateSequenceNumbers.pool_parameters:type_name -> concordium.v2.SequenceNumber + 35, // 460: concordium.v2.NextUpdateSequenceNumbers.add_anonymity_revoker:type_name -> concordium.v2.SequenceNumber + 35, // 461: concordium.v2.NextUpdateSequenceNumbers.add_identity_provider:type_name -> concordium.v2.SequenceNumber + 35, // 462: concordium.v2.NextUpdateSequenceNumbers.cooldown_parameters:type_name -> concordium.v2.SequenceNumber + 35, // 463: concordium.v2.NextUpdateSequenceNumbers.time_parameters:type_name -> concordium.v2.SequenceNumber + 35, // 464: concordium.v2.NextUpdateSequenceNumbers.timeout_parameters:type_name -> concordium.v2.SequenceNumber + 35, // 465: concordium.v2.NextUpdateSequenceNumbers.min_block_time:type_name -> concordium.v2.SequenceNumber + 35, // 466: concordium.v2.NextUpdateSequenceNumbers.block_energy_limit:type_name -> concordium.v2.SequenceNumber + 35, // 467: concordium.v2.NextUpdateSequenceNumbers.finalization_committee_parameters:type_name -> concordium.v2.SequenceNumber + 165, // 468: concordium.v2.IpSocketAddress.ip:type_name -> concordium.v2.IpAddress + 166, // 469: concordium.v2.IpSocketAddress.port:type_name -> concordium.v2.Port + 165, // 470: concordium.v2.BannedPeer.ip_address:type_name -> concordium.v2.IpAddress + 169, // 471: concordium.v2.BannedPeers.peers:type_name -> concordium.v2.BannedPeer + 165, // 472: concordium.v2.PeerToBan.ip_address:type_name -> concordium.v2.IpAddress + 297, // 473: concordium.v2.PeersInfo.peers:type_name -> concordium.v2.PeersInfo.Peer + 19, // 474: concordium.v2.NodeInfo.local_time:type_name -> concordium.v2.Timestamp + 80, // 475: concordium.v2.NodeInfo.peer_uptime:type_name -> concordium.v2.Duration + 299, // 476: concordium.v2.NodeInfo.network_info:type_name -> concordium.v2.NodeInfo.NetworkInfo + 8, // 477: concordium.v2.NodeInfo.bootstrapper:type_name -> concordium.v2.Empty + 301, // 478: concordium.v2.NodeInfo.node:type_name -> concordium.v2.NodeInfo.Node + 188, // 479: concordium.v2.SendBlockItemRequest.account_transaction:type_name -> concordium.v2.AccountTransaction + 176, // 480: concordium.v2.SendBlockItemRequest.credential_deployment:type_name -> concordium.v2.CredentialDeployment + 191, // 481: concordium.v2.SendBlockItemRequest.update_instruction:type_name -> concordium.v2.UpdateInstruction + 138, // 482: concordium.v2.CredentialDeployment.message_expiry:type_name -> concordium.v2.TransactionTime + 304, // 483: concordium.v2.SignatureMap.signatures:type_name -> concordium.v2.SignatureMap.SignaturesEntry + 305, // 484: concordium.v2.AccountSignatureMap.signatures:type_name -> concordium.v2.AccountSignatureMap.SignaturesEntry + 306, // 485: concordium.v2.AccountTransactionSignature.signatures:type_name -> concordium.v2.AccountTransactionSignature.SignaturesEntry + 42, // 486: concordium.v2.AccountTransactionHeader.sender:type_name -> concordium.v2.AccountAddress + 35, // 487: concordium.v2.AccountTransactionHeader.sequence_number:type_name -> concordium.v2.SequenceNumber + 77, // 488: concordium.v2.AccountTransactionHeader.energy_amount:type_name -> concordium.v2.Energy + 138, // 489: concordium.v2.AccountTransactionHeader.expiry:type_name -> concordium.v2.TransactionTime + 37, // 490: concordium.v2.InitContractPayload.amount:type_name -> concordium.v2.Amount + 17, // 491: concordium.v2.InitContractPayload.module_ref:type_name -> concordium.v2.ModuleRef + 72, // 492: concordium.v2.InitContractPayload.init_name:type_name -> concordium.v2.InitName + 73, // 493: concordium.v2.InitContractPayload.parameter:type_name -> concordium.v2.Parameter + 37, // 494: concordium.v2.UpdateContractPayload.amount:type_name -> concordium.v2.Amount + 65, // 495: concordium.v2.UpdateContractPayload.address:type_name -> concordium.v2.ContractAddress + 71, // 496: concordium.v2.UpdateContractPayload.receive_name:type_name -> concordium.v2.ReceiveName + 73, // 497: concordium.v2.UpdateContractPayload.parameter:type_name -> concordium.v2.Parameter + 37, // 498: concordium.v2.TransferPayload.amount:type_name -> concordium.v2.Amount + 42, // 499: concordium.v2.TransferPayload.receiver:type_name -> concordium.v2.AccountAddress + 37, // 500: concordium.v2.TransferWithMemoPayload.amount:type_name -> concordium.v2.Amount + 42, // 501: concordium.v2.TransferWithMemoPayload.receiver:type_name -> concordium.v2.AccountAddress + 87, // 502: concordium.v2.TransferWithMemoPayload.memo:type_name -> concordium.v2.Memo + 18, // 503: concordium.v2.AccountTransactionPayload.deploy_module:type_name -> concordium.v2.VersionedModuleSource + 182, // 504: concordium.v2.AccountTransactionPayload.init_contract:type_name -> concordium.v2.InitContractPayload + 183, // 505: concordium.v2.AccountTransactionPayload.update_contract:type_name -> concordium.v2.UpdateContractPayload + 184, // 506: concordium.v2.AccountTransactionPayload.transfer:type_name -> concordium.v2.TransferPayload + 185, // 507: concordium.v2.AccountTransactionPayload.transfer_with_memo:type_name -> concordium.v2.TransferWithMemoPayload + 92, // 508: concordium.v2.AccountTransactionPayload.register_data:type_name -> concordium.v2.RegisteredData + 181, // 509: concordium.v2.PreAccountTransaction.header:type_name -> concordium.v2.AccountTransactionHeader + 186, // 510: concordium.v2.PreAccountTransaction.payload:type_name -> concordium.v2.AccountTransactionPayload + 180, // 511: concordium.v2.AccountTransaction.signature:type_name -> concordium.v2.AccountTransactionSignature + 181, // 512: concordium.v2.AccountTransaction.header:type_name -> concordium.v2.AccountTransactionHeader + 186, // 513: concordium.v2.AccountTransaction.payload:type_name -> concordium.v2.AccountTransactionPayload + 36, // 514: concordium.v2.UpdateInstructionHeader.sequence_number:type_name -> concordium.v2.UpdateSequenceNumber + 138, // 515: concordium.v2.UpdateInstructionHeader.effective_time:type_name -> concordium.v2.TransactionTime + 138, // 516: concordium.v2.UpdateInstructionHeader.timeout:type_name -> concordium.v2.TransactionTime + 178, // 517: concordium.v2.UpdateInstruction.signatures:type_name -> concordium.v2.SignatureMap + 189, // 518: concordium.v2.UpdateInstruction.header:type_name -> concordium.v2.UpdateInstructionHeader + 190, // 519: concordium.v2.UpdateInstruction.payload:type_name -> concordium.v2.UpdateInstructionPayload + 97, // 520: concordium.v2.ChainParametersV0.election_difficulty:type_name -> concordium.v2.ElectionDifficulty + 101, // 521: concordium.v2.ChainParametersV0.euro_per_energy:type_name -> concordium.v2.ExchangeRate + 101, // 522: concordium.v2.ChainParametersV0.micro_ccd_per_euro:type_name -> concordium.v2.ExchangeRate + 119, // 523: concordium.v2.ChainParametersV0.baker_cooldown_epochs:type_name -> concordium.v2.Epoch + 193, // 524: concordium.v2.ChainParametersV0.account_creation_limit:type_name -> concordium.v2.CredentialsPerBlockLimit + 128, // 525: concordium.v2.ChainParametersV0.mint_distribution:type_name -> concordium.v2.MintDistributionCpv0 + 129, // 526: concordium.v2.ChainParametersV0.transaction_fee_distribution:type_name -> concordium.v2.TransactionFeeDistribution + 130, // 527: concordium.v2.ChainParametersV0.gas_rewards:type_name -> concordium.v2.GasRewards + 42, // 528: concordium.v2.ChainParametersV0.foundation_account:type_name -> concordium.v2.AccountAddress + 37, // 529: concordium.v2.ChainParametersV0.minimum_threshold_for_baking:type_name -> concordium.v2.Amount + 106, // 530: concordium.v2.ChainParametersV0.root_keys:type_name -> concordium.v2.HigherLevelKeys + 106, // 531: concordium.v2.ChainParametersV0.level1_keys:type_name -> concordium.v2.HigherLevelKeys + 108, // 532: concordium.v2.ChainParametersV0.level2_keys:type_name -> concordium.v2.AuthorizationsV0 + 97, // 533: concordium.v2.ChainParametersV1.election_difficulty:type_name -> concordium.v2.ElectionDifficulty + 101, // 534: concordium.v2.ChainParametersV1.euro_per_energy:type_name -> concordium.v2.ExchangeRate + 101, // 535: concordium.v2.ChainParametersV1.micro_ccd_per_euro:type_name -> concordium.v2.ExchangeRate + 123, // 536: concordium.v2.ChainParametersV1.cooldown_parameters:type_name -> concordium.v2.CooldownParametersCpv1 + 125, // 537: concordium.v2.ChainParametersV1.time_parameters:type_name -> concordium.v2.TimeParametersCpv1 + 193, // 538: concordium.v2.ChainParametersV1.account_creation_limit:type_name -> concordium.v2.CredentialsPerBlockLimit + 126, // 539: concordium.v2.ChainParametersV1.mint_distribution:type_name -> concordium.v2.MintDistributionCpv1 + 129, // 540: concordium.v2.ChainParametersV1.transaction_fee_distribution:type_name -> concordium.v2.TransactionFeeDistribution + 130, // 541: concordium.v2.ChainParametersV1.gas_rewards:type_name -> concordium.v2.GasRewards + 42, // 542: concordium.v2.ChainParametersV1.foundation_account:type_name -> concordium.v2.AccountAddress + 124, // 543: concordium.v2.ChainParametersV1.pool_parameters:type_name -> concordium.v2.PoolParametersCpv1 + 106, // 544: concordium.v2.ChainParametersV1.root_keys:type_name -> concordium.v2.HigherLevelKeys + 106, // 545: concordium.v2.ChainParametersV1.level1_keys:type_name -> concordium.v2.HigherLevelKeys + 109, // 546: concordium.v2.ChainParametersV1.level2_keys:type_name -> concordium.v2.AuthorizationsV1 + 100, // 547: concordium.v2.ChainParametersV2.consensus_parameters:type_name -> concordium.v2.ConsensusParametersV1 + 101, // 548: concordium.v2.ChainParametersV2.euro_per_energy:type_name -> concordium.v2.ExchangeRate + 101, // 549: concordium.v2.ChainParametersV2.micro_ccd_per_euro:type_name -> concordium.v2.ExchangeRate + 123, // 550: concordium.v2.ChainParametersV2.cooldown_parameters:type_name -> concordium.v2.CooldownParametersCpv1 + 125, // 551: concordium.v2.ChainParametersV2.time_parameters:type_name -> concordium.v2.TimeParametersCpv1 + 193, // 552: concordium.v2.ChainParametersV2.account_creation_limit:type_name -> concordium.v2.CredentialsPerBlockLimit + 126, // 553: concordium.v2.ChainParametersV2.mint_distribution:type_name -> concordium.v2.MintDistributionCpv1 + 129, // 554: concordium.v2.ChainParametersV2.transaction_fee_distribution:type_name -> concordium.v2.TransactionFeeDistribution + 131, // 555: concordium.v2.ChainParametersV2.gas_rewards:type_name -> concordium.v2.GasRewardsCpv2 + 42, // 556: concordium.v2.ChainParametersV2.foundation_account:type_name -> concordium.v2.AccountAddress + 124, // 557: concordium.v2.ChainParametersV2.pool_parameters:type_name -> concordium.v2.PoolParametersCpv1 + 106, // 558: concordium.v2.ChainParametersV2.root_keys:type_name -> concordium.v2.HigherLevelKeys + 106, // 559: concordium.v2.ChainParametersV2.level1_keys:type_name -> concordium.v2.HigherLevelKeys + 109, // 560: concordium.v2.ChainParametersV2.level2_keys:type_name -> concordium.v2.AuthorizationsV1 + 99, // 561: concordium.v2.ChainParametersV2.finalization_committee_parameters:type_name -> concordium.v2.FinalizationCommitteeParameters + 194, // 562: concordium.v2.ChainParameters.v0:type_name -> concordium.v2.ChainParametersV0 + 195, // 563: concordium.v2.ChainParameters.v1:type_name -> concordium.v2.ChainParametersV1 + 196, // 564: concordium.v2.ChainParameters.v2:type_name -> concordium.v2.ChainParametersV2 + 15, // 565: concordium.v2.FinalizationSummaryParty.baker:type_name -> concordium.v2.BakerId + 9, // 566: concordium.v2.FinalizationSummary.block:type_name -> concordium.v2.BlockHash + 199, // 567: concordium.v2.FinalizationSummary.index:type_name -> concordium.v2.FinalizationIndex + 14, // 568: concordium.v2.FinalizationSummary.delay:type_name -> concordium.v2.BlockHeight + 198, // 569: concordium.v2.FinalizationSummary.finalizers:type_name -> concordium.v2.FinalizationSummaryParty + 8, // 570: concordium.v2.BlockFinalizationSummary.none:type_name -> concordium.v2.Empty + 200, // 571: concordium.v2.BlockFinalizationSummary.record:type_name -> concordium.v2.FinalizationSummary + 11, // 572: concordium.v2.BlockItem.hash:type_name -> concordium.v2.TransactionHash + 188, // 573: concordium.v2.BlockItem.account_transaction:type_name -> concordium.v2.AccountTransaction + 176, // 574: concordium.v2.BlockItem.credential_deployment:type_name -> concordium.v2.CredentialDeployment + 191, // 575: concordium.v2.BlockItem.update_instruction:type_name -> concordium.v2.UpdateInstruction + 29, // 576: concordium.v2.BakerRewardPeriodInfo.baker:type_name -> concordium.v2.BakerInfo + 37, // 577: concordium.v2.BakerRewardPeriodInfo.effective_stake:type_name -> concordium.v2.Amount + 32, // 578: concordium.v2.BakerRewardPeriodInfo.commission_rates:type_name -> concordium.v2.CommissionRates + 37, // 579: concordium.v2.BakerRewardPeriodInfo.equity_capital:type_name -> concordium.v2.Amount + 37, // 580: concordium.v2.BakerRewardPeriodInfo.delegated_capital:type_name -> concordium.v2.Amount + 9, // 581: concordium.v2.QuorumCertificate.block_hash:type_name -> concordium.v2.BlockHash + 120, // 582: concordium.v2.QuorumCertificate.round:type_name -> concordium.v2.Round + 119, // 583: concordium.v2.QuorumCertificate.epoch:type_name -> concordium.v2.Epoch + 204, // 584: concordium.v2.QuorumCertificate.aggregate_signature:type_name -> concordium.v2.QuorumSignature + 15, // 585: concordium.v2.QuorumCertificate.signatories:type_name -> concordium.v2.BakerId + 120, // 586: concordium.v2.FinalizerRound.round:type_name -> concordium.v2.Round + 15, // 587: concordium.v2.FinalizerRound.finalizers:type_name -> concordium.v2.BakerId + 120, // 588: concordium.v2.TimeoutCertificate.round:type_name -> concordium.v2.Round + 119, // 589: concordium.v2.TimeoutCertificate.min_epoch:type_name -> concordium.v2.Epoch + 206, // 590: concordium.v2.TimeoutCertificate.qc_rounds_first_epoch:type_name -> concordium.v2.FinalizerRound + 206, // 591: concordium.v2.TimeoutCertificate.qc_rounds_second_epoch:type_name -> concordium.v2.FinalizerRound + 207, // 592: concordium.v2.TimeoutCertificate.aggregate_signature:type_name -> concordium.v2.TimeoutSignature + 205, // 593: concordium.v2.EpochFinalizationEntry.finalized_qc:type_name -> concordium.v2.QuorumCertificate + 205, // 594: concordium.v2.EpochFinalizationEntry.successor_qc:type_name -> concordium.v2.QuorumCertificate + 209, // 595: concordium.v2.EpochFinalizationEntry.successor_proof:type_name -> concordium.v2.SuccessorProof + 205, // 596: concordium.v2.BlockCertificates.quorum_certificate:type_name -> concordium.v2.QuorumCertificate + 208, // 597: concordium.v2.BlockCertificates.timeout_certificate:type_name -> concordium.v2.TimeoutCertificate + 210, // 598: concordium.v2.BlockCertificates.epoch_finalization_entry:type_name -> concordium.v2.EpochFinalizationEntry + 120, // 599: concordium.v2.WinningBaker.round:type_name -> concordium.v2.Round + 15, // 600: concordium.v2.WinningBaker.winner:type_name -> concordium.v2.BakerId + 58, // 601: concordium.v2.DryRunRequest.load_block_state:type_name -> concordium.v2.BlockHashInput + 214, // 602: concordium.v2.DryRunRequest.state_query:type_name -> concordium.v2.DryRunStateQuery + 216, // 603: concordium.v2.DryRunRequest.state_operation:type_name -> concordium.v2.DryRunStateOperation + 60, // 604: concordium.v2.DryRunStateQuery.get_account_info:type_name -> concordium.v2.AccountIdentifierInput + 65, // 605: concordium.v2.DryRunStateQuery.get_instance_info:type_name -> concordium.v2.ContractAddress + 215, // 606: concordium.v2.DryRunStateQuery.invoke_instance:type_name -> concordium.v2.DryRunInvokeInstance + 43, // 607: concordium.v2.DryRunInvokeInstance.invoker:type_name -> concordium.v2.Address + 65, // 608: concordium.v2.DryRunInvokeInstance.instance:type_name -> concordium.v2.ContractAddress + 37, // 609: concordium.v2.DryRunInvokeInstance.amount:type_name -> concordium.v2.Amount + 71, // 610: concordium.v2.DryRunInvokeInstance.entrypoint:type_name -> concordium.v2.ReceiveName + 73, // 611: concordium.v2.DryRunInvokeInstance.parameter:type_name -> concordium.v2.Parameter + 77, // 612: concordium.v2.DryRunInvokeInstance.energy:type_name -> concordium.v2.Energy + 19, // 613: concordium.v2.DryRunStateOperation.set_timestamp:type_name -> concordium.v2.Timestamp + 217, // 614: concordium.v2.DryRunStateOperation.mint_to_account:type_name -> concordium.v2.DryRunMintToAccount + 218, // 615: concordium.v2.DryRunStateOperation.run_transaction:type_name -> concordium.v2.DryRunTransaction + 42, // 616: concordium.v2.DryRunMintToAccount.account:type_name -> concordium.v2.AccountAddress + 37, // 617: concordium.v2.DryRunMintToAccount.amount:type_name -> concordium.v2.Amount + 42, // 618: concordium.v2.DryRunTransaction.sender:type_name -> concordium.v2.AccountAddress + 77, // 619: concordium.v2.DryRunTransaction.energy_amount:type_name -> concordium.v2.Energy + 186, // 620: concordium.v2.DryRunTransaction.payload:type_name -> concordium.v2.AccountTransactionPayload + 219, // 621: concordium.v2.DryRunTransaction.signatures:type_name -> concordium.v2.DryRunSignature + 221, // 622: concordium.v2.DryRunResponse.error:type_name -> concordium.v2.DryRunErrorResponse + 222, // 623: concordium.v2.DryRunResponse.success:type_name -> concordium.v2.DryRunSuccessResponse + 77, // 624: concordium.v2.DryRunResponse.quota_remaining:type_name -> concordium.v2.Energy + 307, // 625: concordium.v2.DryRunErrorResponse.no_state:type_name -> concordium.v2.DryRunErrorResponse.NoState + 308, // 626: concordium.v2.DryRunErrorResponse.block_not_found:type_name -> concordium.v2.DryRunErrorResponse.BlockNotFound + 309, // 627: concordium.v2.DryRunErrorResponse.account_not_found:type_name -> concordium.v2.DryRunErrorResponse.AccountNotFound + 310, // 628: concordium.v2.DryRunErrorResponse.instance_not_found:type_name -> concordium.v2.DryRunErrorResponse.InstanceNotFound + 311, // 629: concordium.v2.DryRunErrorResponse.amount_over_limit:type_name -> concordium.v2.DryRunErrorResponse.AmountOverLimit + 312, // 630: concordium.v2.DryRunErrorResponse.balance_insufficient:type_name -> concordium.v2.DryRunErrorResponse.BalanceInsufficient + 313, // 631: concordium.v2.DryRunErrorResponse.energy_insufficient:type_name -> concordium.v2.DryRunErrorResponse.EnergyInsufficient + 314, // 632: concordium.v2.DryRunErrorResponse.invoke_failed:type_name -> concordium.v2.DryRunErrorResponse.InvokeFailure + 315, // 633: concordium.v2.DryRunSuccessResponse.block_state_loaded:type_name -> concordium.v2.DryRunSuccessResponse.BlockStateLoaded + 57, // 634: concordium.v2.DryRunSuccessResponse.account_info:type_name -> concordium.v2.AccountInfo + 67, // 635: concordium.v2.DryRunSuccessResponse.instance_info:type_name -> concordium.v2.InstanceInfo + 319, // 636: concordium.v2.DryRunSuccessResponse.invoke_succeeded:type_name -> concordium.v2.DryRunSuccessResponse.InvokeSuccess + 316, // 637: concordium.v2.DryRunSuccessResponse.timestamp_set:type_name -> concordium.v2.DryRunSuccessResponse.TimestampSet + 317, // 638: concordium.v2.DryRunSuccessResponse.minted_to_account:type_name -> concordium.v2.DryRunSuccessResponse.MintedToAccount + 318, // 639: concordium.v2.DryRunSuccessResponse.transaction_executed:type_name -> concordium.v2.DryRunSuccessResponse.TransactionExecuted + 37, // 640: concordium.v2.StakePendingChange.Reduce.new_stake:type_name -> concordium.v2.Amount + 19, // 641: concordium.v2.StakePendingChange.Reduce.effective_time:type_name -> concordium.v2.Timestamp + 37, // 642: concordium.v2.AccountStakingInfo.Baker.staked_amount:type_name -> concordium.v2.Amount + 29, // 643: concordium.v2.AccountStakingInfo.Baker.baker_info:type_name -> concordium.v2.BakerInfo + 30, // 644: concordium.v2.AccountStakingInfo.Baker.pending_change:type_name -> concordium.v2.StakePendingChange + 33, // 645: concordium.v2.AccountStakingInfo.Baker.pool_info:type_name -> concordium.v2.BakerPoolInfo + 37, // 646: concordium.v2.AccountStakingInfo.Delegator.staked_amount:type_name -> concordium.v2.Amount + 25, // 647: concordium.v2.AccountStakingInfo.Delegator.target:type_name -> concordium.v2.DelegationTarget + 30, // 648: concordium.v2.AccountStakingInfo.Delegator.pending_change:type_name -> concordium.v2.StakePendingChange + 44, // 649: concordium.v2.CredentialPublicKeys.KeysEntry.value:type_name -> concordium.v2.AccountVerifyKey + 53, // 650: concordium.v2.CredentialCommitments.AttributesEntry.value:type_name -> concordium.v2.Commitment + 51, // 651: concordium.v2.NormalCredentialValues.ArDataEntry.value:type_name -> concordium.v2.ChainArData + 56, // 652: concordium.v2.AccountInfo.CredsEntry.value:type_name -> concordium.v2.AccountCredential + 141, // 653: concordium.v2.BlockHashInput.RelativeHeight.genesis_index:type_name -> concordium.v2.GenesisIndex + 14, // 654: concordium.v2.BlockHashInput.RelativeHeight.height:type_name -> concordium.v2.BlockHeight + 141, // 655: concordium.v2.EpochRequest.RelativeEpoch.genesis_index:type_name -> concordium.v2.GenesisIndex + 119, // 656: concordium.v2.EpochRequest.RelativeEpoch.epoch:type_name -> concordium.v2.Epoch + 74, // 657: concordium.v2.InstanceInfo.V0.model:type_name -> concordium.v2.ContractStateV0 + 42, // 658: concordium.v2.InstanceInfo.V0.owner:type_name -> concordium.v2.AccountAddress + 37, // 659: concordium.v2.InstanceInfo.V0.amount:type_name -> concordium.v2.Amount + 71, // 660: concordium.v2.InstanceInfo.V0.methods:type_name -> concordium.v2.ReceiveName + 72, // 661: concordium.v2.InstanceInfo.V0.name:type_name -> concordium.v2.InitName + 17, // 662: concordium.v2.InstanceInfo.V0.source_module:type_name -> concordium.v2.ModuleRef + 42, // 663: concordium.v2.InstanceInfo.V1.owner:type_name -> concordium.v2.AccountAddress + 37, // 664: concordium.v2.InstanceInfo.V1.amount:type_name -> concordium.v2.Amount + 71, // 665: concordium.v2.InstanceInfo.V1.methods:type_name -> concordium.v2.ReceiveName + 72, // 666: concordium.v2.InstanceInfo.V1.name:type_name -> concordium.v2.InitName + 17, // 667: concordium.v2.InstanceInfo.V1.source_module:type_name -> concordium.v2.ModuleRef + 76, // 668: concordium.v2.BlockItemStatus.Committed.outcomes:type_name -> concordium.v2.BlockItemSummaryInBlock + 76, // 669: concordium.v2.BlockItemStatus.Finalized.outcome:type_name -> concordium.v2.BlockItemSummaryInBlock + 17, // 670: concordium.v2.RejectReason.InvalidInitMethod.module_ref:type_name -> concordium.v2.ModuleRef + 72, // 671: concordium.v2.RejectReason.InvalidInitMethod.init_name:type_name -> concordium.v2.InitName + 17, // 672: concordium.v2.RejectReason.InvalidReceiveMethod.module_ref:type_name -> concordium.v2.ModuleRef + 71, // 673: concordium.v2.RejectReason.InvalidReceiveMethod.receive_name:type_name -> concordium.v2.ReceiveName + 43, // 674: concordium.v2.RejectReason.AmountTooLarge.address:type_name -> concordium.v2.Address + 37, // 675: concordium.v2.RejectReason.AmountTooLarge.amount:type_name -> concordium.v2.Amount + 65, // 676: concordium.v2.RejectReason.RejectedReceive.contract_address:type_name -> concordium.v2.ContractAddress + 71, // 677: concordium.v2.RejectReason.RejectedReceive.receive_name:type_name -> concordium.v2.ReceiveName + 73, // 678: concordium.v2.RejectReason.RejectedReceive.parameter:type_name -> concordium.v2.Parameter + 46, // 679: concordium.v2.RejectReason.DuplicateCredIds.ids:type_name -> concordium.v2.CredentialRegistrationId + 46, // 680: concordium.v2.RejectReason.NonExistentCredIds.ids:type_name -> concordium.v2.CredentialRegistrationId + 65, // 681: concordium.v2.ContractTraceElement.Transferred.sender:type_name -> concordium.v2.ContractAddress + 37, // 682: concordium.v2.ContractTraceElement.Transferred.amount:type_name -> concordium.v2.Amount + 42, // 683: concordium.v2.ContractTraceElement.Transferred.receiver:type_name -> concordium.v2.AccountAddress + 65, // 684: concordium.v2.ContractTraceElement.Interrupted.address:type_name -> concordium.v2.ContractAddress + 83, // 685: concordium.v2.ContractTraceElement.Interrupted.events:type_name -> concordium.v2.ContractEvent + 65, // 686: concordium.v2.ContractTraceElement.Resumed.address:type_name -> concordium.v2.ContractAddress + 65, // 687: concordium.v2.ContractTraceElement.Upgraded.address:type_name -> concordium.v2.ContractAddress + 17, // 688: concordium.v2.ContractTraceElement.Upgraded.from:type_name -> concordium.v2.ModuleRef + 17, // 689: concordium.v2.ContractTraceElement.Upgraded.to:type_name -> concordium.v2.ModuleRef + 86, // 690: concordium.v2.BakerEvent.BakerAdded.keys_event:type_name -> concordium.v2.BakerKeysEvent + 37, // 691: concordium.v2.BakerEvent.BakerAdded.stake:type_name -> concordium.v2.Amount + 15, // 692: concordium.v2.BakerEvent.BakerStakeIncreased.baker_id:type_name -> concordium.v2.BakerId + 37, // 693: concordium.v2.BakerEvent.BakerStakeIncreased.new_stake:type_name -> concordium.v2.Amount + 15, // 694: concordium.v2.BakerEvent.BakerStakeDecreased.baker_id:type_name -> concordium.v2.BakerId + 37, // 695: concordium.v2.BakerEvent.BakerStakeDecreased.new_stake:type_name -> concordium.v2.Amount + 15, // 696: concordium.v2.BakerEvent.BakerRestakeEarningsUpdated.baker_id:type_name -> concordium.v2.BakerId + 15, // 697: concordium.v2.BakerEvent.BakerSetOpenStatus.baker_id:type_name -> concordium.v2.BakerId + 0, // 698: concordium.v2.BakerEvent.BakerSetOpenStatus.open_status:type_name -> concordium.v2.OpenStatus + 15, // 699: concordium.v2.BakerEvent.BakerSetMetadataUrl.baker_id:type_name -> concordium.v2.BakerId + 15, // 700: concordium.v2.BakerEvent.BakerSetTransactionFeeCommission.baker_id:type_name -> concordium.v2.BakerId + 31, // 701: concordium.v2.BakerEvent.BakerSetTransactionFeeCommission.transaction_fee_commission:type_name -> concordium.v2.AmountFraction + 15, // 702: concordium.v2.BakerEvent.BakerSetBakingRewardCommission.baker_id:type_name -> concordium.v2.BakerId + 31, // 703: concordium.v2.BakerEvent.BakerSetBakingRewardCommission.baking_reward_commission:type_name -> concordium.v2.AmountFraction + 15, // 704: concordium.v2.BakerEvent.BakerSetFinalizationRewardCommission.baker_id:type_name -> concordium.v2.BakerId + 31, // 705: concordium.v2.BakerEvent.BakerSetFinalizationRewardCommission.finalization_reward_commission:type_name -> concordium.v2.AmountFraction + 94, // 706: concordium.v2.DelegationEvent.DelegationStakeIncreased.delegator_id:type_name -> concordium.v2.DelegatorId + 37, // 707: concordium.v2.DelegationEvent.DelegationStakeIncreased.new_stake:type_name -> concordium.v2.Amount + 94, // 708: concordium.v2.DelegationEvent.DelegationStakeDecreased.delegator_id:type_name -> concordium.v2.DelegatorId + 37, // 709: concordium.v2.DelegationEvent.DelegationStakeDecreased.new_stake:type_name -> concordium.v2.Amount + 94, // 710: concordium.v2.DelegationEvent.DelegationSetRestakeEarnings.delegator_id:type_name -> concordium.v2.DelegatorId + 94, // 711: concordium.v2.DelegationEvent.DelegationSetDelegationTarget.delegator_id:type_name -> concordium.v2.DelegatorId + 25, // 712: concordium.v2.DelegationEvent.DelegationSetDelegationTarget.delegation_target:type_name -> concordium.v2.DelegationTarget + 4, // 713: concordium.v2.AccountTransactionEffects.None.transaction_type:type_name -> concordium.v2.TransactionType + 81, // 714: concordium.v2.AccountTransactionEffects.None.reject_reason:type_name -> concordium.v2.RejectReason + 85, // 715: concordium.v2.AccountTransactionEffects.ContractUpdateIssued.effects:type_name -> concordium.v2.ContractTraceElement + 37, // 716: concordium.v2.AccountTransactionEffects.AccountTransfer.amount:type_name -> concordium.v2.Amount + 42, // 717: concordium.v2.AccountTransactionEffects.AccountTransfer.receiver:type_name -> concordium.v2.AccountAddress + 87, // 718: concordium.v2.AccountTransactionEffects.AccountTransfer.memo:type_name -> concordium.v2.Memo + 88, // 719: concordium.v2.AccountTransactionEffects.BakerStakeUpdated.update:type_name -> concordium.v2.BakerStakeUpdatedData + 89, // 720: concordium.v2.AccountTransactionEffects.EncryptedAmountTransferred.removed:type_name -> concordium.v2.EncryptedAmountRemovedEvent + 90, // 721: concordium.v2.AccountTransactionEffects.EncryptedAmountTransferred.added:type_name -> concordium.v2.NewEncryptedAmountEvent + 87, // 722: concordium.v2.AccountTransactionEffects.EncryptedAmountTransferred.memo:type_name -> concordium.v2.Memo + 89, // 723: concordium.v2.AccountTransactionEffects.TransferredToPublic.removed:type_name -> concordium.v2.EncryptedAmountRemovedEvent + 37, // 724: concordium.v2.AccountTransactionEffects.TransferredToPublic.amount:type_name -> concordium.v2.Amount + 42, // 725: concordium.v2.AccountTransactionEffects.TransferredWithSchedule.receiver:type_name -> concordium.v2.AccountAddress + 21, // 726: concordium.v2.AccountTransactionEffects.TransferredWithSchedule.amount:type_name -> concordium.v2.NewRelease + 87, // 727: concordium.v2.AccountTransactionEffects.TransferredWithSchedule.memo:type_name -> concordium.v2.Memo + 46, // 728: concordium.v2.AccountTransactionEffects.CredentialsUpdated.new_cred_ids:type_name -> concordium.v2.CredentialRegistrationId + 46, // 729: concordium.v2.AccountTransactionEffects.CredentialsUpdated.removed_cred_ids:type_name -> concordium.v2.CredentialRegistrationId + 40, // 730: concordium.v2.AccountTransactionEffects.CredentialsUpdated.new_threshold:type_name -> concordium.v2.AccountThreshold + 93, // 731: concordium.v2.AccountTransactionEffects.BakerConfigured.events:type_name -> concordium.v2.BakerEvent + 95, // 732: concordium.v2.AccountTransactionEffects.DelegationConfigured.events:type_name -> concordium.v2.DelegationEvent + 37, // 733: concordium.v2.PoolPendingChange.Reduce.reduced_equity_capital:type_name -> concordium.v2.Amount + 19, // 734: concordium.v2.PoolPendingChange.Reduce.effective_time:type_name -> concordium.v2.Timestamp + 19, // 735: concordium.v2.PoolPendingChange.Remove.effective_time:type_name -> concordium.v2.Timestamp + 13, // 736: concordium.v2.BlocksAtHeightRequest.Absolute.height:type_name -> concordium.v2.AbsoluteBlockHeight + 141, // 737: concordium.v2.BlocksAtHeightRequest.Relative.genesis_index:type_name -> concordium.v2.GenesisIndex + 14, // 738: concordium.v2.BlocksAtHeightRequest.Relative.height:type_name -> concordium.v2.BlockHeight + 37, // 739: concordium.v2.TokenomicsInfo.V0.total_amount:type_name -> concordium.v2.Amount + 37, // 740: concordium.v2.TokenomicsInfo.V0.total_encrypted_amount:type_name -> concordium.v2.Amount + 37, // 741: concordium.v2.TokenomicsInfo.V0.baking_reward_account:type_name -> concordium.v2.Amount + 37, // 742: concordium.v2.TokenomicsInfo.V0.finalization_reward_account:type_name -> concordium.v2.Amount + 37, // 743: concordium.v2.TokenomicsInfo.V0.gas_account:type_name -> concordium.v2.Amount + 5, // 744: concordium.v2.TokenomicsInfo.V0.protocol_version:type_name -> concordium.v2.ProtocolVersion + 37, // 745: concordium.v2.TokenomicsInfo.V1.total_amount:type_name -> concordium.v2.Amount + 37, // 746: concordium.v2.TokenomicsInfo.V1.total_encrypted_amount:type_name -> concordium.v2.Amount + 37, // 747: concordium.v2.TokenomicsInfo.V1.baking_reward_account:type_name -> concordium.v2.Amount + 37, // 748: concordium.v2.TokenomicsInfo.V1.finalization_reward_account:type_name -> concordium.v2.Amount + 37, // 749: concordium.v2.TokenomicsInfo.V1.gas_account:type_name -> concordium.v2.Amount + 37, // 750: concordium.v2.TokenomicsInfo.V1.foundation_transaction_rewards:type_name -> concordium.v2.Amount + 19, // 751: concordium.v2.TokenomicsInfo.V1.next_payday_time:type_name -> concordium.v2.Timestamp + 122, // 752: concordium.v2.TokenomicsInfo.V1.next_payday_mint_rate:type_name -> concordium.v2.MintRate + 37, // 753: concordium.v2.TokenomicsInfo.V1.total_staked_capital:type_name -> concordium.v2.Amount + 5, // 754: concordium.v2.TokenomicsInfo.V1.protocol_version:type_name -> concordium.v2.ProtocolVersion + 77, // 755: concordium.v2.InvokeInstanceResponse.Failure.used_energy:type_name -> concordium.v2.Energy + 81, // 756: concordium.v2.InvokeInstanceResponse.Failure.reason:type_name -> concordium.v2.RejectReason + 77, // 757: concordium.v2.InvokeInstanceResponse.Success.used_energy:type_name -> concordium.v2.Energy + 85, // 758: concordium.v2.InvokeInstanceResponse.Success.effects:type_name -> concordium.v2.ContractTraceElement + 15, // 759: concordium.v2.ElectionInfo.Baker.baker:type_name -> concordium.v2.BakerId + 42, // 760: concordium.v2.ElectionInfo.Baker.account:type_name -> concordium.v2.AccountAddress + 296, // 761: concordium.v2.BlockSpecialEvent.AccountAmounts.entries:type_name -> concordium.v2.BlockSpecialEvent.AccountAmounts.Entry + 287, // 762: concordium.v2.BlockSpecialEvent.BakingRewards.baker_rewards:type_name -> concordium.v2.BlockSpecialEvent.AccountAmounts + 37, // 763: concordium.v2.BlockSpecialEvent.BakingRewards.remainder:type_name -> concordium.v2.Amount + 37, // 764: concordium.v2.BlockSpecialEvent.Mint.mint_baking_reward:type_name -> concordium.v2.Amount + 37, // 765: concordium.v2.BlockSpecialEvent.Mint.mint_finalization_reward:type_name -> concordium.v2.Amount + 37, // 766: concordium.v2.BlockSpecialEvent.Mint.mint_platform_development_charge:type_name -> concordium.v2.Amount + 42, // 767: concordium.v2.BlockSpecialEvent.Mint.foundation_account:type_name -> concordium.v2.AccountAddress + 287, // 768: concordium.v2.BlockSpecialEvent.FinalizationRewards.finalization_rewards:type_name -> concordium.v2.BlockSpecialEvent.AccountAmounts + 37, // 769: concordium.v2.BlockSpecialEvent.FinalizationRewards.remainder:type_name -> concordium.v2.Amount + 37, // 770: concordium.v2.BlockSpecialEvent.BlockReward.transaction_fees:type_name -> concordium.v2.Amount + 37, // 771: concordium.v2.BlockSpecialEvent.BlockReward.old_gas_account:type_name -> concordium.v2.Amount + 37, // 772: concordium.v2.BlockSpecialEvent.BlockReward.new_gas_account:type_name -> concordium.v2.Amount + 37, // 773: concordium.v2.BlockSpecialEvent.BlockReward.baker_reward:type_name -> concordium.v2.Amount + 37, // 774: concordium.v2.BlockSpecialEvent.BlockReward.foundation_charge:type_name -> concordium.v2.Amount + 42, // 775: concordium.v2.BlockSpecialEvent.BlockReward.baker:type_name -> concordium.v2.AccountAddress + 42, // 776: concordium.v2.BlockSpecialEvent.BlockReward.foundation_account:type_name -> concordium.v2.AccountAddress + 42, // 777: concordium.v2.BlockSpecialEvent.PaydayFoundationReward.foundation_account:type_name -> concordium.v2.AccountAddress + 37, // 778: concordium.v2.BlockSpecialEvent.PaydayFoundationReward.development_charge:type_name -> concordium.v2.Amount + 42, // 779: concordium.v2.BlockSpecialEvent.PaydayAccountReward.account:type_name -> concordium.v2.AccountAddress + 37, // 780: concordium.v2.BlockSpecialEvent.PaydayAccountReward.transaction_fees:type_name -> concordium.v2.Amount + 37, // 781: concordium.v2.BlockSpecialEvent.PaydayAccountReward.baker_reward:type_name -> concordium.v2.Amount + 37, // 782: concordium.v2.BlockSpecialEvent.PaydayAccountReward.finalization_reward:type_name -> concordium.v2.Amount + 37, // 783: concordium.v2.BlockSpecialEvent.BlockAccrueReward.transaction_fees:type_name -> concordium.v2.Amount + 37, // 784: concordium.v2.BlockSpecialEvent.BlockAccrueReward.old_gas_account:type_name -> concordium.v2.Amount + 37, // 785: concordium.v2.BlockSpecialEvent.BlockAccrueReward.new_gas_account:type_name -> concordium.v2.Amount + 37, // 786: concordium.v2.BlockSpecialEvent.BlockAccrueReward.baker_reward:type_name -> concordium.v2.Amount + 37, // 787: concordium.v2.BlockSpecialEvent.BlockAccrueReward.passive_reward:type_name -> concordium.v2.Amount + 37, // 788: concordium.v2.BlockSpecialEvent.BlockAccrueReward.foundation_charge:type_name -> concordium.v2.Amount + 15, // 789: concordium.v2.BlockSpecialEvent.BlockAccrueReward.baker:type_name -> concordium.v2.BakerId + 15, // 790: concordium.v2.BlockSpecialEvent.PaydayPoolReward.pool_owner:type_name -> concordium.v2.BakerId + 37, // 791: concordium.v2.BlockSpecialEvent.PaydayPoolReward.transaction_fees:type_name -> concordium.v2.Amount + 37, // 792: concordium.v2.BlockSpecialEvent.PaydayPoolReward.baker_reward:type_name -> concordium.v2.Amount + 37, // 793: concordium.v2.BlockSpecialEvent.PaydayPoolReward.finalization_reward:type_name -> concordium.v2.Amount + 42, // 794: concordium.v2.BlockSpecialEvent.AccountAmounts.Entry.account:type_name -> concordium.v2.AccountAddress + 37, // 795: concordium.v2.BlockSpecialEvent.AccountAmounts.Entry.amount:type_name -> concordium.v2.Amount + 168, // 796: concordium.v2.PeersInfo.Peer.peer_id:type_name -> concordium.v2.PeerId + 167, // 797: concordium.v2.PeersInfo.Peer.socket_address:type_name -> concordium.v2.IpSocketAddress + 298, // 798: concordium.v2.PeersInfo.Peer.network_stats:type_name -> concordium.v2.PeersInfo.Peer.NetworkStats + 8, // 799: concordium.v2.PeersInfo.Peer.bootstrapper:type_name -> concordium.v2.Empty + 6, // 800: concordium.v2.PeersInfo.Peer.node_catchup_status:type_name -> concordium.v2.PeersInfo.Peer.CatchupStatus + 168, // 801: concordium.v2.NodeInfo.NetworkInfo.node_id:type_name -> concordium.v2.PeerId + 15, // 802: concordium.v2.NodeInfo.BakerConsensusInfo.baker_id:type_name -> concordium.v2.BakerId + 7, // 803: concordium.v2.NodeInfo.BakerConsensusInfo.passive_committee_info:type_name -> concordium.v2.NodeInfo.BakerConsensusInfo.PassiveCommitteeInfo + 302, // 804: concordium.v2.NodeInfo.BakerConsensusInfo.active_baker_committee_info:type_name -> concordium.v2.NodeInfo.BakerConsensusInfo.ActiveBakerCommitteeInfo + 303, // 805: concordium.v2.NodeInfo.BakerConsensusInfo.active_finalizer_committee_info:type_name -> concordium.v2.NodeInfo.BakerConsensusInfo.ActiveFinalizerCommitteeInfo + 8, // 806: concordium.v2.NodeInfo.Node.not_running:type_name -> concordium.v2.Empty + 8, // 807: concordium.v2.NodeInfo.Node.passive:type_name -> concordium.v2.Empty + 300, // 808: concordium.v2.NodeInfo.Node.active:type_name -> concordium.v2.NodeInfo.BakerConsensusInfo + 177, // 809: concordium.v2.SignatureMap.SignaturesEntry.value:type_name -> concordium.v2.Signature + 177, // 810: concordium.v2.AccountSignatureMap.SignaturesEntry.value:type_name -> concordium.v2.Signature + 179, // 811: concordium.v2.AccountTransactionSignature.SignaturesEntry.value:type_name -> concordium.v2.AccountSignatureMap + 37, // 812: concordium.v2.DryRunErrorResponse.AmountOverLimit.amount_limit:type_name -> concordium.v2.Amount + 37, // 813: concordium.v2.DryRunErrorResponse.BalanceInsufficient.required_amount:type_name -> concordium.v2.Amount + 37, // 814: concordium.v2.DryRunErrorResponse.BalanceInsufficient.available_amount:type_name -> concordium.v2.Amount + 77, // 815: concordium.v2.DryRunErrorResponse.EnergyInsufficient.energy_required:type_name -> concordium.v2.Energy + 77, // 816: concordium.v2.DryRunErrorResponse.InvokeFailure.used_energy:type_name -> concordium.v2.Energy + 81, // 817: concordium.v2.DryRunErrorResponse.InvokeFailure.reason:type_name -> concordium.v2.RejectReason + 19, // 818: concordium.v2.DryRunSuccessResponse.BlockStateLoaded.current_timestamp:type_name -> concordium.v2.Timestamp + 9, // 819: concordium.v2.DryRunSuccessResponse.BlockStateLoaded.block_hash:type_name -> concordium.v2.BlockHash + 5, // 820: concordium.v2.DryRunSuccessResponse.BlockStateLoaded.protocol_version:type_name -> concordium.v2.ProtocolVersion + 77, // 821: concordium.v2.DryRunSuccessResponse.TransactionExecuted.energy_cost:type_name -> concordium.v2.Energy + 136, // 822: concordium.v2.DryRunSuccessResponse.TransactionExecuted.details:type_name -> concordium.v2.AccountTransactionDetails + 77, // 823: concordium.v2.DryRunSuccessResponse.InvokeSuccess.used_energy:type_name -> concordium.v2.Energy + 85, // 824: concordium.v2.DryRunSuccessResponse.InvokeSuccess.effects:type_name -> concordium.v2.ContractTraceElement + 825, // [825:825] is the sub-list for method output_type + 825, // [825:825] is the sub-list for method input_type + 825, // [825:825] is the sub-list for extension type_name + 825, // [825:825] is the sub-list for extension extendee + 0, // [0:825] is the sub-list for field type_name +} + +func init() { file_v2_concordium_types_proto_init() } +func file_v2_concordium_types_proto_init() { + if File_v2_concordium_types_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Empty); i { case 0: return &v.state @@ -26273,7 +29530,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockHash); i { case 0: return &v.state @@ -26285,7 +29542,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Sha256Hash); i { case 0: return &v.state @@ -26297,7 +29554,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionHash); i { case 0: return &v.state @@ -26309,7 +29566,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateHash); i { case 0: return &v.state @@ -26321,7 +29578,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AbsoluteBlockHeight); i { case 0: return &v.state @@ -26333,7 +29590,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockHeight); i { case 0: return &v.state @@ -26345,7 +29602,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BakerId); i { case 0: return &v.state @@ -26357,7 +29614,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountIndex); i { case 0: return &v.state @@ -26369,7 +29626,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ModuleRef); i { case 0: return &v.state @@ -26381,7 +29638,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VersionedModuleSource); i { case 0: return &v.state @@ -26393,7 +29650,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Timestamp); i { case 0: return &v.state @@ -26405,7 +29662,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Release); i { case 0: return &v.state @@ -26417,7 +29674,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NewRelease); i { case 0: return &v.state @@ -26429,7 +29686,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReleaseSchedule); i { case 0: return &v.state @@ -26441,7 +29698,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EncryptedAmount); i { case 0: return &v.state @@ -26453,7 +29710,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EncryptedBalance); i { case 0: return &v.state @@ -26465,7 +29722,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DelegationTarget); i { case 0: return &v.state @@ -26477,7 +29734,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BakerElectionVerifyKey); i { case 0: return &v.state @@ -26489,7 +29746,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BakerSignatureVerifyKey); i { case 0: return &v.state @@ -26501,7 +29758,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BakerAggregationVerifyKey); i { case 0: return &v.state @@ -26513,7 +29770,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BakerInfo); i { case 0: return &v.state @@ -26525,7 +29782,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StakePendingChange); i { case 0: return &v.state @@ -26537,7 +29794,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AmountFraction); i { case 0: return &v.state @@ -26549,7 +29806,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommissionRates); i { case 0: return &v.state @@ -26561,7 +29818,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BakerPoolInfo); i { case 0: return &v.state @@ -26573,7 +29830,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountStakingInfo); i { case 0: return &v.state @@ -26585,7 +29842,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SequenceNumber); i { case 0: return &v.state @@ -26597,7 +29854,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateSequenceNumber); i { case 0: return &v.state @@ -26609,7 +29866,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Amount); i { case 0: return &v.state @@ -26621,7 +29878,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CredentialIndex); i { case 0: return &v.state @@ -26633,7 +29890,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SignatureThreshold); i { case 0: return &v.state @@ -26645,7 +29902,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountThreshold); i { case 0: return &v.state @@ -26657,7 +29914,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EncryptionKey); i { case 0: return &v.state @@ -26669,7 +29926,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountAddress); i { case 0: return &v.state @@ -26681,7 +29938,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Address); i { case 0: return &v.state @@ -26693,7 +29950,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountVerifyKey); i { case 0: return &v.state @@ -26705,7 +29962,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CredentialPublicKeys); i { case 0: return &v.state @@ -26717,7 +29974,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CredentialRegistrationId); i { case 0: return &v.state @@ -26729,7 +29986,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IdentityProviderIdentity); i { case 0: return &v.state @@ -26741,7 +29998,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*YearMonth); i { case 0: return &v.state @@ -26753,7 +30010,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Policy); i { case 0: return &v.state @@ -26765,7 +30022,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InitialCredentialValues); i { case 0: return &v.state @@ -26777,7 +30034,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChainArData); i { case 0: return &v.state @@ -26789,7 +30046,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ArThreshold); i { case 0: return &v.state @@ -26801,7 +30058,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Commitment); i { case 0: return &v.state @@ -26813,7 +30070,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CredentialCommitments); i { case 0: return &v.state @@ -26825,7 +30082,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NormalCredentialValues); i { case 0: return &v.state @@ -26837,7 +30094,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountCredential); i { case 0: return &v.state @@ -26849,7 +30106,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountInfo); i { case 0: return &v.state @@ -26861,7 +30118,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockHashInput); i { case 0: return &v.state @@ -26873,7 +30130,19 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EpochRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountIdentifierInput); i { case 0: return &v.state @@ -26885,7 +30154,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountInfoRequest); i { case 0: return &v.state @@ -26897,7 +30166,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FinalizedBlockInfo); i { case 0: return &v.state @@ -26909,7 +30178,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AncestorsRequest); i { case 0: return &v.state @@ -26921,7 +30190,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ModuleSourceRequest); i { case 0: return &v.state @@ -26933,7 +30202,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractAddress); i { case 0: return &v.state @@ -26945,7 +30214,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InstanceInfoRequest); i { case 0: return &v.state @@ -26957,7 +30226,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InstanceInfo); i { case 0: return &v.state @@ -26969,7 +30238,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InstanceStateKVPair); i { case 0: return &v.state @@ -26981,7 +30250,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InstanceStateLookupRequest); i { case 0: return &v.state @@ -26993,7 +30262,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InstanceStateValueAtKey); i { case 0: return &v.state @@ -27005,7 +30274,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReceiveName); i { case 0: return &v.state @@ -27017,7 +30286,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InitName); i { case 0: return &v.state @@ -27029,7 +30298,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Parameter); i { case 0: return &v.state @@ -27041,7 +30310,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractStateV0); i { case 0: return &v.state @@ -27053,7 +30322,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockItemStatus); i { case 0: return &v.state @@ -27065,7 +30334,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockItemSummaryInBlock); i { case 0: return &v.state @@ -27077,7 +30346,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Energy); i { case 0: return &v.state @@ -27089,7 +30358,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Slot); i { case 0: return &v.state @@ -27101,7 +30370,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NextAccountSequenceNumber); i { case 0: return &v.state @@ -27113,7 +30382,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Duration); i { case 0: return &v.state @@ -27125,7 +30394,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RejectReason); i { case 0: return &v.state @@ -27137,7 +30406,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractInitializedEvent); i { case 0: return &v.state @@ -27149,7 +30418,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractEvent); i { case 0: return &v.state @@ -27161,7 +30430,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InstanceUpdatedEvent); i { case 0: return &v.state @@ -27173,7 +30442,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractTraceElement); i { case 0: return &v.state @@ -27185,7 +30454,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BakerKeysEvent); i { case 0: return &v.state @@ -27197,7 +30466,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Memo); i { case 0: return &v.state @@ -27209,7 +30478,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BakerStakeUpdatedData); i { case 0: return &v.state @@ -27221,7 +30490,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EncryptedAmountRemovedEvent); i { case 0: return &v.state @@ -27233,7 +30502,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NewEncryptedAmountEvent); i { case 0: return &v.state @@ -27245,7 +30514,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EncryptedSelfAmountAddedEvent); i { case 0: return &v.state @@ -27257,7 +30526,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RegisteredData); i { case 0: return &v.state @@ -27269,7 +30538,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BakerEvent); i { case 0: return &v.state @@ -27281,7 +30550,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DelegatorId); i { case 0: return &v.state @@ -27293,7 +30562,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DelegationEvent); i { case 0: return &v.state @@ -27305,7 +30574,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountTransactionEffects); i { case 0: return &v.state @@ -27317,7 +30586,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ElectionDifficulty); i { case 0: return &v.state @@ -27329,7 +30598,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TimeoutParameters); i { case 0: return &v.state @@ -27341,7 +30610,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FinalizationCommitteeParameters); i { case 0: return &v.state @@ -27353,7 +30622,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConsensusParametersV1); i { case 0: return &v.state @@ -27365,7 +30634,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExchangeRate); i { case 0: return &v.state @@ -27377,7 +30646,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ratio); i { case 0: return &v.state @@ -27389,7 +30658,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdatePublicKey); i { case 0: return &v.state @@ -27401,7 +30670,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateKeysThreshold); i { case 0: return &v.state @@ -27413,7 +30682,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateKeysIndex); i { case 0: return &v.state @@ -27425,7 +30694,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HigherLevelKeys); i { case 0: return &v.state @@ -27437,7 +30706,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccessStructure); i { case 0: return &v.state @@ -27449,7 +30718,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AuthorizationsV0); i { case 0: return &v.state @@ -27461,7 +30730,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AuthorizationsV1); i { case 0: return &v.state @@ -27473,7 +30742,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Description); i { case 0: return &v.state @@ -27485,7 +30754,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ArInfo); i { case 0: return &v.state @@ -27497,7 +30766,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IpIdentity); i { case 0: return &v.state @@ -27509,7 +30778,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IpInfo); i { case 0: return &v.state @@ -27521,7 +30790,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DurationSeconds); i { case 0: return &v.state @@ -27533,7 +30802,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InclusiveRangeAmountFraction); i { case 0: return &v.state @@ -27545,7 +30814,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommissionRanges); i { case 0: return &v.state @@ -27557,7 +30826,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CapitalBound); i { case 0: return &v.state @@ -27569,7 +30838,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LeverageFactor); i { case 0: return &v.state @@ -27581,7 +30850,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Epoch); i { case 0: return &v.state @@ -27593,7 +30862,19 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Round); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RewardPeriodLength); i { case 0: return &v.state @@ -27605,7 +30886,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MintRate); i { case 0: return &v.state @@ -27617,7 +30898,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CooldownParametersCpv1); i { case 0: return &v.state @@ -27629,7 +30910,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PoolParametersCpv1); i { case 0: return &v.state @@ -27641,7 +30922,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TimeParametersCpv1); i { case 0: return &v.state @@ -27653,7 +30934,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MintDistributionCpv1); i { case 0: return &v.state @@ -27665,7 +30946,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProtocolUpdate); i { case 0: return &v.state @@ -27677,7 +30958,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MintDistributionCpv0); i { case 0: return &v.state @@ -27689,7 +30970,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionFeeDistribution); i { case 0: return &v.state @@ -27701,7 +30982,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GasRewards); i { case 0: return &v.state @@ -27713,7 +30994,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GasRewardsCpv2); i { case 0: return &v.state @@ -27725,7 +31006,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BakerStakeThreshold); i { case 0: return &v.state @@ -27737,7 +31018,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RootUpdate); i { case 0: return &v.state @@ -27749,7 +31030,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Level1Update); i { case 0: return &v.state @@ -27761,7 +31042,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdatePayload); i { case 0: return &v.state @@ -27773,8 +31054,236 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountTransactionDetails); i { + file_v2_concordium_types_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountTransactionDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountCreationDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransactionTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockItemSummary); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenesisIndex); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConsensusInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArrivedBlockInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CryptographicParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolPendingChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolCurrentPaydayInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PoolInfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PassiveDelegationInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlocksAtHeightRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlocksAtHeightResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TokenomicsInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InvokeInstanceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InvokeInstanceResponse); i { case 0: return &v.state case 1: @@ -27785,8 +31294,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountCreationDetails); i { + file_v2_concordium_types_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPoolDelegatorsRequest); i { case 0: return &v.state case 1: @@ -27797,8 +31306,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TransactionTime); i { + file_v2_concordium_types_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelegatorInfo); i { case 0: return &v.state case 1: @@ -27809,8 +31318,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateDetails); i { + file_v2_concordium_types_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelegatorRewardPeriodInfo); i { case 0: return &v.state case 1: @@ -27821,8 +31330,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockItemSummary); i { + file_v2_concordium_types_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Branch); i { case 0: return &v.state case 1: @@ -27833,8 +31342,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GenesisIndex); i { + file_v2_concordium_types_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LeadershipElectionNonce); i { case 0: return &v.state case 1: @@ -27845,8 +31354,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConsensusInfo); i { + file_v2_concordium_types_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ElectionInfo); i { case 0: return &v.state case 1: @@ -27857,8 +31366,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArrivedBlockInfo); i { + file_v2_concordium_types_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockSpecialEvent); i { case 0: return &v.state case 1: @@ -27869,8 +31378,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CryptographicParameters); i { + file_v2_concordium_types_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PendingUpdate); i { case 0: return &v.state case 1: @@ -27881,8 +31390,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockInfo); i { + file_v2_concordium_types_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NextUpdateSequenceNumbers); i { case 0: return &v.state case 1: @@ -27893,8 +31402,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PoolInfoRequest); i { + file_v2_concordium_types_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IpAddress); i { case 0: return &v.state case 1: @@ -27905,8 +31414,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PoolPendingChange); i { + file_v2_concordium_types_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Port); i { case 0: return &v.state case 1: @@ -27917,8 +31426,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PoolCurrentPaydayInfo); i { + file_v2_concordium_types_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IpSocketAddress); i { case 0: return &v.state case 1: @@ -27929,8 +31438,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PoolInfoResponse); i { + file_v2_concordium_types_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PeerId); i { case 0: return &v.state case 1: @@ -27941,8 +31450,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PassiveDelegationInfo); i { + file_v2_concordium_types_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BannedPeer); i { case 0: return &v.state case 1: @@ -27953,8 +31462,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlocksAtHeightRequest); i { + file_v2_concordium_types_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BannedPeers); i { case 0: return &v.state case 1: @@ -27965,8 +31474,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlocksAtHeightResponse); i { + file_v2_concordium_types_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PeerToBan); i { case 0: return &v.state case 1: @@ -27977,8 +31486,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TokenomicsInfo); i { + file_v2_concordium_types_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DumpRequest); i { case 0: return &v.state case 1: @@ -27989,8 +31498,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InvokeInstanceRequest); i { + file_v2_concordium_types_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PeersInfo); i { case 0: return &v.state case 1: @@ -28001,8 +31510,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InvokeInstanceResponse); i { + file_v2_concordium_types_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NodeInfo); i { case 0: return &v.state case 1: @@ -28013,8 +31522,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPoolDelegatorsRequest); i { + file_v2_concordium_types_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendBlockItemRequest); i { case 0: return &v.state case 1: @@ -28025,8 +31534,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DelegatorInfo); i { + file_v2_concordium_types_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CredentialDeployment); i { case 0: return &v.state case 1: @@ -28037,8 +31546,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DelegatorRewardPeriodInfo); i { + file_v2_concordium_types_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Signature); i { case 0: return &v.state case 1: @@ -28049,8 +31558,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Branch); i { + file_v2_concordium_types_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignatureMap); i { case 0: return &v.state case 1: @@ -28061,8 +31570,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LeadershipElectionNonce); i { + file_v2_concordium_types_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountSignatureMap); i { case 0: return &v.state case 1: @@ -28073,8 +31582,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ElectionInfo); i { + file_v2_concordium_types_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountTransactionSignature); i { case 0: return &v.state case 1: @@ -28085,8 +31594,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockSpecialEvent); i { + file_v2_concordium_types_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountTransactionHeader); i { case 0: return &v.state case 1: @@ -28097,8 +31606,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PendingUpdate); i { + file_v2_concordium_types_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InitContractPayload); i { case 0: return &v.state case 1: @@ -28109,8 +31618,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NextUpdateSequenceNumbers); i { + file_v2_concordium_types_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateContractPayload); i { case 0: return &v.state case 1: @@ -28121,8 +31630,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IpAddress); i { + file_v2_concordium_types_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransferPayload); i { case 0: return &v.state case 1: @@ -28133,8 +31642,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Port); i { + file_v2_concordium_types_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransferWithMemoPayload); i { case 0: return &v.state case 1: @@ -28145,8 +31654,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IpSocketAddress); i { + file_v2_concordium_types_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountTransactionPayload); i { case 0: return &v.state case 1: @@ -28157,8 +31666,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PeerId); i { + file_v2_concordium_types_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PreAccountTransaction); i { case 0: return &v.state case 1: @@ -28169,8 +31678,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BannedPeer); i { + file_v2_concordium_types_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountTransaction); i { case 0: return &v.state case 1: @@ -28181,8 +31690,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BannedPeers); i { + file_v2_concordium_types_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateInstructionHeader); i { case 0: return &v.state case 1: @@ -28193,8 +31702,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PeerToBan); i { + file_v2_concordium_types_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateInstructionPayload); i { case 0: return &v.state case 1: @@ -28205,8 +31714,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DumpRequest); i { + file_v2_concordium_types_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateInstruction); i { case 0: return &v.state case 1: @@ -28217,8 +31726,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PeersInfo); i { + file_v2_concordium_types_proto_msgTypes[184].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountTransactionSignHash); i { case 0: return &v.state case 1: @@ -28229,8 +31738,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NodeInfo); i { + file_v2_concordium_types_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CredentialsPerBlockLimit); i { case 0: return &v.state case 1: @@ -28241,8 +31750,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendBlockItemRequest); i { + file_v2_concordium_types_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChainParametersV0); i { case 0: return &v.state case 1: @@ -28253,8 +31762,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CredentialDeployment); i { + file_v2_concordium_types_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChainParametersV1); i { case 0: return &v.state case 1: @@ -28265,8 +31774,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Signature); i { + file_v2_concordium_types_proto_msgTypes[188].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChainParametersV2); i { case 0: return &v.state case 1: @@ -28277,8 +31786,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SignatureMap); i { + file_v2_concordium_types_proto_msgTypes[189].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChainParameters); i { case 0: return &v.state case 1: @@ -28289,8 +31798,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountSignatureMap); i { + file_v2_concordium_types_proto_msgTypes[190].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FinalizationSummaryParty); i { case 0: return &v.state case 1: @@ -28301,8 +31810,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountTransactionSignature); i { + file_v2_concordium_types_proto_msgTypes[191].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FinalizationIndex); i { case 0: return &v.state case 1: @@ -28313,8 +31822,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountTransactionHeader); i { + file_v2_concordium_types_proto_msgTypes[192].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FinalizationSummary); i { case 0: return &v.state case 1: @@ -28325,8 +31834,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InitContractPayload); i { + file_v2_concordium_types_proto_msgTypes[193].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockFinalizationSummary); i { case 0: return &v.state case 1: @@ -28337,8 +31846,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateContractPayload); i { + file_v2_concordium_types_proto_msgTypes[194].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockItem); i { case 0: return &v.state case 1: @@ -28349,8 +31858,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TransferPayload); i { + file_v2_concordium_types_proto_msgTypes[195].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BakerRewardPeriodInfo); i { case 0: return &v.state case 1: @@ -28361,8 +31870,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TransferWithMemoPayload); i { + file_v2_concordium_types_proto_msgTypes[196].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QuorumSignature); i { case 0: return &v.state case 1: @@ -28373,8 +31882,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountTransactionPayload); i { + file_v2_concordium_types_proto_msgTypes[197].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QuorumCertificate); i { case 0: return &v.state case 1: @@ -28385,8 +31894,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PreAccountTransaction); i { + file_v2_concordium_types_proto_msgTypes[198].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FinalizerRound); i { case 0: return &v.state case 1: @@ -28397,8 +31906,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountTransaction); i { + file_v2_concordium_types_proto_msgTypes[199].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TimeoutSignature); i { case 0: return &v.state case 1: @@ -28409,8 +31918,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateInstructionSignature); i { + file_v2_concordium_types_proto_msgTypes[200].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TimeoutCertificate); i { case 0: return &v.state case 1: @@ -28421,8 +31930,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateInstructionHeader); i { + file_v2_concordium_types_proto_msgTypes[201].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SuccessorProof); i { case 0: return &v.state case 1: @@ -28433,8 +31942,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateInstructionPayload); i { + file_v2_concordium_types_proto_msgTypes[202].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EpochFinalizationEntry); i { case 0: return &v.state case 1: @@ -28445,8 +31954,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateInstruction); i { + file_v2_concordium_types_proto_msgTypes[203].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockCertificates); i { case 0: return &v.state case 1: @@ -28457,8 +31966,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountTransactionSignHash); i { + file_v2_concordium_types_proto_msgTypes[204].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WinningBaker); i { case 0: return &v.state case 1: @@ -28469,8 +31978,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[184].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CredentialsPerBlockLimit); i { + file_v2_concordium_types_proto_msgTypes[205].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunRequest); i { case 0: return &v.state case 1: @@ -28481,8 +31990,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChainParametersV0); i { + file_v2_concordium_types_proto_msgTypes[206].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunStateQuery); i { case 0: return &v.state case 1: @@ -28493,8 +32002,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChainParametersV1); i { + file_v2_concordium_types_proto_msgTypes[207].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunInvokeInstance); i { case 0: return &v.state case 1: @@ -28505,8 +32014,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChainParametersV2); i { + file_v2_concordium_types_proto_msgTypes[208].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunStateOperation); i { case 0: return &v.state case 1: @@ -28517,8 +32026,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[188].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChainParameters); i { + file_v2_concordium_types_proto_msgTypes[209].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunMintToAccount); i { case 0: return &v.state case 1: @@ -28529,8 +32038,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[189].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FinalizationSummaryParty); i { + file_v2_concordium_types_proto_msgTypes[210].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunTransaction); i { case 0: return &v.state case 1: @@ -28541,8 +32050,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[190].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FinalizationIndex); i { + file_v2_concordium_types_proto_msgTypes[211].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunSignature); i { case 0: return &v.state case 1: @@ -28553,8 +32062,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[191].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FinalizationSummary); i { + file_v2_concordium_types_proto_msgTypes[212].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunResponse); i { case 0: return &v.state case 1: @@ -28565,8 +32074,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[192].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockFinalizationSummary); i { + file_v2_concordium_types_proto_msgTypes[213].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunErrorResponse); i { case 0: return &v.state case 1: @@ -28577,8 +32086,8 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[193].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockItem); i { + file_v2_concordium_types_proto_msgTypes[214].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunSuccessResponse); i { case 0: return &v.state case 1: @@ -28589,7 +32098,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[194].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[215].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VersionedModuleSource_ModuleSourceV0); i { case 0: return &v.state @@ -28601,7 +32110,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[195].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[216].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VersionedModuleSource_ModuleSourceV1); i { case 0: return &v.state @@ -28613,7 +32122,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[196].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[217].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StakePendingChange_Reduce); i { case 0: return &v.state @@ -28625,7 +32134,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[197].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[218].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountStakingInfo_Baker); i { case 0: return &v.state @@ -28637,7 +32146,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[198].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[219].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountStakingInfo_Delegator); i { case 0: return &v.state @@ -28649,7 +32158,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[204].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[225].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockHashInput_RelativeHeight); i { case 0: return &v.state @@ -28661,7 +32170,19 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[205].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[226].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EpochRequest_RelativeEpoch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[227].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InstanceInfo_V0); i { case 0: return &v.state @@ -28673,7 +32194,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[206].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[228].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InstanceInfo_V1); i { case 0: return &v.state @@ -28685,7 +32206,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[207].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[229].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockItemStatus_Committed); i { case 0: return &v.state @@ -28697,7 +32218,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[208].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[230].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockItemStatus_Finalized); i { case 0: return &v.state @@ -28709,7 +32230,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[209].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[231].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RejectReason_InvalidInitMethod); i { case 0: return &v.state @@ -28721,7 +32242,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[210].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[232].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RejectReason_InvalidReceiveMethod); i { case 0: return &v.state @@ -28733,7 +32254,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[211].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[233].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RejectReason_AmountTooLarge); i { case 0: return &v.state @@ -28745,7 +32266,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[212].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[234].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RejectReason_RejectedInit); i { case 0: return &v.state @@ -28757,7 +32278,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[213].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[235].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RejectReason_RejectedReceive); i { case 0: return &v.state @@ -28769,7 +32290,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[214].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[236].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RejectReason_DuplicateCredIds); i { case 0: return &v.state @@ -28781,7 +32302,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[215].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[237].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RejectReason_NonExistentCredIds); i { case 0: return &v.state @@ -28793,7 +32314,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[216].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[238].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractTraceElement_Transferred); i { case 0: return &v.state @@ -28805,7 +32326,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[217].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[239].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractTraceElement_Interrupted); i { case 0: return &v.state @@ -28817,7 +32338,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[218].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[240].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractTraceElement_Resumed); i { case 0: return &v.state @@ -28829,7 +32350,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[219].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[241].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractTraceElement_Upgraded); i { case 0: return &v.state @@ -28841,7 +32362,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[220].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[242].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BakerEvent_BakerAdded); i { case 0: return &v.state @@ -28853,7 +32374,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[221].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[243].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BakerEvent_BakerStakeIncreased); i { case 0: return &v.state @@ -28865,7 +32386,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[222].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[244].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BakerEvent_BakerStakeDecreased); i { case 0: return &v.state @@ -28877,7 +32398,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[223].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[245].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BakerEvent_BakerRestakeEarningsUpdated); i { case 0: return &v.state @@ -28889,7 +32410,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[224].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[246].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BakerEvent_BakerSetOpenStatus); i { case 0: return &v.state @@ -28901,7 +32422,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[225].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[247].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BakerEvent_BakerSetMetadataUrl); i { case 0: return &v.state @@ -28913,7 +32434,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[226].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[248].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BakerEvent_BakerSetTransactionFeeCommission); i { case 0: return &v.state @@ -28925,7 +32446,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[227].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[249].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BakerEvent_BakerSetBakingRewardCommission); i { case 0: return &v.state @@ -28937,7 +32458,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[228].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[250].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BakerEvent_BakerSetFinalizationRewardCommission); i { case 0: return &v.state @@ -28949,7 +32470,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[229].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[251].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DelegationEvent_DelegationStakeIncreased); i { case 0: return &v.state @@ -28961,7 +32482,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[230].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[252].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DelegationEvent_DelegationStakeDecreased); i { case 0: return &v.state @@ -28973,7 +32494,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[231].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[253].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DelegationEvent_DelegationSetRestakeEarnings); i { case 0: return &v.state @@ -28985,7 +32506,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[232].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[254].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DelegationEvent_DelegationSetDelegationTarget); i { case 0: return &v.state @@ -28997,7 +32518,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[233].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[255].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountTransactionEffects_None); i { case 0: return &v.state @@ -29009,7 +32530,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[234].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[256].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountTransactionEffects_ContractUpdateIssued); i { case 0: return &v.state @@ -29021,7 +32542,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[235].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[257].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountTransactionEffects_AccountTransfer); i { case 0: return &v.state @@ -29033,7 +32554,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[236].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[258].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountTransactionEffects_BakerStakeUpdated); i { case 0: return &v.state @@ -29045,7 +32566,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[237].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[259].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountTransactionEffects_EncryptedAmountTransferred); i { case 0: return &v.state @@ -29057,7 +32578,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[238].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[260].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountTransactionEffects_TransferredToPublic); i { case 0: return &v.state @@ -29069,7 +32590,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[239].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[261].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountTransactionEffects_TransferredWithSchedule); i { case 0: return &v.state @@ -29081,7 +32602,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[240].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[262].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountTransactionEffects_CredentialsUpdated); i { case 0: return &v.state @@ -29093,7 +32614,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[241].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[263].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountTransactionEffects_BakerConfigured); i { case 0: return &v.state @@ -29105,7 +32626,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[242].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[264].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountTransactionEffects_DelegationConfigured); i { case 0: return &v.state @@ -29117,7 +32638,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[243].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[265].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ArInfo_ArIdentity); i { case 0: return &v.state @@ -29129,7 +32650,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[244].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[266].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ArInfo_ArPublicKey); i { case 0: return &v.state @@ -29141,7 +32662,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[245].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[267].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IpInfo_IpVerifyKey); i { case 0: return &v.state @@ -29153,7 +32674,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[246].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[268].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IpInfo_IpCdiVerifyKey); i { case 0: return &v.state @@ -29165,7 +32686,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[247].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[269].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockItemSummary_TransactionIndex); i { case 0: return &v.state @@ -29177,7 +32698,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[248].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[270].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PoolPendingChange_Reduce); i { case 0: return &v.state @@ -29189,7 +32710,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[249].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[271].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PoolPendingChange_Remove); i { case 0: return &v.state @@ -29201,7 +32722,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[250].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[272].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlocksAtHeightRequest_Absolute); i { case 0: return &v.state @@ -29213,7 +32734,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[251].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[273].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlocksAtHeightRequest_Relative); i { case 0: return &v.state @@ -29225,7 +32746,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[252].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[274].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TokenomicsInfo_V0); i { case 0: return &v.state @@ -29237,7 +32758,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[253].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[275].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TokenomicsInfo_V1); i { case 0: return &v.state @@ -29249,7 +32770,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[254].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[276].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InvokeInstanceResponse_Failure); i { case 0: return &v.state @@ -29261,7 +32782,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[255].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[277].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InvokeInstanceResponse_Success); i { case 0: return &v.state @@ -29273,7 +32794,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[256].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[278].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ElectionInfo_Baker); i { case 0: return &v.state @@ -29285,7 +32806,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[257].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[279].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockSpecialEvent_AccountAmounts); i { case 0: return &v.state @@ -29297,7 +32818,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[258].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[280].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockSpecialEvent_BakingRewards); i { case 0: return &v.state @@ -29309,7 +32830,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[259].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[281].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockSpecialEvent_Mint); i { case 0: return &v.state @@ -29321,7 +32842,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[260].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[282].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockSpecialEvent_FinalizationRewards); i { case 0: return &v.state @@ -29333,7 +32854,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[261].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[283].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockSpecialEvent_BlockReward); i { case 0: return &v.state @@ -29345,7 +32866,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[262].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[284].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockSpecialEvent_PaydayFoundationReward); i { case 0: return &v.state @@ -29357,7 +32878,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[263].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[285].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockSpecialEvent_PaydayAccountReward); i { case 0: return &v.state @@ -29369,7 +32890,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[264].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[286].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockSpecialEvent_BlockAccrueReward); i { case 0: return &v.state @@ -29381,7 +32902,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[265].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[287].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockSpecialEvent_PaydayPoolReward); i { case 0: return &v.state @@ -29393,7 +32914,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[266].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[288].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockSpecialEvent_AccountAmounts_Entry); i { case 0: return &v.state @@ -29405,7 +32926,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[267].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[289].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PeersInfo_Peer); i { case 0: return &v.state @@ -29417,7 +32938,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[268].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[290].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PeersInfo_Peer_NetworkStats); i { case 0: return &v.state @@ -29429,7 +32950,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[269].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[291].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeInfo_NetworkInfo); i { case 0: return &v.state @@ -29441,7 +32962,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[270].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[292].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeInfo_BakerConsensusInfo); i { case 0: return &v.state @@ -29453,7 +32974,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[271].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[293].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeInfo_Node); i { case 0: return &v.state @@ -29465,7 +32986,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[272].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[294].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo); i { case 0: return &v.state @@ -29477,7 +32998,7 @@ func file_types_proto_init() { return nil } } - file_types_proto_msgTypes[273].Exporter = func(v interface{}, i int) interface{} { + file_v2_concordium_types_proto_msgTypes[295].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo); i { case 0: return &v.state @@ -29489,58 +33010,218 @@ func file_types_proto_init() { return nil } } + file_v2_concordium_types_proto_msgTypes[299].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunErrorResponse_NoState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[300].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunErrorResponse_BlockNotFound); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[301].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunErrorResponse_AccountNotFound); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[302].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunErrorResponse_InstanceNotFound); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[303].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunErrorResponse_AmountOverLimit); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[304].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunErrorResponse_BalanceInsufficient); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[305].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunErrorResponse_EnergyInsufficient); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[306].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunErrorResponse_InvokeFailure); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[307].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunSuccessResponse_BlockStateLoaded); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[308].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunSuccessResponse_TimestampSet); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[309].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunSuccessResponse_MintedToAccount); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[310].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunSuccessResponse_TransactionExecuted); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_v2_concordium_types_proto_msgTypes[311].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DryRunSuccessResponse_InvokeSuccess); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } - file_types_proto_msgTypes[10].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[10].OneofWrappers = []interface{}{ (*VersionedModuleSource_V0)(nil), (*VersionedModuleSource_V1)(nil), } - file_types_proto_msgTypes[16].OneofWrappers = []interface{}{} - file_types_proto_msgTypes[17].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[17].OneofWrappers = []interface{}{ (*DelegationTarget_Passive)(nil), (*DelegationTarget_Baker)(nil), } - file_types_proto_msgTypes[22].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[22].OneofWrappers = []interface{}{ (*StakePendingChange_Reduce_)(nil), (*StakePendingChange_Remove)(nil), } - file_types_proto_msgTypes[26].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[26].OneofWrappers = []interface{}{ (*AccountStakingInfo_Baker_)(nil), (*AccountStakingInfo_Delegator_)(nil), } - file_types_proto_msgTypes[35].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[35].OneofWrappers = []interface{}{ (*Address_Account)(nil), (*Address_Contract)(nil), } - file_types_proto_msgTypes[36].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[36].OneofWrappers = []interface{}{ (*AccountVerifyKey_Ed25519Key)(nil), } - file_types_proto_msgTypes[48].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[48].OneofWrappers = []interface{}{ (*AccountCredential_Initial)(nil), (*AccountCredential_Normal)(nil), } - file_types_proto_msgTypes[49].OneofWrappers = []interface{}{} - file_types_proto_msgTypes[50].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[49].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[50].OneofWrappers = []interface{}{ (*BlockHashInput_Best)(nil), (*BlockHashInput_LastFinal)(nil), (*BlockHashInput_Given)(nil), (*BlockHashInput_AbsoluteHeight)(nil), (*BlockHashInput_RelativeHeight_)(nil), } - file_types_proto_msgTypes[51].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[51].OneofWrappers = []interface{}{ + (*EpochRequest_RelativeEpoch_)(nil), + (*EpochRequest_BlockHash)(nil), + } + file_v2_concordium_types_proto_msgTypes[52].OneofWrappers = []interface{}{ (*AccountIdentifierInput_Address)(nil), (*AccountIdentifierInput_CredId)(nil), (*AccountIdentifierInput_AccountIndex)(nil), } - file_types_proto_msgTypes[58].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[59].OneofWrappers = []interface{}{ (*InstanceInfo_V0_)(nil), (*InstanceInfo_V1_)(nil), } - file_types_proto_msgTypes[66].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[67].OneofWrappers = []interface{}{ (*BlockItemStatus_Received)(nil), (*BlockItemStatus_Committed_)(nil), (*BlockItemStatus_Finalized_)(nil), } - file_types_proto_msgTypes[72].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[73].OneofWrappers = []interface{}{ (*RejectReason_ModuleNotWf)(nil), (*RejectReason_ModuleHashAlreadyExists)(nil), (*RejectReason_InvalidAccountReference)(nil), @@ -29596,14 +33277,14 @@ func file_types_proto_init() { (*RejectReason_PoolWouldBecomeOverDelegated)(nil), (*RejectReason_PoolClosed)(nil), } - file_types_proto_msgTypes[76].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[77].OneofWrappers = []interface{}{ (*ContractTraceElement_Updated)(nil), (*ContractTraceElement_Transferred_)(nil), (*ContractTraceElement_Interrupted_)(nil), (*ContractTraceElement_Resumed_)(nil), (*ContractTraceElement_Upgraded_)(nil), } - file_types_proto_msgTypes[84].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[85].OneofWrappers = []interface{}{ (*BakerEvent_BakerAdded_)(nil), (*BakerEvent_BakerRemoved)(nil), (*BakerEvent_BakerStakeIncreased_)(nil), @@ -29616,7 +33297,7 @@ func file_types_proto_init() { (*BakerEvent_BakerSetBakingRewardCommission_)(nil), (*BakerEvent_BakerSetFinalizationRewardCommission_)(nil), } - file_types_proto_msgTypes[86].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[87].OneofWrappers = []interface{}{ (*DelegationEvent_DelegationStakeIncreased_)(nil), (*DelegationEvent_DelegationStakeDecreased_)(nil), (*DelegationEvent_DelegationSetRestakeEarnings_)(nil), @@ -29624,7 +33305,7 @@ func file_types_proto_init() { (*DelegationEvent_DelegationAdded)(nil), (*DelegationEvent_DelegationRemoved)(nil), } - file_types_proto_msgTypes[87].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[88].OneofWrappers = []interface{}{ (*AccountTransactionEffects_None_)(nil), (*AccountTransactionEffects_ModuleDeployed)(nil), (*AccountTransactionEffects_ContractInitialized)(nil), @@ -29645,18 +33326,18 @@ func file_types_proto_init() { (*AccountTransactionEffects_BakerConfigured_)(nil), (*AccountTransactionEffects_DelegationConfigured_)(nil), } - file_types_proto_msgTypes[123].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[125].OneofWrappers = []interface{}{ (*RootUpdate_RootKeysUpdate)(nil), (*RootUpdate_Level_1KeysUpdate)(nil), (*RootUpdate_Level_2KeysUpdateV0)(nil), (*RootUpdate_Level_2KeysUpdateV1)(nil), } - file_types_proto_msgTypes[124].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[126].OneofWrappers = []interface{}{ (*Level1Update_Level_1KeysUpdate)(nil), (*Level1Update_Level_2KeysUpdateV0)(nil), (*Level1Update_Level_2KeysUpdateV1)(nil), } - file_types_proto_msgTypes[125].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[127].OneofWrappers = []interface{}{ (*UpdatePayload_ProtocolUpdate)(nil), (*UpdatePayload_ElectionDifficultyUpdate)(nil), (*UpdatePayload_EuroPerEnergyUpdate)(nil), @@ -29680,33 +33361,34 @@ func file_types_proto_init() { (*UpdatePayload_BlockEnergyLimitUpdate)(nil), (*UpdatePayload_FinalizationCommitteeParametersUpdate)(nil), } - file_types_proto_msgTypes[130].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[132].OneofWrappers = []interface{}{ (*BlockItemSummary_AccountTransaction)(nil), (*BlockItemSummary_AccountCreation)(nil), (*BlockItemSummary_Update)(nil), } - file_types_proto_msgTypes[132].OneofWrappers = []interface{}{} - file_types_proto_msgTypes[135].OneofWrappers = []interface{}{} - file_types_proto_msgTypes[137].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[134].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[137].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[139].OneofWrappers = []interface{}{ (*PoolPendingChange_Reduce_)(nil), (*PoolPendingChange_Remove_)(nil), } - file_types_proto_msgTypes[139].OneofWrappers = []interface{}{} - file_types_proto_msgTypes[141].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[141].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[143].OneofWrappers = []interface{}{ (*BlocksAtHeightRequest_Absolute_)(nil), (*BlocksAtHeightRequest_Relative_)(nil), } - file_types_proto_msgTypes[143].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[145].OneofWrappers = []interface{}{ (*TokenomicsInfo_V0_)(nil), (*TokenomicsInfo_V1_)(nil), } - file_types_proto_msgTypes[144].OneofWrappers = []interface{}{} - file_types_proto_msgTypes[145].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[146].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[147].OneofWrappers = []interface{}{ (*InvokeInstanceResponse_Success_)(nil), (*InvokeInstanceResponse_Failure_)(nil), } - file_types_proto_msgTypes[147].OneofWrappers = []interface{}{} - file_types_proto_msgTypes[152].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[149].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[153].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[154].OneofWrappers = []interface{}{ (*BlockSpecialEvent_BakingRewards_)(nil), (*BlockSpecialEvent_Mint_)(nil), (*BlockSpecialEvent_FinalizationRewards_)(nil), @@ -29716,7 +33398,7 @@ func file_types_proto_init() { (*BlockSpecialEvent_BlockAccrueReward_)(nil), (*BlockSpecialEvent_PaydayPoolReward_)(nil), } - file_types_proto_msgTypes[153].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[155].OneofWrappers = []interface{}{ (*PendingUpdate_RootKeys)(nil), (*PendingUpdate_Level1Keys)(nil), (*PendingUpdate_Level2KeysCpv_0)(nil), @@ -29742,19 +33424,19 @@ func file_types_proto_init() { (*PendingUpdate_BlockEnergyLimit)(nil), (*PendingUpdate_FinalizationCommitteeParameters)(nil), } - file_types_proto_msgTypes[164].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[166].OneofWrappers = []interface{}{ (*NodeInfo_Bootstrapper)(nil), (*NodeInfo_Node_)(nil), } - file_types_proto_msgTypes[165].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[167].OneofWrappers = []interface{}{ (*SendBlockItemRequest_AccountTransaction)(nil), (*SendBlockItemRequest_CredentialDeployment)(nil), (*SendBlockItemRequest_UpdateInstruction)(nil), } - file_types_proto_msgTypes[166].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[168].OneofWrappers = []interface{}{ (*CredentialDeployment_RawPayload)(nil), } - file_types_proto_msgTypes[176].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[178].OneofWrappers = []interface{}{ (*AccountTransactionPayload_RawPayload)(nil), (*AccountTransactionPayload_DeployModule)(nil), (*AccountTransactionPayload_InitContract)(nil), @@ -29763,64 +33445,107 @@ func file_types_proto_init() { (*AccountTransactionPayload_TransferWithMemo)(nil), (*AccountTransactionPayload_RegisterData)(nil), } - file_types_proto_msgTypes[181].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[182].OneofWrappers = []interface{}{ (*UpdateInstructionPayload_RawPayload)(nil), } - file_types_proto_msgTypes[188].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[189].OneofWrappers = []interface{}{ (*ChainParameters_V0)(nil), (*ChainParameters_V1)(nil), (*ChainParameters_V2)(nil), } - file_types_proto_msgTypes[192].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[193].OneofWrappers = []interface{}{ (*BlockFinalizationSummary_None)(nil), (*BlockFinalizationSummary_Record)(nil), } - file_types_proto_msgTypes[193].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[194].OneofWrappers = []interface{}{ (*BlockItem_AccountTransaction)(nil), (*BlockItem_CredentialDeployment)(nil), (*BlockItem_UpdateInstruction)(nil), } - file_types_proto_msgTypes[197].OneofWrappers = []interface{}{} - file_types_proto_msgTypes[198].OneofWrappers = []interface{}{} - file_types_proto_msgTypes[233].OneofWrappers = []interface{}{} - file_types_proto_msgTypes[235].OneofWrappers = []interface{}{} - file_types_proto_msgTypes[236].OneofWrappers = []interface{}{} - file_types_proto_msgTypes[237].OneofWrappers = []interface{}{} - file_types_proto_msgTypes[239].OneofWrappers = []interface{}{} - file_types_proto_msgTypes[254].OneofWrappers = []interface{}{} - file_types_proto_msgTypes[255].OneofWrappers = []interface{}{} - file_types_proto_msgTypes[265].OneofWrappers = []interface{}{} - file_types_proto_msgTypes[267].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[203].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[205].OneofWrappers = []interface{}{ + (*DryRunRequest_LoadBlockState)(nil), + (*DryRunRequest_StateQuery)(nil), + (*DryRunRequest_StateOperation)(nil), + } + file_v2_concordium_types_proto_msgTypes[206].OneofWrappers = []interface{}{ + (*DryRunStateQuery_GetAccountInfo)(nil), + (*DryRunStateQuery_GetInstanceInfo)(nil), + (*DryRunStateQuery_InvokeInstance)(nil), + } + file_v2_concordium_types_proto_msgTypes[207].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[208].OneofWrappers = []interface{}{ + (*DryRunStateOperation_SetTimestamp)(nil), + (*DryRunStateOperation_MintToAccount)(nil), + (*DryRunStateOperation_RunTransaction)(nil), + } + file_v2_concordium_types_proto_msgTypes[212].OneofWrappers = []interface{}{ + (*DryRunResponse_Error)(nil), + (*DryRunResponse_Success)(nil), + } + file_v2_concordium_types_proto_msgTypes[213].OneofWrappers = []interface{}{ + (*DryRunErrorResponse_NoState_)(nil), + (*DryRunErrorResponse_BlockNotFound_)(nil), + (*DryRunErrorResponse_AccountNotFound_)(nil), + (*DryRunErrorResponse_InstanceNotFound_)(nil), + (*DryRunErrorResponse_AmountOverLimit_)(nil), + (*DryRunErrorResponse_BalanceInsufficient_)(nil), + (*DryRunErrorResponse_EnergyInsufficient_)(nil), + (*DryRunErrorResponse_InvokeFailed)(nil), + } + file_v2_concordium_types_proto_msgTypes[214].OneofWrappers = []interface{}{ + (*DryRunSuccessResponse_BlockStateLoaded_)(nil), + (*DryRunSuccessResponse_AccountInfo)(nil), + (*DryRunSuccessResponse_InstanceInfo)(nil), + (*DryRunSuccessResponse_InvokeSucceeded)(nil), + (*DryRunSuccessResponse_TimestampSet_)(nil), + (*DryRunSuccessResponse_MintedToAccount_)(nil), + (*DryRunSuccessResponse_TransactionExecuted_)(nil), + } + file_v2_concordium_types_proto_msgTypes[218].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[219].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[255].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[257].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[258].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[259].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[261].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[276].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[277].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[287].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[289].OneofWrappers = []interface{}{ (*PeersInfo_Peer_Bootstrapper)(nil), (*PeersInfo_Peer_NodeCatchupStatus)(nil), } - file_types_proto_msgTypes[270].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[292].OneofWrappers = []interface{}{ (*NodeInfo_BakerConsensusInfo_PassiveCommitteeInfo_)(nil), (*NodeInfo_BakerConsensusInfo_ActiveBakerCommitteeInfo_)(nil), (*NodeInfo_BakerConsensusInfo_ActiveFinalizerCommitteeInfo_)(nil), } - file_types_proto_msgTypes[271].OneofWrappers = []interface{}{ + file_v2_concordium_types_proto_msgTypes[293].OneofWrappers = []interface{}{ (*NodeInfo_Node_NotRunning)(nil), (*NodeInfo_Node_Passive)(nil), (*NodeInfo_Node_Active)(nil), } + file_v2_concordium_types_proto_msgTypes[306].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[310].OneofWrappers = []interface{}{} + file_v2_concordium_types_proto_msgTypes[311].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_types_proto_rawDesc, + RawDescriptor: file_v2_concordium_types_proto_rawDesc, NumEnums: 8, - NumMessages: 278, + NumMessages: 312, NumExtensions: 0, NumServices: 0, }, - GoTypes: file_types_proto_goTypes, - DependencyIndexes: file_types_proto_depIdxs, - EnumInfos: file_types_proto_enumTypes, - MessageInfos: file_types_proto_msgTypes, + GoTypes: file_v2_concordium_types_proto_goTypes, + DependencyIndexes: file_v2_concordium_types_proto_depIdxs, + EnumInfos: file_v2_concordium_types_proto_enumTypes, + MessageInfos: file_v2_concordium_types_proto_msgTypes, }.Build() - File_types_proto = out.File - file_types_proto_rawDesc = nil - file_types_proto_goTypes = nil - file_types_proto_depIdxs = nil + File_v2_concordium_types_proto = out.File + file_v2_concordium_types_proto_rawDesc = nil + file_v2_concordium_types_proto_goTypes = nil + file_v2_concordium_types_proto_depIdxs = nil } From 2a1672d923a64052448a772d3c1b8e2117ec5318 Mon Sep 17 00:00:00 2001 From: magnusbechwind Date: Mon, 11 Dec 2023 14:03:08 +0100 Subject: [PATCH 03/12] Added and updated CHANGELOG.md --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..6d21297 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +## Unreleased changes +- Added support for GRPC V2 `GetWinningBakersEpoch` for getting a list of bakers that won the lottery in a particular historical epoch. Only available when querying a node with version at least 6.1. +- Added support for GRPC V2 `GetFirstBlockEpoch` for getting the block hash of the first finalized block in a specified epoch. Only available when querying a node with version at least 6.1. +- Added support for GRPC V2 `GetBakerEarliestWinTime` for getting the projected earliest time at which a particular baker will be required to bake a block. Only available when querying a node woth version at least 6.1. +- Added support for GRPC V2 `GetBakerRewardPeriodInfo` for getting all the bakers in the reward period of a block. Only available when querying a node with version at least 6.1. +- Added support for GRPC V2 `GetBlockCertificates` for retrieving certificates for a block supporting ConcordiumBF, i.e. a node with at least version 6.1. +- Added support for GRPC V2 `DryRun` for dry running a series of transactions and operations on a state derived from a specified block. Only available when querying a node with version at least 6.1. \ No newline at end of file From 345ccd258601afc1d8d90606c0e32f21ba05cce6 Mon Sep 17 00:00:00 2001 From: magnusbechwind Date: Tue, 12 Dec 2023 15:04:32 +0100 Subject: [PATCH 04/12] Implemented missing endpoints --- CHANGELOG.md | 5 ++-- v2/getbakerearliestwintime.go | 24 +++++++++++++++ v2/getbakersrewardperiod.go | 19 ++++++++++++ v2/getblockcertificates.go | 20 +++++++++++++ v2/getfirstblockepoch.go | 19 ++++++++++++ v2/getwinningbakersepoch.go | 22 ++++++++++++++ v2/tests/api_test.go | 2 +- v2/types.go | 56 +++++++++++++++++++++++++++++++++++ 8 files changed, 163 insertions(+), 4 deletions(-) create mode 100644 v2/getbakerearliestwintime.go create mode 100644 v2/getbakersrewardperiod.go create mode 100644 v2/getblockcertificates.go create mode 100644 v2/getfirstblockepoch.go create mode 100644 v2/getwinningbakersepoch.go diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d21297..62489f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,6 @@ ## Unreleased changes - Added support for GRPC V2 `GetWinningBakersEpoch` for getting a list of bakers that won the lottery in a particular historical epoch. Only available when querying a node with version at least 6.1. - Added support for GRPC V2 `GetFirstBlockEpoch` for getting the block hash of the first finalized block in a specified epoch. Only available when querying a node with version at least 6.1. -- Added support for GRPC V2 `GetBakerEarliestWinTime` for getting the projected earliest time at which a particular baker will be required to bake a block. Only available when querying a node woth version at least 6.1. +- Added support for GRPC V2 `GetBakerEarliestWinTime` for getting the projected earliest time at which a particular baker will be required to bake a block. Only available when querying a node with version at least 6.1. - Added support for GRPC V2 `GetBakerRewardPeriodInfo` for getting all the bakers in the reward period of a block. Only available when querying a node with version at least 6.1. -- Added support for GRPC V2 `GetBlockCertificates` for retrieving certificates for a block supporting ConcordiumBF, i.e. a node with at least version 6.1. -- Added support for GRPC V2 `DryRun` for dry running a series of transactions and operations on a state derived from a specified block. Only available when querying a node with version at least 6.1. \ No newline at end of file +- Added support for GRPC V2 `GetBlockCertificates` for retrieving certificates for a block supporting ConcordiumBF, i.e. a node with at least version 6.1. \ No newline at end of file diff --git a/v2/getbakerearliestwintime.go b/v2/getbakerearliestwintime.go new file mode 100644 index 0000000..be28dd9 --- /dev/null +++ b/v2/getbakerearliestwintime.go @@ -0,0 +1,24 @@ +package v2 + +import ( + "context" + + "github.com/Concordium/concordium-go-sdk/v2/pb" +) + +// GetBakerEarliestWinTime retrieves the projected earliest time at which a particular baker will be required to bake a block. +// - If the baker is not a baker for the current reward period, this returns a timestamp at the start of the next reward period. +// - If the baker is a baker for the current reward period, the earliest win time is projected from the current round forwward, assuming that each round after the last finalixed round will take the minimum block time. (If blocks take longer, or timeouts occur, the actual time may be later, and the reported time in subsequent queries may reflect this.) +// - At the end of an epoch (or if the baker is not projected to bake before the end of the epoch) the earliest win time for a (current) baker will be projected as the start of the next epoch. This is because the seed for the leader election is updated at the epoch boundary, and so the winners cannot be predicted beyond that. +// +// Note that in some circumstances the returned timestamp can be in the past, especially at the end of an epoch. +// +// This endpoint is only supported for protocol version 6 and onwards. +func (c *Client) GetBakerEarliestWinTime(ctx context.Context, req *pb.BakerId) (_ *pb.Timestamp, err error) { + timestamp, err := c.GrpcClient.GetBakerEarliestWinTime(ctx, req) + if err != nil { + return &pb.Timestamp{}, err + } + + return timestamp, nil +} diff --git a/v2/getbakersrewardperiod.go b/v2/getbakersrewardperiod.go new file mode 100644 index 0000000..099b928 --- /dev/null +++ b/v2/getbakersrewardperiod.go @@ -0,0 +1,19 @@ +package v2 + +import ( + "context" + + "github.com/Concordium/concordium-go-sdk/v2/pb" +) + +// GetBakersRewardPeriod retrieves all bakers in the reward period of a block. +// +// This endpoint is only supported for protocol version 6 and onwards. +func (c *Client) GetBakersRewardPeriod(ctx context.Context, req isBlockHashInput) (_ pb.Queries_GetBakersRewardPeriodClient, err error) { + stream, err := c.GrpcClient.GetBakersRewardPeriod(ctx, convertBlockHashInput(req)) + if err != nil { + return nil, err + } + + return stream, nil +} diff --git a/v2/getblockcertificates.go b/v2/getblockcertificates.go new file mode 100644 index 0000000..35c9b45 --- /dev/null +++ b/v2/getblockcertificates.go @@ -0,0 +1,20 @@ +package v2 + +import ( + "context" + + "github.com/Concordium/concordium-go-sdk/v2/pb" +) + +// GetBlockCertificates returns the quorum certificate, a timeout certificate (if present) and epoch finalization certificate (if present) +// for a non-genesis block. +// +// This endpoint is only supported for protocol version 6 and onwards. +func (c *Client) GetBlockCertificates(ctx context.Context, req isBlockHashInput) (_ *pb.BlockCertificates, err error) { + certificates, err := c.GrpcClient.GetBlockCertificates(ctx, convertBlockHashInput(req)) + if err != nil { + return &pb.BlockCertificates{}, err + } + + return certificates, nil +} diff --git a/v2/getfirstblockepoch.go b/v2/getfirstblockepoch.go new file mode 100644 index 0000000..9cf08d7 --- /dev/null +++ b/v2/getfirstblockepoch.go @@ -0,0 +1,19 @@ +package v2 + +import ( + "context" + + "github.com/Concordium/concordium-go-sdk/v2/pb" +) + +// GetFirstBlockEpoch retrieves the block hash of the first finalized block in a specified epoch. +// +// This endpoint is only supported for protocol version 6 and onwards. +func (c *Client) GetFirstBlockEpoch(ctx context.Context, req isEpochRequest) (_ *pb.BlockHash, err error) { + resp, err := c.GrpcClient.GetFirstBlockEpoch(ctx, convertEpochRequest(req)) + if err != nil { + return nil, err + } + + return resp, nil +} diff --git a/v2/getwinningbakersepoch.go b/v2/getwinningbakersepoch.go new file mode 100644 index 0000000..224e38e --- /dev/null +++ b/v2/getwinningbakersepoch.go @@ -0,0 +1,22 @@ +package v2 + +import ( + "context" + + "github.com/Concordium/concordium-go-sdk/v2/pb" +) + +// GetWinningBakersEpoch retrieves a list of bakers that won the lottery in a particular historical epoch +// (i.e. the last finalized block in a later epoch). This lists the winners for each round in the epoch, +// starting from the round after the last block in the previous epoch, running to the round before the first +// block in the next epoch. It also indicates if a block in each round was included in the finalized chain. +// +// This endpoint is only supported for protocol version 6 and onwards. +func (c *Client) GetWinningBakersEpoch(ctx context.Context, req isEpochRequest) (_ pb.Queries_GetWinningBakersEpochClient, err error) { + stream, err := c.GrpcClient.GetWinningBakersEpoch(ctx, convertEpochRequest(req)) + if err != nil { + return nil, err + } + + return stream, nil +} diff --git a/v2/tests/api_test.go b/v2/tests/api_test.go index 0b0288b..6fa29c5 100644 --- a/v2/tests/api_test.go +++ b/v2/tests/api_test.go @@ -4,7 +4,7 @@ import ( "context" "testing" - "github.com/Concordium/concordium-go-sdk/v2" + v2 "github.com/Concordium/concordium-go-sdk/v2" "github.com/Concordium/concordium-go-sdk/v2/pb" "github.com/stretchr/testify/require" ) diff --git a/v2/types.go b/v2/types.go index f4a57b4..505eba0 100644 --- a/v2/types.go +++ b/v2/types.go @@ -995,3 +995,59 @@ func ConvertBlockItems(input []*pb.BlockItem) []*BlockItem { return result } + +// A chain epoch. +type Epoch struct { + Value uint64 +} + +// Input to queries which take an epoch as a parameter. +type isEpochRequest interface { + isEpochRequest() +} + +// Query for the epoch of a specified block. +type EpochRequestBlockHash struct { + // The block to query at. + BlockHash isBlockHashInput +} + +func (EpochRequestBlockHash) isEpochRequest() {} + +// Request an epoch by number at a given genesis index. +type EpochRequestRelativeEpoch struct { + // The genesis index to query at. The query is restricted to this genesis idex, and + // will not return results for other indices even if the epoch number is out of bounds. + GenesisIndex GenesisIndex + // The epoch number to query at. + Epoch Epoch +} + +func (EpochRequestRelativeEpoch) isEpochRequest() {} + +func convertEpochRequest(req isEpochRequest) (_ *pb.EpochRequest) { + var res *pb.EpochRequest + switch v := req.(type) { + case EpochRequestBlockHash: + res = &pb.EpochRequest{ + EpochRequestInput: &pb.EpochRequest_BlockHash{ + BlockHash: convertBlockHashInput(v.BlockHash), + }, + } + case EpochRequestRelativeEpoch: + res = &pb.EpochRequest{ + EpochRequestInput: &pb.EpochRequest_RelativeEpoch_{ + RelativeEpoch: &pb.EpochRequest_RelativeEpoch{ + GenesisIndex: &pb.GenesisIndex{ + Value: v.GenesisIndex.Value, + }, + Epoch: &pb.Epoch{ + Value: v.Epoch.Value, + }, + }, + }, + } + } + + return res +} From 110f0510dbbe61d1f76d407c978062d29f21927d Mon Sep 17 00:00:00 2001 From: magnusbechwind Date: Tue, 12 Dec 2023 15:33:29 +0100 Subject: [PATCH 05/12] Comment reformatting --- v2/getbakerearliestwintime.go | 10 ++++++++-- v2/getwinningbakersepoch.go | 17 +++++++++++++---- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/v2/getbakerearliestwintime.go b/v2/getbakerearliestwintime.go index be28dd9..9ae5f9e 100644 --- a/v2/getbakerearliestwintime.go +++ b/v2/getbakerearliestwintime.go @@ -7,9 +7,15 @@ import ( ) // GetBakerEarliestWinTime retrieves the projected earliest time at which a particular baker will be required to bake a block. +// // - If the baker is not a baker for the current reward period, this returns a timestamp at the start of the next reward period. -// - If the baker is a baker for the current reward period, the earliest win time is projected from the current round forwward, assuming that each round after the last finalixed round will take the minimum block time. (If blocks take longer, or timeouts occur, the actual time may be later, and the reported time in subsequent queries may reflect this.) -// - At the end of an epoch (or if the baker is not projected to bake before the end of the epoch) the earliest win time for a (current) baker will be projected as the start of the next epoch. This is because the seed for the leader election is updated at the epoch boundary, and so the winners cannot be predicted beyond that. +// - If the baker is a baker for the current reward period, the earliest win time is projected from the current round forwward, +// assuming that each round after the last finalixed round will take the minimum block time. (If blocks take longer, or timeouts occur, +// the actual time may be later, and the reported time in subsequent queries may reflect this.) +// - At the end of an epoch (or if the baker is not projected to bake before the end of the epoch) +// the earliest win time for a (current) baker will be projected as the start of the next epoch. +// This is because the seed for the leader election is updated at the epoch boundary, +// and so the winners cannot be predicted beyond that. // // Note that in some circumstances the returned timestamp can be in the past, especially at the end of an epoch. // diff --git a/v2/getwinningbakersepoch.go b/v2/getwinningbakersepoch.go index 224e38e..c6c5e14 100644 --- a/v2/getwinningbakersepoch.go +++ b/v2/getwinningbakersepoch.go @@ -6,10 +6,19 @@ import ( "github.com/Concordium/concordium-go-sdk/v2/pb" ) -// GetWinningBakersEpoch retrieves a list of bakers that won the lottery in a particular historical epoch -// (i.e. the last finalized block in a later epoch). This lists the winners for each round in the epoch, -// starting from the round after the last block in the previous epoch, running to the round before the first -// block in the next epoch. It also indicates if a block in each round was included in the finalized chain. +// GetWinningBakersEpoch retrieves the list of bakers that won the lottery in a particular historical epoch +// (i.e. the last finalized block is in a later epoch). This lists the winners for each round in the +// epoch, starting from the round after the last block in the previous epoch, running to +// the round before the first block in the next epoch. It also indicates if a block in each +// round was included in the finalized chain. +// +// The following error cases are possible: +// - `NOT_FOUND` if the query specifies an unknown block. +// - `UNAVAILABLE` if the query is for an epoch that is not finalized in the current genesis index, or is for a future genesis index. +// - `INVALID_ARGUMENT` if the query is for an epoch that is not finalized for a past genesis index. +// - `INVALID_ARGUMENT` if the query is for a genesis index at consensus version 0. +// - `INVALID_ARGUMENT` if the input `EpochRequest` is malformed. +// - `UNIMPLEMENTED` if the endpoint is disabled on the node. // // This endpoint is only supported for protocol version 6 and onwards. func (c *Client) GetWinningBakersEpoch(ctx context.Context, req isEpochRequest) (_ pb.Queries_GetWinningBakersEpochClient, err error) { From 898721461b19cb5c4b131e2a7ef8e4b59cd5ebca Mon Sep 17 00:00:00 2001 From: magnusbechwind Date: Tue, 12 Dec 2023 15:35:56 +0100 Subject: [PATCH 06/12] Comment reformatting --- v2/getfirstblockepoch.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/v2/getfirstblockepoch.go b/v2/getfirstblockepoch.go index 9cf08d7..91fbd1e 100644 --- a/v2/getfirstblockepoch.go +++ b/v2/getfirstblockepoch.go @@ -8,6 +8,13 @@ import ( // GetFirstBlockEpoch retrieves the block hash of the first finalized block in a specified epoch. // +// The following errors are possible: +// - `NOT_FOUND` if the query specifies an unknown block. +// - `UNAVAILABLE` if the query is for an epoch that is not finalized in the current genesis index, or is for a future genesis index. +// - `INVALID_ARGUMENT` if the query is for an epoch with no finalized blocks for a past genesis index. +// - `INVALID_ARGUMENT` if the input `EpochRequest` is malformed. +// - `UNIMPLEMENTED` if the endpoint is disabled on the node. +// // This endpoint is only supported for protocol version 6 and onwards. func (c *Client) GetFirstBlockEpoch(ctx context.Context, req isEpochRequest) (_ *pb.BlockHash, err error) { resp, err := c.GrpcClient.GetFirstBlockEpoch(ctx, convertEpochRequest(req)) From 7f2eeee4653a1c93faf17ceae1d18ebb64170c7b Mon Sep 17 00:00:00 2001 From: magnusbechwind Date: Mon, 18 Dec 2023 11:33:24 +0100 Subject: [PATCH 07/12] Added grpc api submodule --- .gitmodules | 3 +++ concordium-grpc-api | 1 + 2 files changed, 4 insertions(+) create mode 100644 .gitmodules create mode 160000 concordium-grpc-api diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..fa1974d --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "concordium-grpc-api"] + path = concordium-grpc-api + url = git@github.com:Concordium/concordium-grpc-api.git diff --git a/concordium-grpc-api b/concordium-grpc-api new file mode 160000 index 0000000..ffd3be6 --- /dev/null +++ b/concordium-grpc-api @@ -0,0 +1 @@ +Subproject commit ffd3be63c6f799438e6b465389ffc0cef83095b7 From db7946f0ca0fa0d34e8eeada9c229870dd19ce8d Mon Sep 17 00:00:00 2001 From: magnusbechwind Date: Mon, 18 Dec 2023 11:56:16 +0100 Subject: [PATCH 08/12] GetFirstBlockEpoch returns v2.BlockHash --- v2/getfirstblockepoch.go | 13 ++++++++----- v2/types.go | 13 +++++++++++++ 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/v2/getfirstblockepoch.go b/v2/getfirstblockepoch.go index 91fbd1e..bbeb4f9 100644 --- a/v2/getfirstblockepoch.go +++ b/v2/getfirstblockepoch.go @@ -2,8 +2,6 @@ package v2 import ( "context" - - "github.com/Concordium/concordium-go-sdk/v2/pb" ) // GetFirstBlockEpoch retrieves the block hash of the first finalized block in a specified epoch. @@ -16,11 +14,16 @@ import ( // - `UNIMPLEMENTED` if the endpoint is disabled on the node. // // This endpoint is only supported for protocol version 6 and onwards. -func (c *Client) GetFirstBlockEpoch(ctx context.Context, req isEpochRequest) (_ *pb.BlockHash, err error) { +func (c *Client) GetFirstBlockEpoch(ctx context.Context, req isEpochRequest) (_ BlockHash, err error) { resp, err := c.GrpcClient.GetFirstBlockEpoch(ctx, convertEpochRequest(req)) if err != nil { - return nil, err + return BlockHash{}, err + } + + res, err := parseBlockHash(resp) + if err != nil { + return BlockHash{}, err } - return resp, nil + return res, nil } diff --git a/v2/types.go b/v2/types.go index 505eba0..822aa06 100644 --- a/v2/types.go +++ b/v2/types.go @@ -288,6 +288,19 @@ type BlockHash struct { Value [BlockHashLength]byte } +func BlockHashFromBytes(b []byte) (BlockHash, error) { + if len(b) != BlockHashLength { + return BlockHash{}, errors.New("BlockHash must be excactly 32 bytes") + } + var blockHash BlockHash + copy(blockHash.Value[:], b) + return blockHash, nil +} + +func parseBlockHash(h *pb.BlockHash) (BlockHash, error) { + return BlockHashFromBytes(h.Value) +} + // Hex encodes block hash to base16 string. func (b *BlockHash) Hex() string { return hex.EncodeToString(b.Value[:]) From bd37c8dee45a24b98ba07b95c5d030d2104a8bc4 Mon Sep 17 00:00:00 2001 From: magnusbechwind Date: Mon, 18 Dec 2023 12:38:28 +0100 Subject: [PATCH 09/12] GetBakerEarliestWintime returns v2.Timestamp --- v2/getbakerearliestwintime.go | 6 +++--- v2/types.go | 7 +++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/v2/getbakerearliestwintime.go b/v2/getbakerearliestwintime.go index 9ae5f9e..fb0777c 100644 --- a/v2/getbakerearliestwintime.go +++ b/v2/getbakerearliestwintime.go @@ -20,11 +20,11 @@ import ( // Note that in some circumstances the returned timestamp can be in the past, especially at the end of an epoch. // // This endpoint is only supported for protocol version 6 and onwards. -func (c *Client) GetBakerEarliestWinTime(ctx context.Context, req *pb.BakerId) (_ *pb.Timestamp, err error) { +func (c *Client) GetBakerEarliestWinTime(ctx context.Context, req *pb.BakerId) (_ Timestamp, err error) { timestamp, err := c.GrpcClient.GetBakerEarliestWinTime(ctx, req) if err != nil { - return &pb.Timestamp{}, err + return Timestamp{}, err } - return timestamp, nil + return parseTimestamp(timestamp), nil } diff --git a/v2/types.go b/v2/types.go index 822aa06..f33a472 100644 --- a/v2/types.go +++ b/v2/types.go @@ -288,6 +288,7 @@ type BlockHash struct { Value [BlockHashLength]byte } +// BlockHashFromBytes creates a BlockHash from given []byte. Length of given []byte must be excactly 32 bytes. func BlockHashFromBytes(b []byte) (BlockHash, error) { if len(b) != BlockHashLength { return BlockHash{}, errors.New("BlockHash must be excactly 32 bytes") @@ -297,6 +298,7 @@ func BlockHashFromBytes(b []byte) (BlockHash, error) { return blockHash, nil } +// Parses *pb.BlockHash to BlockHash func parseBlockHash(h *pb.BlockHash) (BlockHash, error) { return BlockHashFromBytes(h.Value) } @@ -449,6 +451,11 @@ type Timestamp struct { Value uint64 } +// Parses *pb.Timestamp to Timestamp +func parseTimestamp(t *pb.Timestamp) Timestamp { + return Timestamp{Value: t.Value} +} + // GenesisIndex the number of chain restarts via a protocol update. An effected // protocol update instruction might not change the protocol version // specified in the previous field, but it always increments the genesis From 876cc7733d9bb19b3f1bec457ff886e841d6ec45 Mon Sep 17 00:00:00 2001 From: magnusbechwind Date: Mon, 18 Dec 2023 15:35:36 +0100 Subject: [PATCH 10/12] Wrapper for GetBakersRewardPeriod return type. --- v2/getbakersrewardperiod.go | 8 +- v2/types.go | 186 ++++++++++++++++++++++++++++++++++++ 2 files changed, 189 insertions(+), 5 deletions(-) diff --git a/v2/getbakersrewardperiod.go b/v2/getbakersrewardperiod.go index 099b928..022d454 100644 --- a/v2/getbakersrewardperiod.go +++ b/v2/getbakersrewardperiod.go @@ -2,18 +2,16 @@ package v2 import ( "context" - - "github.com/Concordium/concordium-go-sdk/v2/pb" ) // GetBakersRewardPeriod retrieves all bakers in the reward period of a block. // // This endpoint is only supported for protocol version 6 and onwards. -func (c *Client) GetBakersRewardPeriod(ctx context.Context, req isBlockHashInput) (_ pb.Queries_GetBakersRewardPeriodClient, err error) { +func (c *Client) GetBakersRewardPeriod(ctx context.Context, req isBlockHashInput) (_ BakerRewardPeriodInfoStream, err error) { stream, err := c.GrpcClient.GetBakersRewardPeriod(ctx, convertBlockHashInput(req)) if err != nil { - return nil, err + return BakerRewardPeriodInfoStream{}, err } - return stream, nil + return BakerRewardPeriodInfoStream{stream: stream}, nil } diff --git a/v2/types.go b/v2/types.go index f33a472..ba958e9 100644 --- a/v2/types.go +++ b/v2/types.go @@ -17,6 +17,7 @@ const ( BlockHashLength = 32 TransactionHashLength = 32 ModuleRefLength = 32 + hundredThousand = 100000 ) // WalletAccount an account imported from one of the supported export formats. @@ -441,6 +442,11 @@ type BakerId struct { Value uint64 } +// Parses *pb.BakerId to BakerId +func parseBakerId(b *pb.BakerId) BakerId { + return BakerId{Value: b.Value} +} + // Slot a number representing a slot for baking a block. type Slot struct { Value uint64 @@ -705,6 +711,10 @@ type Amount struct { Value uint64 } +func parseAmount(a *pb.Amount) Amount { + return Amount{Value: a.Value} +} + // Parameter to a smart contract initialization or invocation. type Parameter struct { Value []byte @@ -1071,3 +1081,179 @@ func convertEpochRequest(req isEpochRequest) (_ *pb.EpochRequest) { return res } + +// Return type of GetBakersRewardPeriod. Parses the returned *pb.BakerRewardPeriodInfo to BakerRewardPeriodInfo when Recv() is called. +type BakerRewardPeriodInfoStream struct { + stream pb.Queries_GetBakersRewardPeriodClient +} + +// Recv retrieves the next BakerRewardPeriodInfo. +func (s *BakerRewardPeriodInfoStream) Recv() (BakerRewardPeriodInfo, error) { + info, err := s.stream.Recv() + if err != nil { + return BakerRewardPeriodInfo{}, err + } + return parseBakerRewardPeriodInfo(info) +} + +// Information about a particular baker with respect to the current reward period. +type BakerRewardPeriodInfo struct { + + // The baker id and public keys for the baker. + Baker BakerInfo + + // The effective stake of the baker for the consensus protocol. + // The returned amount accounts for delegation, capital bounds and leverage bounds. + EffectiveStake Amount + + // The effective commission rate for the baker that applies for the reward period. + CommissionRates CommissionRates + + // The amount staked by the baker itself. + EquityCapital Amount + + // The total amount of capital delegated to this baker pool. + DelegatedCapital Amount + + // Whether the baker is a finalizer or not. + IsFinalizer bool +} + +// Parses *pb.BakerRewardPeriodInfo to BakerRewardPeriodInfo +func parseBakerRewardPeriodInfo(b *pb.BakerRewardPeriodInfo) (BakerRewardPeriodInfo, error) { + baker := parseBakerInfo(b.GetBaker()) + effectiveStake := parseAmount(b.GetEffectiveStake()) + CommissionRates, err := parseCommissionRates(b.CommissionRates) + if err != nil { + return BakerRewardPeriodInfo{}, err + } + equityCapital := parseAmount(b.EquityCapital) + delegatedCapital := parseAmount(b.DelegatedCapital) + isFinalizer := b.IsFinalizer + return BakerRewardPeriodInfo{ + Baker: baker, + EffectiveStake: effectiveStake, + CommissionRates: CommissionRates, + EquityCapital: equityCapital, + DelegatedCapital: delegatedCapital, + IsFinalizer: isFinalizer, + }, nil +} + +// Information about a baker. +type BakerInfo struct { + + // Identity of the baker. This is actually the account index of the account controlling the baker. + BakerId BakerId + + // Baker's public key used to check whether they won the lottery or not. + ElectionKey BakerElectionVerifyKey + + // Baker's public key used to check that they are indeed the ones who produced the block. + SignatureKey BakerSignatureVerifyKey + + // Baker's public key used to check signatures on finalization records. + // This is only used if the baker has sufficient stake to participate in finalization. + AggregationKey BakerAggregationVerifyKey +} + +// Parses *pb.BakerInfo to BakerInfo +func parseBakerInfo(b *pb.BakerInfo) BakerInfo { + bakerId := parseBakerId(b.BakerId) + electionKey := parseBakerElectionVerifyKey(b.ElectionKey) + signatureKey := parseBakerSignatureVerifyKey(b.SignatureKey) + aggregationKey := parseBakerAggregationVerifyKey(b.AggregationKey) + return BakerInfo{BakerId: bakerId, ElectionKey: electionKey, SignatureKey: signatureKey, AggregationKey: aggregationKey} + +} + +// Baker's public key used to check whether they won the lottery or not. +type BakerElectionVerifyKey struct { + Value []byte +} + +// Parses *pb.BakerElectionVerifyKey to BakerElectionVerifyKey +func parseBakerElectionVerifyKey(k *pb.BakerElectionVerifyKey) BakerElectionVerifyKey { + return BakerElectionVerifyKey{Value: k.Value} +} + +// Baker's public key used to check that they are indeed the ones who produced the block. +type BakerSignatureVerifyKey struct { + Value []byte +} + +// Parses *pb.BakerSignatureVerifyKey to BakerSignatureVerifyKey +func parseBakerSignatureVerifyKey(k *pb.BakerSignatureVerifyKey) BakerSignatureVerifyKey { + return BakerSignatureVerifyKey{Value: k.Value} +} + +// Baker's public key used to check signatures on finalization records. +// This is only used if the baker has sufficient stake to participate in finalization. +type BakerAggregationVerifyKey struct { + Value []byte +} + +// Parses *pb.BakerAggregationVerifyKey to BakerAggregationVerifyKey +func parseBakerAggregationVerifyKey(k *pb.BakerAggregationVerifyKey) BakerAggregationVerifyKey { + return BakerAggregationVerifyKey{Value: k.Value} +} + +// Distribution of the rewards for the particular pool. +type CommissionRates struct { + + // Fraction of finalization rewards charged by the pool owner. + Finalization AmountFraction + + // Fraction of baking rewards charged by the pool owner. + Baking AmountFraction + + // Fraction of transaction rewards charged by the pool owner. + Transaction AmountFraction +} + +// Parses *pb.CommissionRates to *CommissionRates. +func parseCommissionRates(cr *pb.CommissionRates) (CommissionRates, error) { + finalization, err := parseAmountFraction(cr.Finalization) + if err != nil { + return CommissionRates{}, errors.New("Error parsing CommissionRates: " + err.Error()) + } + + baking, err := parseAmountFraction(cr.Baking) + if err != nil { + return CommissionRates{}, errors.New("Error parsing CommissionRates: " + err.Error()) + } + + transaction, err := parseAmountFraction(cr.Transaction) + if err != nil { + return CommissionRates{}, errors.New("Error parsing CommissionRates: " + err.Error()) + } + return CommissionRates{Finalization: finalization, Baking: baking, Transaction: transaction}, nil +} + +// A fraction of an amount with a precision of 1/100_000 +type AmountFraction struct { + // Must not exceed 100_000 + partsPerHundredThousand uint32 +} + +// GetValue returns the value of the AmountFraction, e.g. 'partsPerHundredThousand/100_000'. +func (a *AmountFraction) GetValue() uint32 { + return a.partsPerHundredThousand / hundredThousand +} + +// AmountFractionFromUInt32 constructs an AmountFraction from a uint32 value. The value must not exceed 100_000. +func AmountFractionFromUInt32(value uint32) (AmountFraction, error) { + if value > hundredThousand { + return AmountFraction{}, errors.New("PartsPerHundredThousand must not exceed 100_000") + } + return AmountFraction{partsPerHundredThousand: value}, nil +} + +// Parses *pb.AmountFraction to AmountFraction. +func parseAmountFraction(a *pb.AmountFraction) (AmountFraction, error) { + res, err := AmountFractionFromUInt32(a.PartsPerHundredThousand) + if err != nil { + return AmountFraction{}, errors.New("Error parsing AmountFraction: " + err.Error()) + } + return res, nil +} From 0e5cbbf0ba521243bd6b2f56c49ff5fa0939152a Mon Sep 17 00:00:00 2001 From: magnusbechwind Date: Mon, 18 Dec 2023 15:48:42 +0100 Subject: [PATCH 11/12] Wrapper for GetWinningBakersEpoch return type. --- v2/getwinningbakersepoch.go | 8 +++---- v2/types.go | 48 ++++++++++++++++++++++++++++++++++++- 2 files changed, 50 insertions(+), 6 deletions(-) diff --git a/v2/getwinningbakersepoch.go b/v2/getwinningbakersepoch.go index c6c5e14..74a66ca 100644 --- a/v2/getwinningbakersepoch.go +++ b/v2/getwinningbakersepoch.go @@ -2,8 +2,6 @@ package v2 import ( "context" - - "github.com/Concordium/concordium-go-sdk/v2/pb" ) // GetWinningBakersEpoch retrieves the list of bakers that won the lottery in a particular historical epoch @@ -21,11 +19,11 @@ import ( // - `UNIMPLEMENTED` if the endpoint is disabled on the node. // // This endpoint is only supported for protocol version 6 and onwards. -func (c *Client) GetWinningBakersEpoch(ctx context.Context, req isEpochRequest) (_ pb.Queries_GetWinningBakersEpochClient, err error) { +func (c *Client) GetWinningBakersEpoch(ctx context.Context, req isEpochRequest) (_ WinningBakerStream, err error) { stream, err := c.GrpcClient.GetWinningBakersEpoch(ctx, convertEpochRequest(req)) if err != nil { - return nil, err + return WinningBakerStream{}, err } - return stream, nil + return WinningBakerStream{stream: stream}, nil } diff --git a/v2/types.go b/v2/types.go index ba958e9..cda8fc6 100644 --- a/v2/types.go +++ b/v2/types.go @@ -1163,7 +1163,11 @@ func parseBakerInfo(b *pb.BakerInfo) BakerInfo { electionKey := parseBakerElectionVerifyKey(b.ElectionKey) signatureKey := parseBakerSignatureVerifyKey(b.SignatureKey) aggregationKey := parseBakerAggregationVerifyKey(b.AggregationKey) - return BakerInfo{BakerId: bakerId, ElectionKey: electionKey, SignatureKey: signatureKey, AggregationKey: aggregationKey} + return BakerInfo{ + BakerId: bakerId, + ElectionKey: electionKey, + SignatureKey: signatureKey, + AggregationKey: aggregationKey} } @@ -1257,3 +1261,45 @@ func parseAmountFraction(a *pb.AmountFraction) (AmountFraction, error) { } return res, nil } + +// Return type of GetWinningBakersEpoch. Parses the returned *pb.WinningBaker to WinningBaker when Recv() is called. +type WinningBakerStream struct { + stream pb.Queries_GetWinningBakersEpochClient +} + +// Recv retrieves the next WinningBaker. +func (s *WinningBakerStream) Recv() (WinningBaker, error) { + info, err := s.stream.Recv() + if err != nil { + return WinningBaker{}, err + } + return parseWinningBaker(info), nil +} + +// Details of which baker won the lottery in a given round in consensus version 1. +type WinningBaker struct { + // The round number. + Round Round + // The baker that won the round. + Winner BakerId + // True if the baker produced a block in this round on the finalized chain, and false otherwise. + Present bool +} + +func parseWinningBaker(w *pb.WinningBaker) WinningBaker { + return WinningBaker{ + Round: parseRound(w.Round), + Winner: parseBakerId(w.Winner), + Present: w.Present, + } +} + +// A round. +type Round struct { + Value uint64 +} + +// Parses *pb.Round to Round. +func parseRound(r *pb.Round) Round { + return Round{Value: r.Value} +} From cc2ecd121f60893e2d01c2c3111d6456fafab06d Mon Sep 17 00:00:00 2001 From: magnusbechwind Date: Mon, 18 Dec 2023 16:44:25 +0100 Subject: [PATCH 12/12] Added tests and examples --- v2/examples/getbakerearliestwintime/main.go | 28 +++++++++++++ v2/examples/getbakersrewardperiod/main.go | 36 +++++++++++++++++ v2/examples/getblockcertificates/main.go | 25 ++++++++++++ v2/examples/getconsensusinfo/main.go | 2 +- v2/examples/getfirstblockepoch/main.go | 27 +++++++++++++ v2/examples/getwinningbakersepoch/main.go | 39 ++++++++++++++++++ v2/tests/api_test.go | 44 +++++++++++++++++++++ 7 files changed, 200 insertions(+), 1 deletion(-) create mode 100644 v2/examples/getbakerearliestwintime/main.go create mode 100644 v2/examples/getbakersrewardperiod/main.go create mode 100644 v2/examples/getblockcertificates/main.go create mode 100644 v2/examples/getfirstblockepoch/main.go create mode 100644 v2/examples/getwinningbakersepoch/main.go diff --git a/v2/examples/getbakerearliestwintime/main.go b/v2/examples/getbakerearliestwintime/main.go new file mode 100644 index 0000000..8c27065 --- /dev/null +++ b/v2/examples/getbakerearliestwintime/main.go @@ -0,0 +1,28 @@ +package main + +import ( + "context" + "fmt" + "log" + + v2 "github.com/Concordium/concordium-go-sdk/v2" + "github.com/Concordium/concordium-go-sdk/v2/pb" +) + +// This example retrieves and prints projected earliest wintime of a baker. +func main() { + client, err := v2.NewClient(v2.Config{NodeAddress: "node.testnet.concordium.com:20000"}) + if err != nil { + log.Fatalf("Failed to instantiate client, err: %v", err) + } + + // sending empty context, can also use any other context instead. + resp, err := client.GetBakerEarliestWinTime(context.TODO(), &pb.BakerId{ + Value: 1, + }) + if err != nil { + log.Fatalf("failed to get wintime, err: %v", err) + } + + fmt.Println("wintime: ", resp) +} diff --git a/v2/examples/getbakersrewardperiod/main.go b/v2/examples/getbakersrewardperiod/main.go new file mode 100644 index 0000000..83f8815 --- /dev/null +++ b/v2/examples/getbakersrewardperiod/main.go @@ -0,0 +1,36 @@ +package main + +import ( + "context" + "fmt" + "io" + "log" + + v2 "github.com/Concordium/concordium-go-sdk/v2" +) + +// This example retrieves and prints the info of the bakers in the reward period of a block. +func main() { + client, err := v2.NewClient(v2.Config{NodeAddress: "node.testnet.concordium.com:20000"}) + if err != nil { + log.Fatalf("Failed to instantiate client, err: %v", err) + } + + // sending empty context, can also use any other context instead. + stream, err := client.GetBakersRewardPeriod(context.TODO(), v2.BlockHashInputBest{}) + if err != nil { + log.Fatalf("failed to get BakerRewardPeriodInfos, err: %v", err) + } + + for err == nil { + bakerRewardPeriodInfo, err := stream.Recv() + if err != nil { + if err == io.EOF { + // All BakerRewardPeriodInfo recieved. + break + } + log.Fatalf("Could not receive BakerRewardPeriodInfo, err: %v", err) + } + fmt.Println("BakerRewardPeriodInfo: ", bakerRewardPeriodInfo) + } +} diff --git a/v2/examples/getblockcertificates/main.go b/v2/examples/getblockcertificates/main.go new file mode 100644 index 0000000..4cfabdd --- /dev/null +++ b/v2/examples/getblockcertificates/main.go @@ -0,0 +1,25 @@ +package main + +import ( + "context" + "fmt" + "log" + + v2 "github.com/Concordium/concordium-go-sdk/v2" +) + +// This example retrieves and prints the blockcertificates of a non-genesis block. +func main() { + client, err := v2.NewClient(v2.Config{NodeAddress: "node.testnet.concordium.com:20000"}) + if err != nil { + log.Fatalf("Failed to instantiate client, err: %v", err) + } + + // sending empty context, can also use any other context instead. + resp, err := client.GetBlockCertificates(context.TODO(), v2.BlockHashInputBest{}) + if err != nil { + log.Fatalf("failed to get certificates, err: %v", err) + } + + fmt.Println("certificates: ", resp) +} diff --git a/v2/examples/getconsensusinfo/main.go b/v2/examples/getconsensusinfo/main.go index 9f5d6d0..45016fa 100644 --- a/v2/examples/getconsensusinfo/main.go +++ b/v2/examples/getconsensusinfo/main.go @@ -5,7 +5,7 @@ import ( "fmt" "log" - "github.com/Concordium/concordium-go-sdk/v2" + v2 "github.com/Concordium/concordium-go-sdk/v2" ) // in this example we receive and print consensus info. diff --git a/v2/examples/getfirstblockepoch/main.go b/v2/examples/getfirstblockepoch/main.go new file mode 100644 index 0000000..de5dadc --- /dev/null +++ b/v2/examples/getfirstblockepoch/main.go @@ -0,0 +1,27 @@ +package main + +import ( + "context" + "fmt" + "log" + + v2 "github.com/Concordium/concordium-go-sdk/v2" +) + +// This example retrieves and prints the block hash of the first finalized block in a specific epoch. +func main() { + client, err := v2.NewClient(v2.Config{NodeAddress: "node.testnet.concordium.com:20000"}) + if err != nil { + log.Fatalf("Failed to instantiate client, err: %v", err) + } + + // sending empty context, can also use any other context instead. + resp, err := client.GetFirstBlockEpoch(context.TODO(), v2.EpochRequestBlockHash{ + BlockHash: v2.BlockHashInputLastFinal{}, + }) + if err != nil { + log.Fatalf("failed to get first block, err: %v", err) + } + + fmt.Println("hash: ", resp) +} diff --git a/v2/examples/getwinningbakersepoch/main.go b/v2/examples/getwinningbakersepoch/main.go new file mode 100644 index 0000000..0bd54f8 --- /dev/null +++ b/v2/examples/getwinningbakersepoch/main.go @@ -0,0 +1,39 @@ +package main + +import ( + "context" + "fmt" + "io" + "log" + + v2 "github.com/Concordium/concordium-go-sdk/v2" +) + +// This example retrieves and prints the bakers that won the lottery in a particular historical epoch. +func main() { + client, err := v2.NewClient(v2.Config{NodeAddress: "node.testnet.concordium.com:20000"}) + if err != nil { + log.Fatalf("Failed to instantiate client, err: %v", err) + } + + // sending empty context, can also use any other context instead. + stream, err := client.GetWinningBakersEpoch(context.TODO(), v2.EpochRequestRelativeEpoch{ + GenesisIndex: v2.GenesisIndex{Value: 3}, + Epoch: v2.Epoch{Value: 5}, + }) + if err != nil { + log.Fatalf("failed to get winning bakers, err: %v", err) + } + + for err == nil { + winningBaker, err := stream.Recv() + if err != nil { + if err == io.EOF { + // All WinningBakers recieved. + break + } + log.Fatalf("Could not receive winning baker, err: %v", err) + } + fmt.Println("Winning baker: ", winningBaker) + } +} diff --git a/v2/tests/api_test.go b/v2/tests/api_test.go index 6fa29c5..e517c85 100644 --- a/v2/tests/api_test.go +++ b/v2/tests/api_test.go @@ -466,4 +466,48 @@ func TestExamples(t *testing.T) { require.NoError(t, err) require.Nil(t, blockItems) }) + + t.Run("GetFirstBlockEpoch", func(t *testing.T) { + blochHash, err := client.GetFirstBlockEpoch(context.Background(), v2.EpochRequestRelativeEpoch{ + GenesisIndex: v2.GenesisIndex{Value: 3}, + Epoch: v2.Epoch{Value: 5}, + }) + require.NoError(t, err) + require.NotNil(t, blochHash) + }) + + t.Run("GetWinningBakersEpoch", func(t *testing.T) { + winningBakerStream, err := client.GetWinningBakersEpoch(context.Background(), v2.EpochRequestRelativeEpoch{ + GenesisIndex: v2.GenesisIndex{Value: 3}, + Epoch: v2.Epoch{Value: 5}, + }) + require.NoError(t, err) + require.NotNil(t, winningBakerStream) + + winningBaker, err := winningBakerStream.Recv() + require.NoError(t, err) + require.NotNil(t, winningBaker) + }) + + t.Run("GetBlockCertificates", func(t *testing.T) { + certificate, err := client.GetBlockCertificates(context.Background(), v2.BlockHashInputBest{}) + require.NoError(t, err) + require.NotNil(t, certificate) + }) + + t.Run("GetBakersRewardPeriod", func(t *testing.T) { + bakerRewardPeriodInfoStream, err := client.GetBakersRewardPeriod(context.Background(), v2.BlockHashInputBest{}) + require.NoError(t, err) + require.NotNil(t, bakerRewardPeriodInfoStream) + + bakerRewardPeriodInfo, err := bakerRewardPeriodInfoStream.Recv() + require.NoError(t, err) + require.NotNil(t, bakerRewardPeriodInfo) + }) + + t.Run("GetBakerEarliestWintime", func(t *testing.T) { + timestamp, err := client.GetBakerEarliestWinTime(context.Background(), &pb.BakerId{Value: 1}) + require.NoError(t, err) + require.NotNil(t, timestamp) + }) }