diff --git a/deploy/local/docker-compose/vector-http-kafka.yaml b/deploy/local/docker-compose/vector-http-kafka.yaml index 54856d8a..5422bc90 100644 --- a/deploy/local/docker-compose/vector-http-kafka.yaml +++ b/deploy/local/docker-compose/vector-http-kafka.yaml @@ -66,6 +66,7 @@ transforms: libp2p_trace_gossipsub_beacon_attestation: .event.name == "LIBP2P_TRACE_GOSSIPSUB_BEACON_ATTESTATION" libp2p_trace_gossipsub_blob_sidecar: .event.name == "LIBP2P_TRACE_GOSSIPSUB_BLOB_SIDECAR" beacon_api_eth_v1_beacon_validators: .event.name == "BEACON_API_ETH_V1_BEACON_VALIDATORS" + libp2p_trace_gossipsub_beacon_data_column_sidecar : .event.name == "LIBP2P_TRACE_GOSSIPSUB_BEACON_DATA_COLUMN_SIDECAR" sinks: metrics: type: prometheus_exporter @@ -872,4 +873,20 @@ sinks: healthcheck: enabled: true encoding: - codec: json \ No newline at end of file + codec: json + libp2p_trace_gossipsub_beacon_data_column_sidecar_kafka: + type: kafka + buffer: + max_events: 500000 + batch: + timeout_secs: 0.5 + inputs: + - xatu_server_events_router.libp2p_trace_gossipsub_beacon_data_column_sidecar + bootstrap_servers: "${KAFKA_BROKERS}" + key_field: "event.id" + topic: libp2p-trace-gossipsub-beacon-data-column-sidecar + compression: snappy + healthcheck: + enabled: true + encoding: + codec: json diff --git a/deploy/local/docker-compose/vector-kafka-clickhouse-libp2p.yaml b/deploy/local/docker-compose/vector-kafka-clickhouse-libp2p.yaml index 62498439..51d45a61 100644 --- a/deploy/local/docker-compose/vector-kafka-clickhouse-libp2p.yaml +++ b/deploy/local/docker-compose/vector-kafka-clickhouse-libp2p.yaml @@ -216,6 +216,7 @@ transforms: libp2p_trace_gossipsub_beacon_block: .event.name == "LIBP2P_TRACE_GOSSIPSUB_BEACON_BLOCK" libp2p_trace_gossipsub_beacon_attestation: .event.name == "LIBP2P_TRACE_GOSSIPSUB_BEACON_ATTESTATION" libp2p_trace_gossipsub_blob_sidecar: .event.name == "LIBP2P_TRACE_GOSSIPSUB_BLOB_SIDECAR" + libp2p_trace_gossipsub_beacon_data_column_sidecar: .event.name == "LIBP2P_TRACE_GOSSIPSUB_BEACON_DATA_COLUMN_SIDECAR" xatu_server_events_router_matched: type: log_to_metric inputs: @@ -231,6 +232,7 @@ transforms: - xatu_server_events_router.libp2p_trace_gossipsub_beacon_block - xatu_server_events_router.libp2p_trace_gossipsub_beacon_attestation - xatu_server_events_router.libp2p_trace_gossipsub_blob_sidecar + - xatu_server_events_router.libp2p_trace_gossipsub_beacon_data_column_sidecar metrics: - type: counter field: event.name @@ -761,6 +763,89 @@ transforms: .topic_name = topicParts[3] .topic_encoding = topicParts[4] + .message_size = .meta.client.additional_data.message_size + .message_id = .meta.client.additional_data.message_id + + .updated_date_time = to_unix_timestamp(now()) + + del(.event) + del(.meta) + del(.data) + del(.path) + libp2p_trace_gossipsub_beacon_data_column_sidecar_formatted: + type: remap + inputs: + - xatu_server_events_router.libp2p_trace_gossipsub_beacon_data_column_sidecar + source: |- + event_date_time, err = parse_timestamp(.event.date_time, format: "%+"); + if err == null { + .event_date_time = to_unix_timestamp(event_date_time, unit: "milliseconds") + } else { + .error = err + .error_description = "failed to parse event date time" + log(., level: "error", rate_limit_secs: 60) + } + + peer_id_key, err = .meta.client.additional_data.metadata.peer_id + .meta.ethereum.network.name + if err != null { + .error = err + .error_description = "failed to generate peer id unique key" + log(., level: "error", rate_limit_secs: 60) + } + .peer_id_unique_key = seahash(peer_id_key) + .unique_key = seahash(.event.id) + + .propagation_slot_start_diff = .meta.client.additional_data.propagation.slot_start_diff + + .state_root = .data.signed_block_header.message.state_root + .column_index = .data.column_index + .kzg_commitments = .data.kzg_commitments + .kzg_proof = .data.kzg_proof + .kzg_commitments_inclusion_proof = .data.kzg_commitments_inclusion_proof + + .slot = .data.data.slot + slot_start_date_time, err = parse_timestamp(.meta.client.additional_data.slot.start_date_time, format: "%+"); + if err == null { + .slot_start_date_time = to_unix_timestamp(slot_start_date_time) + } else { + .error = err + .error_description = "failed to parse slot start date time" + log(., level: "error", rate_limit_secs: 60) + } + .epoch = .meta.client.additional_data.epoch.number + epoch_start_date_time, err = parse_timestamp(.meta.client.additional_data.epoch.start_date_time, format: "%+"); + if err == null { + .epoch_start_date_time = to_unix_timestamp(epoch_start_date_time) + } else { + .error = err + .error_description = "failed to parse epoch start date time" + log(., level: "error", rate_limit_secs: 60) + } + + .wallclock_slot = .meta.client.additional_data.wallclock_slot.number + wallclock_slot_start_date_time, err = parse_timestamp(.meta.client.additional_data.wallclock_slot.start_date_time, format: "%+"); + if err == null { + .wallclock_slot_start_date_time = to_unix_timestamp(wallclock_slot_start_date_time) + } else { + .error = err + .error_description = "failed to parse wallclock slot start date time" + log(., level: "error", rate_limit_secs: 60) + } + .wallclock_epoch = .meta.client.additional_data.epoch.number + wallclock_epoch_start_date_time, err = parse_timestamp(.meta.client.additional_data.wallclock_epoch.start_date_time, format: "%+"); + if err == null { + .wallclock_epoch_start_date_time = to_unix_timestamp(wallclock_epoch_start_date_time) + } else { + .error = err + .error_description = "failed to parse wallclock epoch start date time" + log(., level: "error", rate_limit_secs: 60) + } + + .topic_layer = topicParts[1] + .topic_fork_digest_value = topicParts[2] + .topic_name = topicParts[3] + .topic_encoding = topicParts[4] + .message_size = .meta.client.additional_data.message_size .message_id = .meta.client.additional_data.message_id .updated_date_time = to_unix_timestamp(now()) @@ -1826,3 +1911,23 @@ sinks: healthcheck: enabled: true skip_unknown_fields: false + libp2p_trace_gossipsub_beacon_data_column_sidecar_clickhouse: + type: clickhouse + inputs: + - libp2p_trace_gossipsub_beacon_data_column_sidecar_formatted + database: default + endpoint: "${CLICKHOUSE_ENDPOINT}" + table: libp2p_gossipsub_beacon_data_column_sidecar + auth: + strategy: basic + user: "${CLICKHOUSE_USER}" + password: "${CLICKHOUSE_PASSWORD}" + batch: + max_bytes: 52428800 + max_events: 200000 + timeout_secs: 1 + buffer: + max_events: 200000 + healthcheck: + enabled: true + skip_unknown_fields: false diff --git a/deploy/migrations/clickhouse/046_libp2p_gossipsub_beacon_data_column_sidecar.down.sql b/deploy/migrations/clickhouse/046_libp2p_gossipsub_beacon_data_column_sidecar.down.sql new file mode 100644 index 00000000..5af5d98b --- /dev/null +++ b/deploy/migrations/clickhouse/046_libp2p_gossipsub_beacon_data_column_sidecar.down.sql @@ -0,0 +1,2 @@ +DROP TABLE IF EXISTS libp2p_gossipsub_beacon_data_column_sidecar ON CLUSTER '{cluster}'; +DROP TABLE IF EXISTS libp2p_gossipsub_beacon_data_column_sidecar_local ON CLUSTER '{cluster}'; diff --git a/deploy/migrations/clickhouse/046_libp2p_gossipsub_beacon_data_column_sidecar.up.sql b/deploy/migrations/clickhouse/046_libp2p_gossipsub_beacon_data_column_sidecar.up.sql new file mode 100644 index 00000000..cdb27c7e --- /dev/null +++ b/deploy/migrations/clickhouse/046_libp2p_gossipsub_beacon_data_column_sidecar.up.sql @@ -0,0 +1,90 @@ +CREATE TABLE libp2p_gossipsub_beacon_data_column_sidecar_local on cluster '{cluster}' ( + unique_key Int64, + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) Codec(DoubleDelta, ZSTD(1)), + slot UInt32 Codec(DoubleDelta, ZSTD(1)), + slot_start_date_time DateTime Codec(DoubleDelta, ZSTD(1)), + epoch UInt32 Codec(DoubleDelta, ZSTD(1)), + epoch_start_date_time DateTime Codec(DoubleDelta, ZSTD(1)), + column_index UInt64 Codec(ZSTD(1)), + kzg_commitments Array(String) Codec(ZSTD(1)), + kzg_proof String Codec(ZSTD(1)), + kzg_commitments_inclusion_proof String Codec(ZSTD(1)), + state_root FixedString(66) Codec(ZSTD(1)), + wallclock_slot UInt32 Codec(DoubleDelta, ZSTD(1)), + wallclock_slot_start_date_time DateTime Codec(DoubleDelta, ZSTD(1)), + wallclock_epoch UInt32 Codec(DoubleDelta, ZSTD(1)), + wallclock_epoch_start_date_time DateTime Codec(DoubleDelta, ZSTD(1)), + propagation_slot_start_diff UInt32 Codec(ZSTD(1)), + peer_id_unique_key Int64, + message_id String CODEC(ZSTD(1)), + message_size UInt32 Codec(ZSTD(1)), + topic_layer LowCardinality(String), + topic_fork_digest_value LowCardinality(String), + topic_name LowCardinality(String), + topic_encoding LowCardinality(String), + meta_client_name LowCardinality(String), + meta_client_id String Codec(ZSTD(1)), + meta_client_version LowCardinality(String), + meta_client_implementation LowCardinality(String), + meta_client_os LowCardinality(String), + meta_client_ip Nullable(IPv6) Codec(ZSTD(1)), + meta_client_geo_city LowCardinality(String) Codec(ZSTD(1)), + meta_client_geo_country LowCardinality(String) Codec(ZSTD(1)), + meta_client_geo_country_code LowCardinality(String) Codec(ZSTD(1)), + meta_client_geo_continent_code LowCardinality(String) Codec(ZSTD(1)), + meta_client_geo_longitude Nullable(Float64) Codec(ZSTD(1)), + meta_client_geo_latitude Nullable(Float64) Codec(ZSTD(1)), + meta_client_geo_autonomous_system_number Nullable(UInt32) Codec(ZSTD(1)), + meta_client_geo_autonomous_system_organization Nullable(String) Codec(ZSTD(1)), + meta_network_id Int32 Codec(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) +) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', updated_date_time) +PARTITION BY toStartOfMonth(slot_start_date_time) +ORDER BY (slot_start_date_time, unique_key, meta_network_name, meta_client_name); + +ALTER TABLE libp2p_gossipsub_beacon_data_column_sidecar_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Table for libp2p gossipsub beacon data column sidecar data.', +COMMENT COLUMN unique_key 'Unique identifier for each record', +COMMENT COLUMN updated_date_time 'Timestamp when the record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the event with millisecond precision', +COMMENT COLUMN slot 'Slot number associated with the event', +COMMENT COLUMN slot_start_date_time 'Start date and time of the slot', +COMMENT COLUMN epoch 'The epoch number in the data column sidecar', +COMMENT COLUMN epoch_start_date_time 'The wall clock time when the epoch started', +COMMENT COLUMN column_index 'Index of the column in the data', +COMMENT COLUMN kzg_commitments 'Commitments for the column', +COMMENT COLUMN kzg_proof 'Proof for the column', +COMMENT COLUMN kzg_commitments_inclusion_proof 'Inclusion proof for the column', +COMMENT COLUMN state_root 'State root for signed block header', +COMMENT COLUMN wallclock_slot 'Slot number of the wall clock when the event was received', +COMMENT COLUMN wallclock_slot_start_date_time 'Start date and time of the wall clock slot when the event was received', +COMMENT COLUMN wallclock_epoch 'Epoch number of the wall clock when the event was received', +COMMENT COLUMN wallclock_epoch_start_date_time 'Start date and time of the wall clock epoch when the event was received', +COMMENT COLUMN propagation_slot_start_diff 'Difference in slot start time for propagation', +COMMENT COLUMN peer_id_unique_key 'Unique key associated with the identifier of the peer', +COMMENT COLUMN message_id 'Identifier of the message', +COMMENT COLUMN message_size 'Size of the message in bytes', +COMMENT COLUMN topic_layer 'Layer of the topic in the gossipsub protocol', +COMMENT COLUMN topic_fork_digest_value 'Fork digest value of the topic', +COMMENT COLUMN topic_name 'Name of the topic', +COMMENT COLUMN topic_encoding 'Encoding used for the topic', +COMMENT COLUMN meta_client_name 'Name of the client that generated the event', +COMMENT COLUMN meta_client_id 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', +COMMENT COLUMN meta_client_version 'Version of the client that generated the event', +COMMENT COLUMN meta_client_implementation 'Implementation of the client that generated the event', +COMMENT COLUMN meta_client_os 'Operating system of the client that generated the event', +COMMENT COLUMN meta_client_ip 'IP address of the client that generated the event', +COMMENT COLUMN meta_client_geo_city 'City of the client that generated the event', +COMMENT COLUMN meta_client_geo_country 'Country of the client that generated the event', +COMMENT COLUMN meta_client_geo_country_code 'Country code of the client that generated the event', +COMMENT COLUMN meta_client_geo_continent_code 'Continent code of the client that generated the event', +COMMENT COLUMN meta_client_geo_longitude 'Longitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_latitude 'Latitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_number 'Autonomous system number of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_organization 'Autonomous system organization of the client that generated the event', +COMMENT COLUMN meta_network_id 'Network ID associated with the client', +COMMENT COLUMN meta_network_name 'Name of the network associated with the client'; + +CREATE TABLE libp2p_gossipsub_beacon_data_column_sidecar on cluster '{cluster}' AS libp2p_gossipsub_beacon_data_column_sidecar_local +ENGINE = Distributed('{cluster}', default, libp2p_gossipsub_beacon_data_column_sidecar_local, unique_key); diff --git a/go.mod b/go.mod index 5d07b188..d0136040 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,7 @@ module github.com/ethpandaops/xatu go 1.22.0 -replace github.com/probe-lab/hermes => github.com/ethpandaops/hermes v0.0.0-20240527060557-ae23464cdc41 +replace github.com/probe-lab/hermes => github.com/ethpandaops/hermes v0.0.0-20240725023104-113a74f8b721 require ( github.com/IBM/sarama v1.43.0 @@ -33,7 +33,7 @@ require ( github.com/probe-lab/hermes v0.0.0-20240327153144-a2528356b4f7 github.com/prometheus/client_golang v1.19.0 github.com/prometheus/client_model v0.6.0 - github.com/prysmaticlabs/prysm/v5 v5.0.2 + github.com/prysmaticlabs/prysm/v5 v5.0.4-0.20240510074809-a76de4f79a99 github.com/r3labs/sse/v2 v2.10.0 github.com/redis/go-redis/v9 v9.5.1 github.com/sirupsen/logrus v1.9.3 @@ -48,6 +48,7 @@ require ( google.golang.org/grpc v1.62.1 google.golang.org/protobuf v1.33.0 gopkg.in/cenkalti/backoff.v1 v1.1.0 + gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -95,7 +96,7 @@ require ( github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 // indirect github.com/eapache/queue v1.1.0 // indirect github.com/elastic/gosigar v0.14.2 // indirect - github.com/ethereum/c-kzg-4844 v0.4.0 // indirect + github.com/ethereum/c-kzg-4844 v1.0.2-0.20240507203752-26d3b4156f7a // indirect github.com/fatih/color v1.16.0 // indirect github.com/ferranbt/fastssz v0.1.3 // indirect github.com/flynn/noise v1.1.0 // indirect @@ -255,7 +256,6 @@ require ( google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9 // indirect gopkg.in/inf.v0 v0.9.1 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect k8s.io/apimachinery v0.20.0 // indirect k8s.io/client-go v0.20.0 // indirect k8s.io/klog/v2 v2.80.0 // indirect diff --git a/go.sum b/go.sum index a3faee0d..967d4071 100644 --- a/go.sum +++ b/go.sum @@ -256,8 +256,8 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/ethereum/c-kzg-4844 v0.4.0 h1:3MS1s4JtA868KpJxroZoepdV0ZKBp3u/O5HcZ7R3nlY= -github.com/ethereum/c-kzg-4844 v0.4.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= +github.com/ethereum/c-kzg-4844 v1.0.2-0.20240507203752-26d3b4156f7a h1:EV64oiDZGl97cptCieq1X7KrumSbP4MhmKg0/ll65wo= +github.com/ethereum/c-kzg-4844 v1.0.2-0.20240507203752-26d3b4156f7a/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= github.com/ethereum/go-ethereum v1.13.15 h1:U7sSGYGo4SPjP6iNIifNoyIAiNjrmQkz6EwQG+/EZWo= github.com/ethereum/go-ethereum v1.13.15/go.mod h1:TN8ZiHrdJwSe8Cb6x+p0hs5CxhJZPbqB7hHkaUXcmIU= github.com/ethpandaops/beacon v0.38.0 h1:sMFlq49t/PIrp7DlSWgM+OgPAyblvMeV+jr2AOW6ls0= @@ -266,8 +266,8 @@ github.com/ethpandaops/ethcore v0.0.0-20240422023000-2a5727b18756 h1:8JWjrRfP14m github.com/ethpandaops/ethcore v0.0.0-20240422023000-2a5727b18756/go.mod h1:ZvKqL6CKxiraefdXPHeJurV2pDD/f2HF2uklDVdrry8= github.com/ethpandaops/ethwallclock v0.3.0 h1:xF5fwtBf+bHFHZKBnwiPFEuelW3sMM7SD3ZNFq1lJY4= github.com/ethpandaops/ethwallclock v0.3.0/go.mod h1:y0Cu+mhGLlem19vnAV2x0hpFS5KZ7oOi2SWYayv9l24= -github.com/ethpandaops/hermes v0.0.0-20240527060557-ae23464cdc41 h1:KM07rlGX9EQm6ZawvL0BDMJ5Rf3brZIJKsmiFS92wI0= -github.com/ethpandaops/hermes v0.0.0-20240527060557-ae23464cdc41/go.mod h1:uMPOUopuxLk1Qktn66udTjRBLqJJ+CNfiCyxNQda4Ow= +github.com/ethpandaops/hermes v0.0.0-20240725023104-113a74f8b721 h1:8fwmolf051iMka7QkuiZ7a97wTwTEshNA0RoaLKOy7o= +github.com/ethpandaops/hermes v0.0.0-20240725023104-113a74f8b721/go.mod h1:IZgi+dl4W0aDbxy0IB/hTfJtiDDEe/AkkDzvt/rgvZ8= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= @@ -878,8 +878,8 @@ github.com/prysmaticlabs/prombbolt v0.0.0-20210126082820-9b7adba6db7c h1:9PHRCuO github.com/prysmaticlabs/prombbolt v0.0.0-20210126082820-9b7adba6db7c/go.mod h1:ZRws458tYHS/Zs936OQ6oCrL+Ict5O4Xpwve1UQ6C9M= github.com/prysmaticlabs/protoc-gen-go-cast v0.0.0-20230228205207-28762a7b9294 h1:q9wE0ZZRdTUAAeyFP/w0SwBEnCqlVy2+on6X2/e+eAU= github.com/prysmaticlabs/protoc-gen-go-cast v0.0.0-20230228205207-28762a7b9294/go.mod h1:ZVEbRdnMkGhp/pu35zq4SXxtvUwWK0J1MATtekZpH2Y= -github.com/prysmaticlabs/prysm/v5 v5.0.2 h1:xcSUvrCVfOGslKYUb5Hpyz98N9I8fC2p7DMAZfiqEIA= -github.com/prysmaticlabs/prysm/v5 v5.0.2/go.mod h1:XG4nOU925zemOimoexcrFP4oA57f+RTQbp7V/TH9UOM= +github.com/prysmaticlabs/prysm/v5 v5.0.4-0.20240510074809-a76de4f79a99 h1:RGPhzM/qJR8QqXK8ep2qs3ZABM4tPl0bnGFhDADr+NM= +github.com/prysmaticlabs/prysm/v5 v5.0.4-0.20240510074809-a76de4f79a99/go.mod h1:I3fzhjqrdv/17V3ckLKHLIU2K00kuFzFLw3P24EuKlo= github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo= github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A= github.com/quic-go/quic-go v0.42.0 h1:uSfdap0eveIl8KXnipv9K7nlwZ5IqLlYOpJ58u5utpM= diff --git a/pkg/clmimicry/config.go b/pkg/clmimicry/config.go index b588959f..7757ea6a 100644 --- a/pkg/clmimicry/config.go +++ b/pkg/clmimicry/config.go @@ -132,18 +132,19 @@ func (h *NodeConfig) AsHermesConfig() *hermes.NodeConfig { } type EventConfig struct { - RecvRPCEnabled bool `yaml:"recvRpcEnabled" default:"false"` - SendRPCEnabled bool `yaml:"sendRpcEnabled" default:"false"` - AddPeerEnabled bool `yaml:"addPeerEnabled" default:"true"` - RemovePeerEnabled bool `yaml:"removePeerEnabled" default:"true"` - ConnectedEnabled bool `yaml:"connectedEnabled" default:"true"` - DisconnectedEnabled bool `yaml:"disconnectedEnabled" default:"true"` - JoinEnabled bool `yaml:"joinEnabled" default:"true"` - HandleMetadataEnabled bool `yaml:"handleMetadataEnabled" default:"true"` - HandleStatusEnabled bool `yaml:"handleStatusEnabled" default:"true"` - GossipSubBeaconBlockEnabled bool `yaml:"gossipSubBeaconBlockEnabled" default:"true"` - GossipSubAttestationEnabled bool `yaml:"gossipSubAttestationEnabled" default:"true"` - GossipSubBlobSidecarEnabled bool `yaml:"gossipSubBlobSidecarEnabled" default:"true"` + RecvRPCEnabled bool `yaml:"recvRpcEnabled" default:"false"` + SendRPCEnabled bool `yaml:"sendRpcEnabled" default:"false"` + AddPeerEnabled bool `yaml:"addPeerEnabled" default:"true"` + RemovePeerEnabled bool `yaml:"removePeerEnabled" default:"true"` + ConnectedEnabled bool `yaml:"connectedEnabled" default:"true"` + DisconnectedEnabled bool `yaml:"disconnectedEnabled" default:"true"` + JoinEnabled bool `yaml:"joinEnabled" default:"true"` + HandleMetadataEnabled bool `yaml:"handleMetadataEnabled" default:"true"` + HandleStatusEnabled bool `yaml:"handleStatusEnabled" default:"true"` + GossipSubBeaconBlockEnabled bool `yaml:"gossipSubBeaconBlockEnabled" default:"true"` + GossipSubAttestationEnabled bool `yaml:"gossipSubAttestationEnabled" default:"true"` + GossipSubBlobSidecarEnabled bool `yaml:"gossipSubBlobSidecarEnabled" default:"true"` + GossipSubDataColumnSidecarEnabled bool `yaml:"gossipSubDataColumnSidecarEnabled" default:"true"` } func (e *EventConfig) Validate() error { diff --git a/pkg/clmimicry/ethereum/config.go b/pkg/clmimicry/ethereum/config.go index 2cf44875..6590c075 100644 --- a/pkg/clmimicry/ethereum/config.go +++ b/pkg/clmimicry/ethereum/config.go @@ -3,7 +3,8 @@ package ethereum import "errors" type Config struct { - Network string `yaml:"network"` + Network string `yaml:"network"` + CustomNetwork *CustomNetwork `yaml:"customNetwork" default:""` } func (c *Config) Validate() error { @@ -13,3 +14,30 @@ func (c *Config) Validate() error { return nil } + +type CustomNetwork struct { + ConfigURL string `yaml:"configUrl"` + BootnodeENRURL string `yaml:"bootnodeEnrUrl"` + DepositContractBlockURL string `yaml:"depositContractBlockUrl"` + GenesisSSZURL string `yaml:"genesisSSZUrl"` +} + +func (c *CustomNetwork) Validate() error { + if c.ConfigURL == "" { + return errors.New("configUrl is required") + } + + if c.BootnodeENRURL == "" { + return errors.New("bootnodeUrl is required") + } + + if c.DepositContractBlockURL == "" { + return errors.New("depositContractBlockUrl is required") + } + + if c.GenesisSSZURL == "" { + return errors.New("genesisSSZUrl is required") + } + + return nil +} diff --git a/pkg/clmimicry/event.go b/pkg/clmimicry/event.go index fd43f77b..ae45774e 100644 --- a/pkg/clmimicry/event.go +++ b/pkg/clmimicry/event.go @@ -456,6 +456,20 @@ func (m *Mimicry) handleHandleMessageEvent(ctx context.Context, if err := m.handleGossipAttestation(ctx, clientMeta, event, payload); err != nil { return errors.Wrap(err, "failed to handle gossipsub beacon attestation") } + + return nil + + case strings.Contains(topic, "data_column_sidecar"): + if !m.Config.Events.GossipSubDataColumnSidecarEnabled { + return nil + } + + if err := m.handleGossipDataColumnSidecar(ctx, clientMeta, event, payload); err != nil { + return errors.Wrap(err, "failed to handle gossipsub data column sidecar") + } + + return nil + case strings.Contains(topic, p2p.GossipBlockMessage): if !m.Config.Events.GossipSubBeaconBlockEnabled { return nil diff --git a/pkg/clmimicry/fetch.go b/pkg/clmimicry/fetch.go new file mode 100644 index 00000000..ecd1f35d --- /dev/null +++ b/pkg/clmimicry/fetch.go @@ -0,0 +1,92 @@ +package clmimicry + +import ( + "context" + "io" + "net/http" + + "github.com/prysmaticlabs/prysm/v5/config/params" + "gopkg.in/yaml.v2" +) + +func (m *Mimicry) FetchConfigFromURL(ctx context.Context, url string) (*params.BeaconChainConfig, error) { + req, err := http.NewRequestWithContext(ctx, "GET", url, nil) + if err != nil { + return nil, err + } + + response, err := http.DefaultClient.Do(req) + if err != nil { + return nil, err + } + defer response.Body.Close() + + data, err := io.ReadAll(response.Body) + if err != nil { + return nil, err + } + + config := params.MainnetConfig().Copy() + + out, err := params.UnmarshalConfig(data, config) + if err != nil { + return nil, err + } + + return out, nil +} + +func FetchBootnodeENRsFromURL(ctx context.Context, url string) ([]string, error) { + req, err := http.NewRequestWithContext(ctx, "GET", url, nil) + if err != nil { + return nil, err + } + + response, err := http.DefaultClient.Do(req) + if err != nil { + return nil, err + } + defer response.Body.Close() + + data, err := io.ReadAll(response.Body) + if err != nil { + return nil, err + } + + // Unmarshal the yaml data into the enrs struct + var enrs []string + err = yaml.Unmarshal(data, &enrs) + if err != nil { + return nil, err + } + + return enrs, nil +} + +func FetchDepositContractBlockFromURL(ctx context.Context, url string) (uint64, error) { + req, err := http.NewRequestWithContext(ctx, "GET", url, nil) + if err != nil { + return 0, err + } + + response, err := http.DefaultClient.Do(req) + if err != nil { + return 0, err + } + defer response.Body.Close() + + data, err := io.ReadAll(response.Body) + if err != nil { + return 0, err + } + + // Unmarshal the yaml data into the block struct + var block uint64 + + err = yaml.Unmarshal(data, &block) + if err != nil { + return 0, err + } + + return block, nil +} diff --git a/pkg/clmimicry/gossipsub_data_column_sidecar.go b/pkg/clmimicry/gossipsub_data_column_sidecar.go new file mode 100644 index 00000000..3e8dc439 --- /dev/null +++ b/pkg/clmimicry/gossipsub_data_column_sidecar.go @@ -0,0 +1,172 @@ +package clmimicry + +import ( + "context" + "fmt" + "time" + + xatuethv1 "github.com/ethpandaops/xatu/pkg/proto/eth/v1" + "github.com/ethpandaops/xatu/pkg/proto/libp2p" + "github.com/ethpandaops/xatu/pkg/proto/libp2p/gossipsub" + "github.com/ethpandaops/xatu/pkg/proto/xatu" + "github.com/google/uuid" + "github.com/probe-lab/hermes/host" + ethtypes "github.com/prysmaticlabs/prysm/v5/proto/prysm/v1alpha1" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/known/timestamppb" + "google.golang.org/protobuf/types/known/wrapperspb" +) + +func (m *Mimicry) handleGossipDataColumnSidecar(ctx context.Context, + clientMeta *xatu.ClientMeta, + event *host.TraceEvent, payload map[string]any) error { + // Extract sidecar data + eSidecar, ok := payload["Sidecar"].(*ethtypes.DataColumnSidecar) + if !ok { + return fmt.Errorf("invalid sidecar") + } + + dataColumn := "" + for _, bytes := range eSidecar.DataColumn { + dataColumn += string(bytes) + } + + kzgCommitments := make([]string, len(eSidecar.KzgCommitments)) + for i, bytes := range eSidecar.KzgCommitments { + kzgCommitments[i] = fmt.Sprintf("0x%x", bytes) + } + + kzgProof := "" + for _, bytes := range eSidecar.KzgProof { + kzgProof += string(bytes) + } + + kzgCommitmentsInclusionProof := "" + for _, bytes := range eSidecar.KzgCommitmentsInclusionProof { + kzgCommitmentsInclusionProof += string(bytes) + } + + signedBlockHeader := &xatuethv1.SignedBeaconBlockHeaderV2{ + Message: &xatuethv1.BeaconBlockHeaderV2{ + Slot: wrapperspb.UInt64(uint64(eSidecar.SignedBlockHeader.GetHeader().GetSlot())), + ProposerIndex: wrapperspb.UInt64(uint64(eSidecar.SignedBlockHeader.GetHeader().GetProposerIndex())), + ParentRoot: fmt.Sprintf("%x", eSidecar.SignedBlockHeader.GetHeader().GetParentRoot()), + StateRoot: fmt.Sprintf("%x", eSidecar.SignedBlockHeader.GetHeader().GetStateRoot()), + BodyRoot: fmt.Sprintf("%x", eSidecar.SignedBlockHeader.GetHeader().GetBodyRoot()), + }, + Signature: fmt.Sprintf("%x", eSidecar.SignedBlockHeader.Signature), + } + + sidecar := &gossipsub.DataColumnSidecar{ + ColumnIndex: wrapperspb.UInt64(eSidecar.ColumnIndex), + DataColumn: dataColumn, + KzgCommitments: kzgCommitments, + KzgProof: kzgProof, + SignedBlockHeader: signedBlockHeader, + KzgCommitmentsInclusionProof: kzgCommitmentsInclusionProof, + } + + metadata, ok := proto.Clone(clientMeta).(*xatu.ClientMeta) + if !ok { + return fmt.Errorf("failed to clone client metadata") + } + + additionalData, err := m.createAdditionalGossipSubDataColumnSidecarData(ctx, payload, eSidecar) + if err != nil { + return fmt.Errorf("failed to create additional data: %w", err) + } + + metadata.AdditionalData = &xatu.ClientMeta_Libp2PTraceGossipsubBeaconDataColumnSidecar{ + Libp2PTraceGossipsubBeaconDataColumnSidecar: additionalData, + } + + timestamp, ok := payload["Timestamp"].(time.Time) + if !ok { + return fmt.Errorf("invalid timestamp") + } + + decoratedEvent := &xatu.DecoratedEvent{ + Event: &xatu.Event{ + Name: xatu.Event_LIBP2P_TRACE_GOSSIPSUB_BEACON_ATTESTATION, + DateTime: timestamppb.New(timestamp.Add(m.clockDrift)), + Id: uuid.New().String(), + }, + Meta: &xatu.Meta{ + Client: metadata, + }, + Data: &xatu.DecoratedEvent_Libp2PTraceGossipsubBeaconDataColumnSidecar{ + Libp2PTraceGossipsubBeaconDataColumnSidecar: sidecar, + }, + } + + return m.handleNewDecoratedEvent(ctx, decoratedEvent) +} + +func (m *Mimicry) createAdditionalGossipSubDataColumnSidecarData(ctx context.Context, + payload map[string]any, + sidecar *ethtypes.DataColumnSidecar, +) (*xatu.ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData, error) { + wallclockSlot, wallclockEpoch, err := m.ethereum.Metadata().Wallclock().Now() + if err != nil { + return nil, fmt.Errorf("failed to get wallclock time: %w", err) + } + + timestamp, ok := payload["Timestamp"].(time.Time) + if !ok { + return nil, fmt.Errorf("invalid timestamp") + } + + // Add Clock Drift + timestampAdjusted := timestamp.Add(m.clockDrift) + + sidecarSlot := m.ethereum.Metadata().Wallclock().Slots().FromNumber(uint64(sidecar.SignedBlockHeader.GetHeader().GetSlot())) + epoch := m.ethereum.Metadata().Wallclock().Epochs().FromSlot(uint64(sidecar.SignedBlockHeader.GetHeader().GetSlot())) + + extra := &xatu.ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData{ + WallclockSlot: &xatu.SlotV2{ + Number: &wrapperspb.UInt64Value{Value: wallclockSlot.Number()}, + StartDateTime: timestamppb.New(wallclockSlot.TimeWindow().Start()), + }, + WallclockEpoch: &xatu.EpochV2{ + Number: &wrapperspb.UInt64Value{Value: wallclockEpoch.Number()}, + StartDateTime: timestamppb.New(wallclockEpoch.TimeWindow().Start()), + }, + Slot: &xatu.SlotV2{ + Number: &wrapperspb.UInt64Value{Value: sidecarSlot.Number()}, + StartDateTime: timestamppb.New(sidecarSlot.TimeWindow().Start()), + }, + Epoch: &xatu.EpochV2{ + Number: &wrapperspb.UInt64Value{Value: epoch.Number()}, + StartDateTime: timestamppb.New(epoch.TimeWindow().Start()), + }, + Propagation: &xatu.PropagationV2{ + SlotStartDiff: &wrapperspb.UInt64Value{ + Value: uint64(timestampAdjusted.Sub(sidecarSlot.TimeWindow().Start()).Milliseconds()), + }, + }, + } + + peerID, ok := payload["PeerID"].(string) + if ok { + extra.Metadata = &libp2p.TraceEventMetadata{ + PeerId: wrapperspb.String(peerID), + } + } + + topic, ok := payload["Topic"].(string) + if ok { + extra.Topic = wrapperspb.String(topic) + } + + msgID, ok := payload["MsgID"].(string) + if ok { + extra.MessageId = wrapperspb.String(msgID) + } + + msgSize, ok := payload["MsgSize"].(int) + if ok { + extra.MessageSize = wrapperspb.UInt32(uint32(msgSize)) + } + + return extra, nil +} diff --git a/pkg/clmimicry/mimicry.go b/pkg/clmimicry/mimicry.go index 47373f48..303e429a 100644 --- a/pkg/clmimicry/mimicry.go +++ b/pkg/clmimicry/mimicry.go @@ -99,23 +99,43 @@ func New(ctx context.Context, log logrus.FieldLogger, config *Config) (*Mimicry, return mimicry, nil } +func (m *Mimicry) deriveNetworkConfig(ctx context.Context) (*eth.NetworkConfig, error) { + if m.Config.Ethereum.CustomNetwork == nil { + return eth.DeriveKnownNetworkConfig(ctx, m.Config.Ethereum.Network) + } + + m.log.WithField("network", m.Config.Ethereum.Network).Info("Using a custom Ethereum network") + + conf, err := eth.DeriveDevnetConfig(ctx, eth.DevnetOptions{ + ConfigURL: m.Config.Ethereum.CustomNetwork.ConfigURL, + BootnodesURL: m.Config.Ethereum.CustomNetwork.BootnodeENRURL, + DepositContractBlockURL: m.Config.Ethereum.CustomNetwork.DepositContractBlockURL, + GenesisSSZURL: m.Config.Ethereum.CustomNetwork.GenesisSSZURL, + }) + if err != nil { + return nil, fmt.Errorf("failed to derive devnet config: %w", err) + } + + return conf, nil +} + func (m *Mimicry) startHermes(ctx context.Context) error { - genConfig, netConfig, beaConfig, err := eth.GetConfigsByNetworkName(m.Config.Ethereum.Network) + networkConfig, err := m.deriveNetworkConfig(ctx) if err != nil { - return fmt.Errorf("get config for %s: %w", m.Config.Ethereum.Network, err) + return fmt.Errorf("failed to derive network config for %s: %w", m.Config.Ethereum.Network, err) } - m.networkConfig = netConfig - m.beaconConfig = beaConfig + m.networkConfig = networkConfig.Network + m.beaconConfig = networkConfig.Beacon - genesisRoot := genConfig.GenesisValidatorRoot - genesisTime := genConfig.GenesisTime + genesisRoot := networkConfig.Genesis.GenesisValidatorRoot + genesisTime := networkConfig.Genesis.GenesisTime // compute fork version and fork digest currentSlot := slots.Since(genesisTime) currentEpoch := slots.ToEpoch(currentSlot) - currentForkVersion, err := eth.GetCurrentForkVersion(currentEpoch, beaConfig) + currentForkVersion, err := eth.GetCurrentForkVersion(currentEpoch, m.beaconConfig) if err != nil { return fmt.Errorf("compute fork version for epoch %d: %w", currentEpoch, err) } @@ -127,14 +147,14 @@ func (m *Mimicry) startHermes(ctx context.Context) error { // Overriding configuration so that functions like ComputForkDigest take the // correct input data from the global configuration. - params.OverrideBeaconConfig(beaConfig) - params.OverrideBeaconNetworkConfig(netConfig) + params.OverrideBeaconConfig(m.beaconConfig) + params.OverrideBeaconNetworkConfig(m.networkConfig) nodeConfig := m.Config.Node.AsHermesConfig() - nodeConfig.GenesisConfig = genConfig - nodeConfig.NetworkConfig = netConfig - nodeConfig.BeaconConfig = beaConfig + nodeConfig.GenesisConfig = networkConfig.Genesis + nodeConfig.NetworkConfig = m.networkConfig + nodeConfig.BeaconConfig = m.beaconConfig nodeConfig.ForkDigest = forkDigest nodeConfig.ForkVersion = currentForkVersion nodeConfig.PubSubSubscriptionRequestLimit = 200 @@ -210,7 +230,7 @@ func (m *Mimicry) Start(ctx context.Context) error { m.log.Info("Ethereum client is ready. Starting Hermes..") if err := m.startHermes(ctx); err != nil { - m.log.Fatal("failed to start hermes: %w", err) + m.log.Fatalf("failed to start hermes: %s", err.Error()) } return nil diff --git a/pkg/proto/libp2p/gossipsub/eth.pb.go b/pkg/proto/libp2p/gossipsub/eth.pb.go index 4ebdbede..d803b1ef 100644 --- a/pkg/proto/libp2p/gossipsub/eth.pb.go +++ b/pkg/proto/libp2p/gossipsub/eth.pb.go @@ -7,6 +7,7 @@ package gossipsub import ( + v1 "github.com/ethpandaops/xatu/pkg/proto/eth/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" @@ -163,6 +164,93 @@ func (x *BlobSidecar) GetParentRoot() *wrapperspb.StringValue { return nil } +type DataColumnSidecar struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ColumnIndex *wrapperspb.UInt64Value `protobuf:"bytes,1,opt,name=column_index,proto3" json:"column_index,omitempty"` + DataColumn string `protobuf:"bytes,2,opt,name=data_column,proto3" json:"data_column,omitempty"` + KzgCommitments []string `protobuf:"bytes,3,rep,name=kzg_commitments,proto3" json:"kzg_commitments,omitempty"` + KzgProof string `protobuf:"bytes,4,opt,name=kzg_proof,proto3" json:"kzg_proof,omitempty"` + SignedBlockHeader *v1.SignedBeaconBlockHeaderV2 `protobuf:"bytes,5,opt,name=signed_block_header,proto3" json:"signed_block_header,omitempty"` + KzgCommitmentsInclusionProof string `protobuf:"bytes,6,opt,name=kzg_commitments_inclusion_proof,proto3" json:"kzg_commitments_inclusion_proof,omitempty"` +} + +func (x *DataColumnSidecar) Reset() { + *x = DataColumnSidecar{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_libp2p_gossipsub_eth_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataColumnSidecar) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataColumnSidecar) ProtoMessage() {} + +func (x *DataColumnSidecar) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_libp2p_gossipsub_eth_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DataColumnSidecar.ProtoReflect.Descriptor instead. +func (*DataColumnSidecar) Descriptor() ([]byte, []int) { + return file_pkg_proto_libp2p_gossipsub_eth_proto_rawDescGZIP(), []int{2} +} + +func (x *DataColumnSidecar) GetColumnIndex() *wrapperspb.UInt64Value { + if x != nil { + return x.ColumnIndex + } + return nil +} + +func (x *DataColumnSidecar) GetDataColumn() string { + if x != nil { + return x.DataColumn + } + return "" +} + +func (x *DataColumnSidecar) GetKzgCommitments() []string { + if x != nil { + return x.KzgCommitments + } + return nil +} + +func (x *DataColumnSidecar) GetKzgProof() string { + if x != nil { + return x.KzgProof + } + return "" +} + +func (x *DataColumnSidecar) GetSignedBlockHeader() *v1.SignedBeaconBlockHeaderV2 { + if x != nil { + return x.SignedBlockHeader + } + return nil +} + +func (x *DataColumnSidecar) GetKzgCommitmentsInclusionProof() string { + if x != nil { + return x.KzgCommitmentsInclusionProof + } + return "" +} + var File_pkg_proto_libp2p_gossipsub_eth_proto protoreflect.FileDescriptor var file_pkg_proto_libp2p_gossipsub_eth_proto_rawDesc = []byte{ @@ -172,42 +260,67 @@ var file_pkg_proto_libp2p_gossipsub_eth_proto_rawDesc = []byte{ 0x70, 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0xb9, 0x01, 0x0a, 0x0b, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x12, 0x32, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x6f, 0x1a, 0x23, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, + 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb9, 0x01, 0x0a, 0x0b, 0x42, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x32, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x22, 0xb7, 0x02, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, + 0x61, 0x72, 0x12, 0x32, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xb7, 0x02, - 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x12, 0x32, 0x0a, - 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, - 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3c, 0x0a, 0x0a, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x3e, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x42, 0x38, 0x5a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, - 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2f, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, - 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3c, + 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x3e, 0x0a, 0x0b, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x22, 0xe3, 0x02, 0x0a, + 0x11, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, + 0x61, 0x72, 0x12, 0x40, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x1c, 0x0a, 0x09, 0x6b, 0x7a, 0x67, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x6b, 0x7a, 0x67, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x58, + 0x0a, 0x13, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x56, 0x32, 0x52, 0x13, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x1f, 0x6b, 0x7a, 0x67, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x1f, 0x6b, 0x7a, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, + 0x6f, 0x66, 0x42, 0x38, 0x5a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, + 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -222,27 +335,31 @@ func file_pkg_proto_libp2p_gossipsub_eth_proto_rawDescGZIP() []byte { return file_pkg_proto_libp2p_gossipsub_eth_proto_rawDescData } -var file_pkg_proto_libp2p_gossipsub_eth_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_pkg_proto_libp2p_gossipsub_eth_proto_msgTypes = make([]protoimpl.MessageInfo, 3) var file_pkg_proto_libp2p_gossipsub_eth_proto_goTypes = []interface{}{ - (*BeaconBlock)(nil), // 0: xatu.libp2p.gossipsub.eth.BeaconBlock - (*BlobSidecar)(nil), // 1: xatu.libp2p.gossipsub.eth.BlobSidecar - (*wrapperspb.StringValue)(nil), // 2: google.protobuf.StringValue - (*wrapperspb.UInt64Value)(nil), // 3: google.protobuf.UInt64Value + (*BeaconBlock)(nil), // 0: xatu.libp2p.gossipsub.eth.BeaconBlock + (*BlobSidecar)(nil), // 1: xatu.libp2p.gossipsub.eth.BlobSidecar + (*DataColumnSidecar)(nil), // 2: xatu.libp2p.gossipsub.eth.DataColumnSidecar + (*wrapperspb.StringValue)(nil), // 3: google.protobuf.StringValue + (*wrapperspb.UInt64Value)(nil), // 4: google.protobuf.UInt64Value + (*v1.SignedBeaconBlockHeaderV2)(nil), // 5: xatu.eth.v1.SignedBeaconBlockHeaderV2 } var file_pkg_proto_libp2p_gossipsub_eth_proto_depIdxs = []int32{ - 2, // 0: xatu.libp2p.gossipsub.eth.BeaconBlock.block:type_name -> google.protobuf.StringValue - 3, // 1: xatu.libp2p.gossipsub.eth.BeaconBlock.slot:type_name -> google.protobuf.UInt64Value - 3, // 2: xatu.libp2p.gossipsub.eth.BeaconBlock.proposer_index:type_name -> google.protobuf.UInt64Value - 3, // 3: xatu.libp2p.gossipsub.eth.BlobSidecar.index:type_name -> google.protobuf.UInt64Value - 3, // 4: xatu.libp2p.gossipsub.eth.BlobSidecar.slot:type_name -> google.protobuf.UInt64Value - 3, // 5: xatu.libp2p.gossipsub.eth.BlobSidecar.proposer_index:type_name -> google.protobuf.UInt64Value - 2, // 6: xatu.libp2p.gossipsub.eth.BlobSidecar.state_root:type_name -> google.protobuf.StringValue - 2, // 7: xatu.libp2p.gossipsub.eth.BlobSidecar.parent_root:type_name -> google.protobuf.StringValue - 8, // [8:8] is the sub-list for method output_type - 8, // [8:8] is the sub-list for method input_type - 8, // [8:8] is the sub-list for extension type_name - 8, // [8:8] is the sub-list for extension extendee - 0, // [0:8] is the sub-list for field type_name + 3, // 0: xatu.libp2p.gossipsub.eth.BeaconBlock.block:type_name -> google.protobuf.StringValue + 4, // 1: xatu.libp2p.gossipsub.eth.BeaconBlock.slot:type_name -> google.protobuf.UInt64Value + 4, // 2: xatu.libp2p.gossipsub.eth.BeaconBlock.proposer_index:type_name -> google.protobuf.UInt64Value + 4, // 3: xatu.libp2p.gossipsub.eth.BlobSidecar.index:type_name -> google.protobuf.UInt64Value + 4, // 4: xatu.libp2p.gossipsub.eth.BlobSidecar.slot:type_name -> google.protobuf.UInt64Value + 4, // 5: xatu.libp2p.gossipsub.eth.BlobSidecar.proposer_index:type_name -> google.protobuf.UInt64Value + 3, // 6: xatu.libp2p.gossipsub.eth.BlobSidecar.state_root:type_name -> google.protobuf.StringValue + 3, // 7: xatu.libp2p.gossipsub.eth.BlobSidecar.parent_root:type_name -> google.protobuf.StringValue + 4, // 8: xatu.libp2p.gossipsub.eth.DataColumnSidecar.column_index:type_name -> google.protobuf.UInt64Value + 5, // 9: xatu.libp2p.gossipsub.eth.DataColumnSidecar.signed_block_header:type_name -> xatu.eth.v1.SignedBeaconBlockHeaderV2 + 10, // [10:10] is the sub-list for method output_type + 10, // [10:10] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name } func init() { file_pkg_proto_libp2p_gossipsub_eth_proto_init() } @@ -275,6 +392,18 @@ func file_pkg_proto_libp2p_gossipsub_eth_proto_init() { return nil } } + file_pkg_proto_libp2p_gossipsub_eth_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataColumnSidecar); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -282,7 +411,7 @@ func file_pkg_proto_libp2p_gossipsub_eth_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pkg_proto_libp2p_gossipsub_eth_proto_rawDesc, NumEnums: 0, - NumMessages: 2, + NumMessages: 3, NumExtensions: 0, NumServices: 0, }, diff --git a/pkg/proto/libp2p/gossipsub/eth.proto b/pkg/proto/libp2p/gossipsub/eth.proto index fdf77c04..b1823751 100644 --- a/pkg/proto/libp2p/gossipsub/eth.proto +++ b/pkg/proto/libp2p/gossipsub/eth.proto @@ -5,6 +5,7 @@ package xatu.libp2p.gossipsub.eth; option go_package = "github.com/ethpandaops/xatu/pkg/proto/libp2p/gossipsub"; import "google/protobuf/wrappers.proto"; +import "pkg/proto/eth/v1/beacon_block.proto"; message BeaconBlock { google.protobuf.StringValue block = 1 [json_name = "block"]; @@ -20,3 +21,11 @@ message BlobSidecar { google.protobuf.StringValue parent_root = 5 [json_name = "parent_root"]; } +message DataColumnSidecar { + google.protobuf.UInt64Value column_index = 1 [json_name = "column_index"]; + string data_column = 2 [json_name = "data_column"]; + repeated string kzg_commitments = 3 [json_name = "kzg_commitments"]; + string kzg_proof = 4 [json_name = "kzg_proof"]; + xatu.eth.v1.SignedBeaconBlockHeaderV2 signed_block_header = 5 [json_name = "signed_block_header"]; + string kzg_commitments_inclusion_proof = 6 [json_name = "kzg_commitments_inclusion_proof"]; +} diff --git a/pkg/proto/xatu/event_ingester.pb.go b/pkg/proto/xatu/event_ingester.pb.go index 25792e31..c4de2cdb 100644 --- a/pkg/proto/xatu/event_ingester.pb.go +++ b/pkg/proto/xatu/event_ingester.pb.go @@ -83,6 +83,7 @@ const ( Event_LIBP2P_TRACE_GOSSIPSUB_BEACON_ATTESTATION Event_Name = 50 Event_LIBP2P_TRACE_GOSSIPSUB_BLOB_SIDECAR Event_Name = 51 Event_BEACON_API_ETH_V1_BEACON_VALIDATORS Event_Name = 52 + Event_LIBP2P_TRACE_GOSSIPSUB_BEACON_DATA_COLUMN_SIDECAR Event_Name = 53 ) // Enum value maps for Event_Name. @@ -141,6 +142,7 @@ var ( 50: "LIBP2P_TRACE_GOSSIPSUB_BEACON_ATTESTATION", 51: "LIBP2P_TRACE_GOSSIPSUB_BLOB_SIDECAR", 52: "BEACON_API_ETH_V1_BEACON_VALIDATORS", + 53: "LIBP2P_TRACE_GOSSIPSUB_BEACON_DATA_COLUMN_SIDECAR", } Event_Name_value = map[string]int32{ "BEACON_API_ETH_V1_EVENTS_UNKNOWN": 0, @@ -196,6 +198,7 @@ var ( "LIBP2P_TRACE_GOSSIPSUB_BEACON_ATTESTATION": 50, "LIBP2P_TRACE_GOSSIPSUB_BLOB_SIDECAR": 51, "BEACON_API_ETH_V1_BEACON_VALIDATORS": 52, + "LIBP2P_TRACE_GOSSIPSUB_BEACON_DATA_COLUMN_SIDECAR": 53, } ) @@ -1130,6 +1133,7 @@ type ClientMeta struct { // *ClientMeta_Libp2PTraceGossipsubBeaconAttestation // *ClientMeta_Libp2PTraceGossipsubBlobSidecar // *ClientMeta_EthV1Validators + // *ClientMeta_Libp2PTraceGossipsubBeaconDataColumnSidecar AdditionalData isClientMeta_AdditionalData `protobuf_oneof:"AdditionalData"` } @@ -1578,6 +1582,13 @@ func (x *ClientMeta) GetEthV1Validators() *ClientMeta_AdditionalEthV1ValidatorsD return nil } +func (x *ClientMeta) GetLibp2PTraceGossipsubBeaconDataColumnSidecar() *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData { + if x, ok := x.GetAdditionalData().(*ClientMeta_Libp2PTraceGossipsubBeaconDataColumnSidecar); ok { + return x.Libp2PTraceGossipsubBeaconDataColumnSidecar + } + return nil +} + type isClientMeta_AdditionalData interface { isClientMeta_AdditionalData() } @@ -1861,6 +1872,11 @@ type ClientMeta_EthV1Validators struct { EthV1Validators *ClientMeta_AdditionalEthV1ValidatorsData `protobuf:"bytes,60,opt,name=eth_v1_validators,json=BEACON_API_ETH_V1_BEACON_VALIDATORS,proto3,oneof"` } +type ClientMeta_Libp2PTraceGossipsubBeaconDataColumnSidecar struct { + // AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData contains additional data about the gossip sub beacon data column sidecar event. + Libp2PTraceGossipsubBeaconDataColumnSidecar *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData `protobuf:"bytes,61,opt,name=libp2p_trace_gossipsub_beacon_data_column_sidecar,json=LIBP2P_TRACE_GOSSIPSUB_BEACON_DATA_COLUMN_SIDECAR,proto3,oneof"` +} + func (*ClientMeta_EthV1EventsAttestation) isClientMeta_AdditionalData() {} func (*ClientMeta_EthV1EventsHead) isClientMeta_AdditionalData() {} @@ -1961,6 +1977,8 @@ func (*ClientMeta_Libp2PTraceGossipsubBlobSidecar) isClientMeta_AdditionalData() func (*ClientMeta_EthV1Validators) isClientMeta_AdditionalData() {} +func (*ClientMeta_Libp2PTraceGossipsubBeaconDataColumnSidecar) isClientMeta_AdditionalData() {} + type ServerMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2267,6 +2285,7 @@ type DecoratedEvent struct { // *DecoratedEvent_Libp2PTraceGossipsubBeaconAttestation // *DecoratedEvent_Libp2PTraceGossipsubBlobSidecar // *DecoratedEvent_EthV1Validators + // *DecoratedEvent_Libp2PTraceGossipsubBeaconDataColumnSidecar Data isDecoratedEvent_Data `protobuf_oneof:"data"` } @@ -2684,6 +2703,13 @@ func (x *DecoratedEvent) GetEthV1Validators() *Validators { return nil } +func (x *DecoratedEvent) GetLibp2PTraceGossipsubBeaconDataColumnSidecar() *gossipsub.DataColumnSidecar { + if x, ok := x.GetData().(*DecoratedEvent_Libp2PTraceGossipsubBeaconDataColumnSidecar); ok { + return x.Libp2PTraceGossipsubBeaconDataColumnSidecar + } + return nil +} + type isDecoratedEvent_Data interface { isDecoratedEvent_Data() } @@ -2899,6 +2925,10 @@ type DecoratedEvent_EthV1Validators struct { EthV1Validators *Validators `protobuf:"bytes,52,opt,name=eth_v1_validators,json=BEACON_API_ETH_V1_BEACON_VALIDATORS,proto3,oneof"` } +type DecoratedEvent_Libp2PTraceGossipsubBeaconDataColumnSidecar struct { + Libp2PTraceGossipsubBeaconDataColumnSidecar *gossipsub.DataColumnSidecar `protobuf:"bytes,53,opt,name=libp2p_trace_gossipsub_beacon_data_column_sidecar,json=LIBP2P_TRACE_GOSSIPSUB_BEACON_DATA_COLUMN_SIDECAR,proto3,oneof"` +} + func (*DecoratedEvent_EthV1EventsAttestation) isDecoratedEvent_Data() {} func (*DecoratedEvent_EthV1EventsBlock) isDecoratedEvent_Data() {} @@ -2999,6 +3029,8 @@ func (*DecoratedEvent_Libp2PTraceGossipsubBlobSidecar) isDecoratedEvent_Data() { func (*DecoratedEvent_EthV1Validators) isDecoratedEvent_Data() {} +func (*DecoratedEvent_Libp2PTraceGossipsubBeaconDataColumnSidecar) isDecoratedEvent_Data() {} + type ClientMeta_Ethereum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6961,7 +6993,7 @@ type ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData struct { // Source contains information for the best currently justified checkpoint. Source *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` - // Target contains information of the block at the start of the current + // Target contains information of the attestation at the start of the current // epoch. Target *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"` // Slot contains the slot information for the attestation. @@ -6980,11 +7012,11 @@ type ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData struct { WallclockSlot *SlotV2 `protobuf:"bytes,8,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` // Metadata contains additional trace event metadata. Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,9,opt,name=metadata,proto3" json:"metadata,omitempty"` - // Topic is the gossip sub topic the beacon block was received on. + // Topic is the gossip sub topic the attestation was received on. Topic *wrapperspb.StringValue `protobuf:"bytes,10,opt,name=topic,proto3" json:"topic,omitempty"` - // MessageSize is the size of the beacon block message in bytes. + // MessageSize is the size of the attestation message in bytes. MessageSize *wrapperspb.UInt32Value `protobuf:"bytes,11,opt,name=message_size,proto3" json:"message_size,omitempty"` - // MessageID is a unique identifier for the beacon block message. + // MessageID is a unique identifier for the attestation message. MessageId *wrapperspb.StringValue `protobuf:"bytes,12,opt,name=message_id,proto3" json:"message_id,omitempty"` } @@ -7272,6 +7304,223 @@ func (x *ClientMeta_AdditionalEthV1ValidatorsData) GetEpoch() *EpochV2 { return nil } +type ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarSourceData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Epoch contains the epoch information for the source. + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarSourceData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarSourceData{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarSourceData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarSourceData) ProtoMessage() {} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarSourceData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[83] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarSourceData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarSourceData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{15, 63} +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarSourceData) GetEpoch() *EpochV2 { + if x != nil { + return x.Epoch + } + return nil +} + +type ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarTargetData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Epoch contains the epoch information for the target. + Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarTargetData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarTargetData{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarTargetData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarTargetData) ProtoMessage() {} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarTargetData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[84] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarTargetData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarTargetData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{15, 64} +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarTargetData) GetEpoch() *EpochV2 { + if x != nil { + return x.Epoch + } + return nil +} + +type ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Slot contains the slot information for the data column sidecar. + Slot *SlotV2 `protobuf:"bytes,1,opt,name=slot,proto3" json:"slot,omitempty"` + // Epoch contains the epoch information for the data column sidecar. + Epoch *EpochV2 `protobuf:"bytes,2,opt,name=epoch,proto3" json:"epoch,omitempty"` + // Propagation contains information about the propagation of the + // data column sidecar. + Propagation *PropagationV2 `protobuf:"bytes,3,opt,name=propagation,proto3" json:"propagation,omitempty"` + // WallclockEpoch contains the epoch information for the data column sidecar on the wall clock when the data column sidecar was received. + WallclockEpoch *EpochV2 `protobuf:"bytes,4,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` + // WallclockSlot contains the slot information for the data column sidecar on the wall clock when the data column sidecar was received. + WallclockSlot *SlotV2 `protobuf:"bytes,5,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` + // Metadata contains additional trace event metadata. + Metadata *libp2p.TraceEventMetadata `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` + // Topic is the gossip sub topic the data column sidecar was received on. + Topic *wrapperspb.StringValue `protobuf:"bytes,7,opt,name=topic,proto3" json:"topic,omitempty"` + // MessageSize is the size of the data column sidecar message in bytes. + MessageSize *wrapperspb.UInt32Value `protobuf:"bytes,8,opt,name=message_size,proto3" json:"message_size,omitempty"` + // MessageID is a unique identifier for the data column sidecar message. + MessageId *wrapperspb.StringValue `protobuf:"bytes,9,opt,name=message_id,proto3" json:"message_id,omitempty"` +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData) Reset() { + *x = ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[85] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData) ProtoMessage() {} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[85] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData.ProtoReflect.Descriptor instead. +func (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{15, 65} +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData) GetSlot() *SlotV2 { + if x != nil { + return x.Slot + } + return nil +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData) GetEpoch() *EpochV2 { + if x != nil { + return x.Epoch + } + return nil +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData) GetPropagation() *PropagationV2 { + if x != nil { + return x.Propagation + } + return nil +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData) GetWallclockEpoch() *EpochV2 { + if x != nil { + return x.WallclockEpoch + } + return nil +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData) GetWallclockSlot() *SlotV2 { + if x != nil { + return x.WallclockSlot + } + return nil +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData) GetMetadata() *libp2p.TraceEventMetadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData) GetTopic() *wrapperspb.StringValue { + if x != nil { + return x.Topic + } + return nil +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData) GetMessageSize() *wrapperspb.UInt32Value { + if x != nil { + return x.MessageSize + } + return nil +} + +func (x *ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData) GetMessageId() *wrapperspb.StringValue { + if x != nil { + return x.MessageId + } + return nil +} + type ClientMeta_Ethereum_Network struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -7286,7 +7535,7 @@ type ClientMeta_Ethereum_Network struct { func (x *ClientMeta_Ethereum_Network) Reset() { *x = ClientMeta_Ethereum_Network{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[83] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7299,7 +7548,7 @@ func (x *ClientMeta_Ethereum_Network) String() string { func (*ClientMeta_Ethereum_Network) ProtoMessage() {} func (x *ClientMeta_Ethereum_Network) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[83] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7341,7 +7590,7 @@ type ClientMeta_Ethereum_Execution struct { func (x *ClientMeta_Ethereum_Execution) Reset() { *x = ClientMeta_Ethereum_Execution{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[84] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7354,7 +7603,7 @@ func (x *ClientMeta_Ethereum_Execution) String() string { func (*ClientMeta_Ethereum_Execution) ProtoMessage() {} func (x *ClientMeta_Ethereum_Execution) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[84] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7391,7 +7640,7 @@ type ClientMeta_Ethereum_Consensus struct { func (x *ClientMeta_Ethereum_Consensus) Reset() { *x = ClientMeta_Ethereum_Consensus{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[85] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7404,7 +7653,7 @@ func (x *ClientMeta_Ethereum_Consensus) String() string { func (*ClientMeta_Ethereum_Consensus) ProtoMessage() {} func (x *ClientMeta_Ethereum_Consensus) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[85] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7446,7 +7695,7 @@ type ServerMeta_Event struct { func (x *ServerMeta_Event) Reset() { *x = ServerMeta_Event{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[86] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7459,7 +7708,7 @@ func (x *ServerMeta_Event) String() string { func (*ServerMeta_Event) ProtoMessage() {} func (x *ServerMeta_Event) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[86] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7514,7 +7763,7 @@ type ServerMeta_Geo struct { func (x *ServerMeta_Geo) Reset() { *x = ServerMeta_Geo{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[87] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7527,7 +7776,7 @@ func (x *ServerMeta_Geo) String() string { func (*ServerMeta_Geo) ProtoMessage() {} func (x *ServerMeta_Geo) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[87] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7614,7 +7863,7 @@ type ServerMeta_Client struct { func (x *ServerMeta_Client) Reset() { *x = ServerMeta_Client{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[88] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7627,7 +7876,7 @@ func (x *ServerMeta_Client) String() string { func (*ServerMeta_Client) ProtoMessage() {} func (x *ServerMeta_Client) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[88] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7669,7 +7918,7 @@ type ServerMeta_Peer struct { func (x *ServerMeta_Peer) Reset() { *x = ServerMeta_Peer{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[89] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7682,7 +7931,7 @@ func (x *ServerMeta_Peer) String() string { func (*ServerMeta_Peer) ProtoMessage() {} func (x *ServerMeta_Peer) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[89] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7716,7 +7965,7 @@ type ServerMeta_AdditionalBeaconP2PAttestationData struct { func (x *ServerMeta_AdditionalBeaconP2PAttestationData) Reset() { *x = ServerMeta_AdditionalBeaconP2PAttestationData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[90] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7729,7 +7978,7 @@ func (x *ServerMeta_AdditionalBeaconP2PAttestationData) String() string { func (*ServerMeta_AdditionalBeaconP2PAttestationData) ProtoMessage() {} func (x *ServerMeta_AdditionalBeaconP2PAttestationData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[90] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7763,7 +8012,7 @@ type ServerMeta_AdditionalLibp2PTraceConnectedData struct { func (x *ServerMeta_AdditionalLibp2PTraceConnectedData) Reset() { *x = ServerMeta_AdditionalLibp2PTraceConnectedData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[91] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7776,7 +8025,7 @@ func (x *ServerMeta_AdditionalLibp2PTraceConnectedData) String() string { func (*ServerMeta_AdditionalLibp2PTraceConnectedData) ProtoMessage() {} func (x *ServerMeta_AdditionalLibp2PTraceConnectedData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[91] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7810,7 +8059,7 @@ type ServerMeta_AdditionalLibp2PTraceDisconnectedData struct { func (x *ServerMeta_AdditionalLibp2PTraceDisconnectedData) Reset() { *x = ServerMeta_AdditionalLibp2PTraceDisconnectedData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[92] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7823,7 +8072,7 @@ func (x *ServerMeta_AdditionalLibp2PTraceDisconnectedData) String() string { func (*ServerMeta_AdditionalLibp2PTraceDisconnectedData) ProtoMessage() {} func (x *ServerMeta_AdditionalLibp2PTraceDisconnectedData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[92] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7986,7 +8235,7 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x22, - 0x8c, 0x9d, 0x01, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, + 0xb5, 0xa4, 0x01, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, @@ -8424,126 +8673,118 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x1a, 0x80, - 0x03, 0x0a, 0x08, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x12, 0x3b, 0x0a, 0x07, 0x6e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, - 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x41, 0x0a, 0x09, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, + 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x12, 0xba, + 0x01, 0x0a, 0x31, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, + 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, + 0x65, 0x63, 0x61, 0x72, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, + 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x31, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, + 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, + 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x1a, 0x80, 0x03, 0x0a, 0x08, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x12, 0x3b, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x41, 0x0a, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x65, 0x75, 0x6d, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x73, + 0x65, 0x6e, 0x73, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x09, 0x63, - 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, - 0x73, 0x75, 0x73, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x1a, 0x2d, - 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x1a, 0x33, 0x0a, - 0x09, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x07, 0x66, 0x6f, - 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x6b, 0x5f, - 0x69, 0x64, 0x1a, 0x4d, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x12, - 0x26, 0x0a, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x49, 0x0a, 0x24, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x4d, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, - 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x49, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, - 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x1a, 0x4d, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, - 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x1a, 0x88, 0x03, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, - 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4d, 0x0a, 0x06, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4d, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, - 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, - 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x4a, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x96, 0x03, 0x0a, 0x26, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, + 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, + 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x1a, 0x2d, 0x0a, 0x07, 0x4e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x1a, 0x33, 0x0a, 0x09, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x6b, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x46, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x1a, + 0x4d, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, + 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x39, + 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x49, 0x0a, 0x24, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x4d, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, + 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x1a, 0x49, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x4d, + 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, + 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x88, 0x03, + 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, + 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4d, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, - 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, - 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, - 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, - 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x97, 0x01, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x65, - 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, - 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, - 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x9f, - 0x01, 0x0a, 0x1f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x65, 0x61, 0x64, 0x56, 0x32, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, - 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, - 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, - 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x1a, 0x98, 0x01, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, - 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, + 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4d, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, + 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, + 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x13, + 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x96, 0x03, 0x0a, 0x26, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, + 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x0b, + 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, 0x13, 0x61, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x1a, 0x97, 0x01, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, @@ -8551,925 +8792,995 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, - 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xa0, 0x01, 0x0a, 0x20, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, - 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, - 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x4b, - 0x0a, 0x26, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, - 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, - 0x45, 0x78, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xbe, 0x01, 0x0a, 0x28, + 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x9f, 0x01, 0x0a, 0x1f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, - 0x69, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, - 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, - 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x51, 0x0a, 0x2c, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, - 0x55, 0x0a, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, - 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, - 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x9d, 0x01, 0x0a, 0x23, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, - 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, - 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xa5, 0x01, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, - 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, - 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xb3, - 0x01, 0x0a, 0x39, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, - 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, - 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, - 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xbb, 0x01, 0x0a, 0x3b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, - 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x65, 0x61, 0x64, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, + 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, + 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x98, 0x01, + 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, + 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x6f, + 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xa0, 0x01, 0x0a, 0x20, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, + 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, + 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, + 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x4b, 0x0a, 0x26, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xbe, 0x01, 0x0a, 0x28, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x56, + 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, + 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, - 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, - 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x1a, 0x9f, 0x01, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x6e, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, + 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x51, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, - 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xa3, 0x01, 0x0a, 0x2f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, - 0x6f, 0x66, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x70, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xad, 0x02, 0x0a, 0x12, 0x46, - 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x12, 0x31, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x70, 0x6f, + 0x74, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x55, 0x0a, 0x2e, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, + 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x1a, 0x9d, 0x01, 0x0a, 0x23, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x68, 0x61, + 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1e, + 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x33, + 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x1a, 0xa5, 0x01, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x68, 0x61, + 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, + 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, + 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, + 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xb3, 0x01, 0x0a, 0x39, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x12, 0x2e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, - 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x48, 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, - 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1f, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x12, 0x30, - 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, - 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0xef, 0x02, 0x0a, 0x14, 0x46, - 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x56, 0x32, 0x12, 0x33, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x30, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0c, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x66, 0x0a, 0x1f, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, - 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, - 0x6d, 0x73, 0x12, 0x4e, 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, + 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x33, 0x0a, 0x0b, + 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x1a, 0xbb, 0x01, 0x0a, 0x3b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, + 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, + 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, + 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, + 0x9f, 0x01, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, + 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x6e, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, + 0x6f, 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x1a, 0xa3, 0x01, 0x0a, 0x2f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x56, + 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x70, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, + 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xad, 0x02, 0x0a, 0x12, 0x46, 0x6f, 0x72, 0x6b, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x31, + 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x12, 0x2e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x6c, 0x6f, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, + 0x6c, 0x6f, 0x74, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x6c, 0x6f, + 0x74, 0x12, 0x48, 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, + 0x66, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0x65, 0x0a, 0x22, + 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, 0x38, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0xef, 0x02, 0x0a, 0x14, 0x46, 0x6f, 0x72, 0x6b, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x56, 0x32, + 0x12, 0x33, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x30, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x66, 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1f, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, + 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x12, + 0x4e, 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, + 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0x65, 0x0a, 0x22, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, + 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x3f, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x1a, 0x69, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, + 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, + 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x56, + 0x32, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x1a, 0xa1, 0x01, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, - 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x3f, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x1a, 0x69, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, 0x08, 0x53, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, + 0x4f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x06, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x1a, + 0xa7, 0x01, 0x0a, 0x29, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, + 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x52, 0x65, 0x4f, 0x72, 0x67, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3d, 0x0a, + 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, - 0x6f, 0x74, 0x56, 0x32, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x1a, 0xa1, - 0x01, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x52, 0x65, 0x4f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x06, 0x62, 0x65, - 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, - 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, - 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x05, 0x61, 0x66, 0x74, - 0x65, 0x72, 0x1a, 0xa7, 0x01, 0x0a, 0x29, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x4f, 0x72, 0x67, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x3d, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, - 0x3b, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x1a, 0x87, 0x01, 0x0a, - 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, - 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, - 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, - 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0xf2, 0x01, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, - 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, - 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x73, - 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, - 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x61, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x67, 0x61, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x6f, 0x74, 0x56, 0x32, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x3b, 0x0a, 0x05, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x6f, + 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x56, 0x32, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x1a, 0x87, 0x01, 0x0a, 0x22, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, + 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x5f, 0x69, 0x64, 0x1a, 0xf2, 0x01, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, + 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, + 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, + 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x61, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x67, 0x61, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, + 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x9a, 0x05, 0x0a, 0x22, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, + 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x32, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, + 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x03, 0x67, 0x61, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x67, 0x61, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x61, 0x6c, - 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x9a, 0x05, 0x0a, 0x22, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, - 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x32, 0x0a, 0x05, 0x6e, 0x6f, - 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x03, - 0x67, 0x61, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x67, 0x61, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x30, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x70, 0x12, + 0x20, 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, + 0x70, 0x12, 0x38, 0x0a, 0x08, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x08, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x62, + 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, + 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x62, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x6c, + 0x6f, 0x62, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x6c, 0x6f, + 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, + 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3a, 0x0a, 0x18, 0x62, 0x6c, 0x6f, + 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x62, 0x6c, 0x6f, + 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x89, 0x02, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1e, 0x0a, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, + 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x1a, 0x8d, 0x05, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x4c, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, + 0x6e, 0x0a, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x70, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x70, 0x5f, 0x63, - 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, - 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, - 0x5f, 0x63, 0x61, 0x70, 0x12, 0x38, 0x0a, 0x08, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x12, 0x2a, - 0x0a, 0x10, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, - 0x61, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, - 0x61, 0x73, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, - 0x6f, 0x62, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0b, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x12, - 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, - 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3a, 0x0a, 0x18, - 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, 0x6d, - 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, - 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, 0x6d, - 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x89, 0x02, 0x0a, 0x1e, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1e, - 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x1a, 0x8d, 0x05, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, - 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x4c, 0x0a, 0x12, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x6e, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, - 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x12, 0x6e, 0x0a, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, + 0x3e, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, + 0x54, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, + 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x23, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x12, 0x54, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, - 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x18, 0x66, 0x69, 0x6e, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x77, 0x68, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x66, 0x69, 0x6e, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x77, 0x68, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x65, 0x64, 0x1a, 0x5d, 0x0a, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, - 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x1a, 0x5d, 0x0a, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, - 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x1a, 0x5a, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x54, - 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, - 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x61, 0x0a, 0x32, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x42, 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0xd5, 0x02, 0x0a, 0x32, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x18, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x5f, 0x77, 0x68, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x5f, 0x77, 0x68, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x1a, 0x5d, 0x0a, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x1a, 0x5d, 0x0a, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, + 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, + 0x5a, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, + 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x6f, 0x6c, + 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x11, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, - 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, - 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x12, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x12, 0x3a, 0x0a, 0x18, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, - 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, - 0x63, 0x61, 0x72, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, - 0x57, 0x0a, 0x28, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, - 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, + 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x54, 0x0a, 0x25, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, + 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x1a, 0x61, 0x0a, 0x32, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, + 0x4c, 0x53, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0xd5, 0x02, 0x0a, 0x32, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x74, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x70, 0x72, 0x69, 0x6e, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, - 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x8b, - 0x02, 0x0a, 0x17, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x66, 0x0a, 0x1f, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x18, 0x01, 0x20, + 0x72, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, - 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, - 0x6d, 0x73, 0x12, 0x4e, 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0xdc, 0x02, 0x0a, - 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x06, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, - 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, - 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x23, - 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x1a, 0xa4, 0x01, 0x0a, 0x24, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, + 0x65, 0x52, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, + 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x62, 0x6c, + 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x12, 0x3a, 0x0a, 0x18, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, + 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x18, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, + 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0x57, 0x0a, 0x28, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x74, 0x0a, 0x2b, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, - 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, - 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x8b, 0x02, 0x0a, 0x17, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x66, 0x0a, 0x1f, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1f, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x6c, 0x6f, + 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x6d, 0x73, 0x12, + 0x4e, 0x0a, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x12, + 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0xdc, 0x02, 0x0a, 0x2b, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x12, 0x44, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x08, + 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x1a, 0xa4, 0x01, 0x0a, 0x24, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, + 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, + 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, + 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, + 0x99, 0x02, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, + 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, + 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, + 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, + 0x3a, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x12, 0x46, 0x0a, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0xa9, 0x04, 0x0a, 0x22, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, + 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, + 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x0b, 0x70, + 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x1a, 0x99, 0x02, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x62, - 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, + 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, 0x13, 0x61, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x25, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x50, 0x65, 0x65, + 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, + 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x38, 0x0a, + 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x1a, 0x84, 0x01, 0x0a, 0x1f, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, - 0x6f, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, - 0x0a, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, - 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x12, 0x46, 0x0a, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, - 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x64, - 0x61, 0x74, 0x61, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x1a, 0xa9, - 0x04, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, 0x61, - 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, + 0x6f, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x97, + 0x03, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, + 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x6c, 0x61, + 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x05, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, + 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, + 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, - 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, - 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, 0x13, - 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, - 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x75, - 0x62, 0x6e, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, - 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, - 0x12, 0x38, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x1a, 0x84, 0x01, 0x0a, 0x1f, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x50, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, - 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x69, - 0x64, 0x1a, 0x97, 0x03, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x45, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x05, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, - 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, - 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, - 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x4f, 0x0a, 0x06, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x1a, 0x5f, 0x0a, 0x20, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x62, 0x0a, 0x23, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x44, + 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, + 0x65, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x62, 0x0a, 0x23, 0x41, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, + 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5f, 0x0a, + 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, + 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, + 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5f, + 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, + 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, + 0x5c, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x61, 0x0a, + 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, + 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, - 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x1a, 0x5f, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, - 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x50, - 0x43, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x1a, 0x5c, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, + 0x1a, 0x64, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, + 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, + 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x64, + 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, + 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x1a, 0x8d, 0x04, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, + 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, + 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, + 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, + 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x1a, 0x61, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, - 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x1a, 0x64, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x66, 0x0a, 0x27, 0x41, 0x64, 0x64, + 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x60, 0x0a, 0x39, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, + 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, + 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x60, 0x0a, 0x39, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, + 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, + 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xa9, 0x06, 0x0a, 0x33, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x1a, 0x64, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, - 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x8d, 0x04, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, - 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, - 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, - 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, - 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, + 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x62, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x4a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, + 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x12, 0x62, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, + 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, + 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x60, 0x0a, 0x39, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x60, 0x0a, 0x39, 0x41, 0x64, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x32, 0x52, + 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, + 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, + 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, + 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, + 0x6c, 0x6f, 0x74, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x8d, 0x04, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, + 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, + 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xa9, 0x06, 0x0a, 0x33, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x62, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, - 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x62, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, - 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x41, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x73, - 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, - 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, - 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, - 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x61, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x41, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x56, 0x32, 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, + 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, - 0x6f, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x8d, 0x04, 0x0a, 0x2d, 0x41, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, - 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x6c, 0x6f, 0x62, 0x53, 0x69, - 0x64, 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, - 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, - 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, - 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, - 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, + 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x35, 0x0a, 0x0b, + 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x44, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x66, 0x0a, 0x3f, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, + 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, + 0x63, 0x61, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, + 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x1a, 0x66, 0x0a, 0x3f, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, + 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x99, 0x04, 0x0a, 0x39, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x50, 0x54, + 0x72, 0x61, 0x63, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x53, 0x75, 0x62, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, + 0x65, 0x63, 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, + 0x6f, 0x74, 0x56, 0x32, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, + 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x1a, 0x44, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x10, 0x0a, - 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, - 0xca, 0x09, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x2c, - 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x06, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x6d, 0x0a, - 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, - 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, - 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, - 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, - 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x6d, 0x0a, 0x16, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, - 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x76, 0x0a, 0x19, 0x4c, - 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, - 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, - 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, - 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, - 0x54, 0x45, 0x44, 0x1a, 0x53, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x12, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x12, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, - 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0xb7, 0x02, 0x0a, 0x03, 0x47, 0x65, 0x6f, - 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x21, - 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, - 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6e, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, - 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x61, 0x74, 0x69, - 0x74, 0x75, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, - 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, - 0x64, 0x65, 0x12, 0x38, 0x0a, 0x16, 0x41, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x18, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x5f, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1c, - 0x41, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x1e, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x5f, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x1a, 0x40, 0x0a, 0x06, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x50, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x26, 0x0a, 0x03, - 0x67, 0x65, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, - 0x03, 0x67, 0x65, 0x6f, 0x1a, 0x2e, 0x0a, 0x04, 0x50, 0x65, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x03, - 0x67, 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, - 0x03, 0x67, 0x65, 0x6f, 0x1a, 0x4f, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, - 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x4f, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, - 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, - 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x52, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, + 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, + 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, + 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0xca, 0x09, 0x0a, 0x0a, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x6d, 0x0a, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x6d, 0x0a, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x16, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, + 0x43, 0x54, 0x45, 0x44, 0x12, 0x76, 0x0a, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, + 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, - 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, - 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0x5a, 0x0a, 0x04, - 0x4d, 0x65, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x28, - 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, - 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0xf4, 0x11, 0x0a, 0x05, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4e, 0x61, - 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x65, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x22, 0xfa, 0x10, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x42, + 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, + 0x00, 0x52, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, + 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x1a, 0x53, 0x0a, 0x05, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x12, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x12, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x1a, 0xb7, 0x02, 0x0a, 0x03, 0x47, 0x65, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, + 0x07, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x43, 0x6f, + 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x64, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x38, 0x0a, 0x16, 0x41, + 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x61, 0x75, 0x74, + 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x1c, 0x41, 0x75, 0x74, 0x6f, 0x6e, 0x6f, 0x6d, + 0x6f, 0x75, 0x73, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x61, 0x75, 0x74, + 0x6f, 0x6e, 0x6f, 0x6d, 0x6f, 0x75, 0x73, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x40, 0x0a, 0x06, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x50, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x1a, 0x2e, 0x0a, + 0x04, 0x50, 0x65, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x1a, 0x4f, 0x0a, + 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x50, 0x32, 0x50, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, 0x4f, + 0x0a, 0x22, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, 0x70, + 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x1a, + 0x52, 0x0a, 0x25, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x62, + 0x70, 0x32, 0x50, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, + 0x65, 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x44, 0x61, 0x74, 0x61, 0x22, 0x5a, 0x0a, 0x04, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x28, 0x0a, + 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, + 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x22, 0xab, 0x12, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x38, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x09, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xb1, 0x11, 0x0a, 0x04, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, + 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, + 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x28, + 0x0a, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, + 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x10, 0x02, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, + 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, - 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, - 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x10, 0x02, 0x12, - 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, - 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, - 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, - 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, - 0x45, 0x41, 0x44, 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x10, 0x04, 0x12, 0x2b, + 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, + 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, 0x33, 0x0a, 0x2f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, - 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, - 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, 0x33, 0x0a, 0x2f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, - 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, - 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x10, - 0x07, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, - 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x09, 0x12, 0x27, - 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, - 0x48, 0x4f, 0x49, 0x43, 0x45, 0x10, 0x0a, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, + 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x45, + 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x10, 0x08, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x09, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, - 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, - 0x45, 0x4f, 0x52, 0x47, 0x10, 0x0b, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x45, 0x10, 0x0c, 0x12, 0x30, - 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, - 0x5f, 0x56, 0x31, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, - 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x0d, - 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x10, 0x0e, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, - 0x56, 0x32, 0x10, 0x0f, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, - 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, - 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x56, 0x32, 0x10, 0x10, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x45, - 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x56, 0x32, 0x10, 0x11, - 0x12, 0x2e, 0x0a, 0x2a, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, - 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x5f, 0x56, 0x32, 0x10, 0x12, + 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x10, 0x0a, + 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, + 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x10, 0x0b, 0x12, + 0x26, 0x0a, 0x22, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, + 0x49, 0x54, 0x54, 0x45, 0x45, 0x10, 0x0c, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x56, 0x41, 0x4c, + 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x0d, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x10, 0x0e, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, - 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, - 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x10, 0x13, 0x12, 0x36, 0x0a, - 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, - 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, - 0x5f, 0x56, 0x32, 0x10, 0x14, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, - 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x10, - 0x15, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x10, 0x16, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, - 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, - 0x56, 0x32, 0x10, 0x17, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, - 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, - 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, - 0x47, 0x5f, 0x56, 0x32, 0x10, 0x18, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x45, - 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x19, 0x12, 0x34, 0x0a, 0x30, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, - 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, - 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, - 0x10, 0x1a, 0x12, 0x31, 0x0a, 0x2d, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, - 0x58, 0x49, 0x54, 0x10, 0x1b, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x10, - 0x1c, 0x12, 0x3a, 0x0a, 0x36, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, - 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x1d, 0x12, 0x38, 0x0a, - 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, - 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x1e, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, - 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, - 0x41, 0x57, 0x41, 0x4c, 0x10, 0x1f, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x41, + 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x10, 0x0f, 0x12, 0x34, 0x0a, + 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, + 0x5a, 0x45, 0x44, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x56, + 0x32, 0x10, 0x10, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, + 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, + 0x48, 0x45, 0x41, 0x44, 0x5f, 0x56, 0x32, 0x10, 0x11, 0x12, 0x2e, 0x0a, 0x2a, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, + 0x45, 0x58, 0x49, 0x54, 0x5f, 0x56, 0x32, 0x10, 0x12, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x56, 0x32, 0x10, 0x13, 0x12, 0x36, 0x0a, 0x32, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, - 0x20, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x50, 0x52, 0x49, 0x4e, 0x54, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x21, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, - 0x22, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, - 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x23, 0x12, 0x23, 0x0a, - 0x1f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, - 0x56, 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, - 0x10, 0x24, 0x12, 0x39, 0x0a, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, - 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, - 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x25, 0x12, 0x1a, 0x0a, - 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, - 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x26, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, - 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x27, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, - 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, - 0x52, 0x10, 0x28, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, - 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, - 0x29, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x2a, 0x12, 0x19, 0x0a, 0x15, - 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, - 0x44, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x2b, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, - 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, 0x43, - 0x10, 0x2c, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x43, 0x45, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x10, 0x2d, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x49, 0x42, - 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, - 0x4e, 0x10, 0x2e, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, - 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, - 0x41, 0x54, 0x41, 0x10, 0x2f, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x10, 0x30, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, - 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x31, 0x12, 0x2d, - 0x0a, 0x29, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, + 0x54, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x5f, 0x56, 0x32, 0x10, 0x14, 0x12, 0x1a, + 0x0a, 0x16, 0x4d, 0x45, 0x4d, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x32, 0x10, 0x15, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x32, 0x10, + 0x16, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, + 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, + 0x4b, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x56, 0x32, 0x10, 0x17, 0x12, 0x30, 0x0a, + 0x2c, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, + 0x56, 0x31, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x4b, 0x5f, 0x43, 0x48, + 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4f, 0x52, 0x47, 0x5f, 0x56, 0x32, 0x10, 0x18, 0x12, + 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, + 0x4b, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, + 0x49, 0x4e, 0x47, 0x10, 0x19, 0x12, 0x34, 0x0a, 0x30, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, + 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x52, + 0x5f, 0x53, 0x4c, 0x41, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x1a, 0x12, 0x31, 0x0a, 0x2d, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, + 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x56, 0x4f, + 0x4c, 0x55, 0x4e, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x54, 0x10, 0x1b, 0x12, 0x2a, + 0x0a, 0x26, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, + 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x10, 0x1c, 0x12, 0x3a, 0x0a, 0x36, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, + 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4c, 0x53, + 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, + 0x41, 0x4e, 0x47, 0x45, 0x10, 0x1d, 0x12, 0x38, 0x0a, 0x34, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, + 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x1e, + 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, + 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, + 0x43, 0x4b, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x41, 0x4c, 0x10, 0x1f, 0x12, + 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x42, 0x4c, 0x4f, 0x42, + 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x20, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x50, 0x52, 0x49, 0x4e, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x43, + 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x21, 0x12, + 0x29, 0x0a, 0x25, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x42, + 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x22, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x45, + 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x50, 0x32, 0x50, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x23, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, + 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x50, 0x52, 0x4f, 0x50, + 0x4f, 0x53, 0x45, 0x52, 0x5f, 0x44, 0x55, 0x54, 0x59, 0x10, 0x24, 0x12, 0x39, 0x0a, 0x35, 0x42, + 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, + 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, + 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x25, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, + 0x10, 0x26, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, + 0x27, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x28, 0x12, 0x1c, 0x0a, 0x18, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, + 0x4f, 0x56, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x29, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, + 0x52, 0x50, 0x43, 0x10, 0x2a, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x2b, + 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x2c, 0x12, 0x15, 0x0a, 0x11, 0x4c, + 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, + 0x10, 0x2d, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x2e, 0x12, 0x20, 0x0a, 0x1c, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, + 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x10, 0x2f, 0x12, 0x1e, + 0x0a, 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x48, + 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x30, 0x12, 0x27, + 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, - 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x32, 0x12, 0x27, 0x0a, - 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, - 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, - 0x45, 0x43, 0x41, 0x52, 0x10, 0x33, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, - 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x10, 0x34, 0x22, - 0x9e, 0x2a, 0x0a, 0x0e, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, + 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x31, 0x12, 0x2d, 0x0a, 0x29, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, + 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x32, 0x12, 0x27, 0x0a, 0x23, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, + 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x33, 0x12, + 0x27, 0x0a, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, + 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x4c, 0x49, + 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x10, 0x34, 0x12, 0x35, 0x0a, 0x31, 0x4c, 0x49, 0x42, 0x50, + 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, + 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, + 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x10, 0x35, 0x22, + 0xbd, 0x2b, 0x0a, 0x0e, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, @@ -9806,16 +10117,26 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x10, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x23, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x31, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x56, 0x41, - 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x32, 0x58, 0x0a, 0x0d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, - 0x72, 0x12, 0x47, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x12, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, - 0x61, 0x6f, 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x4c, 0x49, 0x44, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x12, 0x9c, 0x01, 0x0a, 0x31, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, + 0x73, 0x75, 0x62, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x35, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x73, 0x75, 0x62, 0x2e, 0x65, 0x74, 0x68, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, + 0x61, 0x72, 0x48, 0x00, 0x52, 0x31, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x47, 0x4f, 0x53, 0x53, 0x49, 0x50, 0x53, 0x55, 0x42, 0x5f, 0x42, 0x45, 0x41, + 0x43, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x43, 0x4f, 0x4c, 0x55, 0x4d, 0x4e, 0x5f, + 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, + 0x58, 0x0a, 0x0d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x72, + 0x12, 0x47, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, + 0x6f, 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -9831,7 +10152,7 @@ func file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP() []byte { } var file_pkg_proto_xatu_event_ingester_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_pkg_proto_xatu_event_ingester_proto_msgTypes = make([]protoimpl.MessageInfo, 93) +var file_pkg_proto_xatu_event_ingester_proto_msgTypes = make([]protoimpl.MessageInfo, 96) var file_pkg_proto_xatu_event_ingester_proto_goTypes = []interface{}{ (Event_Name)(0), // 0: xatu.Event.Name (*CreateEventsRequest)(nil), // 1: xatu.CreateEventsRequest @@ -9856,147 +10177,151 @@ var file_pkg_proto_xatu_event_ingester_proto_goTypes = []interface{}{ (*DecoratedEvent)(nil), // 20: xatu.DecoratedEvent (*ClientMeta_Ethereum)(nil), // 21: xatu.ClientMeta.Ethereum nil, // 22: xatu.ClientMeta.LabelsEntry - (*ClientMeta_AdditionalEthV1AttestationSourceData)(nil), // 23: xatu.ClientMeta.AdditionalEthV1AttestationSourceData - (*ClientMeta_AdditionalEthV1AttestationSourceV2Data)(nil), // 24: xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - (*ClientMeta_AdditionalEthV1AttestationTargetData)(nil), // 25: xatu.ClientMeta.AdditionalEthV1AttestationTargetData - (*ClientMeta_AdditionalEthV1AttestationTargetV2Data)(nil), // 26: xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - (*ClientMeta_AdditionalEthV1EventsAttestationData)(nil), // 27: xatu.ClientMeta.AdditionalEthV1EventsAttestationData - (*ClientMeta_AdditionalEthV1EventsAttestationV2Data)(nil), // 28: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data - (*ClientMeta_AdditionalEthV1EventsHeadData)(nil), // 29: xatu.ClientMeta.AdditionalEthV1EventsHeadData - (*ClientMeta_AdditionalEthV1EventsHeadV2Data)(nil), // 30: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data - (*ClientMeta_AdditionalEthV1EventsBlockData)(nil), // 31: xatu.ClientMeta.AdditionalEthV1EventsBlockData - (*ClientMeta_AdditionalEthV1EventsBlockV2Data)(nil), // 32: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data - (*ClientMeta_AdditionalEthV1EventsVoluntaryExitData)(nil), // 33: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitData - (*ClientMeta_AdditionalEthV1EventsVoluntaryExitV2Data)(nil), // 34: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data - (*ClientMeta_AdditionalEthV1EventsFinalizedCheckpointData)(nil), // 35: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointData - (*ClientMeta_AdditionalEthV1EventsFinalizedCheckpointV2Data)(nil), // 36: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointV2Data - (*ClientMeta_AdditionalEthV1EventsChainReorgData)(nil), // 37: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData - (*ClientMeta_AdditionalEthV1EventsChainReorgV2Data)(nil), // 38: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data - (*ClientMeta_AdditionalEthV1EventsContributionAndProofContributionData)(nil), // 39: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData - (*ClientMeta_AdditionalEthV1EventsContributionAndProofContributionV2Data)(nil), // 40: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data - (*ClientMeta_AdditionalEthV1EventsContributionAndProofData)(nil), // 41: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofData - (*ClientMeta_AdditionalEthV1EventsContributionAndProofV2Data)(nil), // 42: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofV2Data - (*ClientMeta_ForkChoiceSnapshot)(nil), // 43: xatu.ClientMeta.ForkChoiceSnapshot - (*ClientMeta_ForkChoiceSnapshotV2)(nil), // 44: xatu.ClientMeta.ForkChoiceSnapshotV2 - (*ClientMeta_AdditionalEthV1DebugForkChoiceData)(nil), // 45: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceData - (*ClientMeta_AdditionalEthV1DebugForkChoiceV2Data)(nil), // 46: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceV2Data - (*ClientMeta_AdditionalEthV1DebugForkChoiceReOrgData)(nil), // 47: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData - (*ClientMeta_AdditionalEthV1DebugForkChoiceReOrgV2Data)(nil), // 48: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data - (*ClientMeta_AdditionalEthV1BeaconCommitteeData)(nil), // 49: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData - (*ClientMeta_AdditionalMempoolTransactionData)(nil), // 50: xatu.ClientMeta.AdditionalMempoolTransactionData - (*ClientMeta_AdditionalMempoolTransactionV2Data)(nil), // 51: xatu.ClientMeta.AdditionalMempoolTransactionV2Data - (*ClientMeta_AdditionalEthV2BeaconBlockData)(nil), // 52: xatu.ClientMeta.AdditionalEthV2BeaconBlockData - (*ClientMeta_AdditionalEthV2BeaconBlockV2Data)(nil), // 53: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data - (*ClientMeta_AdditionalEthV2BeaconBlockAttesterSlashingData)(nil), // 54: xatu.ClientMeta.AdditionalEthV2BeaconBlockAttesterSlashingData - (*ClientMeta_AdditionalEthV2BeaconBlockProposerSlashingData)(nil), // 55: xatu.ClientMeta.AdditionalEthV2BeaconBlockProposerSlashingData - (*ClientMeta_AdditionalEthV2BeaconBlockVoluntaryExitData)(nil), // 56: xatu.ClientMeta.AdditionalEthV2BeaconBlockVoluntaryExitData - (*ClientMeta_AdditionalEthV2BeaconBlockDepositData)(nil), // 57: xatu.ClientMeta.AdditionalEthV2BeaconBlockDepositData - (*ClientMeta_AdditionalEthV2BeaconBlockBLSToExecutionChangeData)(nil), // 58: xatu.ClientMeta.AdditionalEthV2BeaconBlockBLSToExecutionChangeData - (*ClientMeta_AdditionalEthV2BeaconBlockExecutionTransactionData)(nil), // 59: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData - (*ClientMeta_AdditionalEthV2BeaconBlockWithdrawalData)(nil), // 60: xatu.ClientMeta.AdditionalEthV2BeaconBlockWithdrawalData - (*ClientMeta_AdditionalBlockprintBlockClassificationData)(nil), // 61: xatu.ClientMeta.AdditionalBlockprintBlockClassificationData - (*ClientMeta_AttestationDataSnapshot)(nil), // 62: xatu.ClientMeta.AttestationDataSnapshot - (*ClientMeta_AdditionalEthV1ValidatorAttestationDataData)(nil), // 63: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData - (*ClientMeta_AdditionalEthV1EventsBlobSidecarData)(nil), // 64: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData - (*ClientMeta_AdditionalEthV1BeaconBlobSidecarData)(nil), // 65: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData - (*ClientMeta_AdditionalBeaconP2PAttestationData)(nil), // 66: xatu.ClientMeta.AdditionalBeaconP2PAttestationData - (*ClientMeta_AdditionalEthV1ProposerDutyData)(nil), // 67: xatu.ClientMeta.AdditionalEthV1ProposerDutyData - (*ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData)(nil), // 68: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData - (*ClientMeta_AdditionalLibP2PTraceAddPeerData)(nil), // 69: xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData - (*ClientMeta_AdditionalLibP2PTraceRemovePeerData)(nil), // 70: xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData - (*ClientMeta_AdditionalLibP2PTraceRecvRPCData)(nil), // 71: xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData - (*ClientMeta_AdditionalLibP2PTraceSendRPCData)(nil), // 72: xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData - (*ClientMeta_AdditionalLibP2PTraceJoinData)(nil), // 73: xatu.ClientMeta.AdditionalLibP2PTraceJoinData - (*ClientMeta_AdditionalLibP2PTraceConnectedData)(nil), // 74: xatu.ClientMeta.AdditionalLibP2PTraceConnectedData - (*ClientMeta_AdditionalLibP2PTraceDisconnectedData)(nil), // 75: xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData - (*ClientMeta_AdditionalLibP2PTraceHandleMetadataData)(nil), // 76: xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData - (*ClientMeta_AdditionalLibP2PTraceHandleStatusData)(nil), // 77: xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData - (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData)(nil), // 78: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData - (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData)(nil), // 79: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData - (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData)(nil), // 80: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData - (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData)(nil), // 81: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData - (*ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData)(nil), // 82: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData - (*ClientMeta_AdditionalEthV1ValidatorsData)(nil), // 83: xatu.ClientMeta.AdditionalEthV1ValidatorsData - (*ClientMeta_Ethereum_Network)(nil), // 84: xatu.ClientMeta.Ethereum.Network - (*ClientMeta_Ethereum_Execution)(nil), // 85: xatu.ClientMeta.Ethereum.Execution - (*ClientMeta_Ethereum_Consensus)(nil), // 86: xatu.ClientMeta.Ethereum.Consensus - (*ServerMeta_Event)(nil), // 87: xatu.ServerMeta.Event - (*ServerMeta_Geo)(nil), // 88: xatu.ServerMeta.Geo - (*ServerMeta_Client)(nil), // 89: xatu.ServerMeta.Client - (*ServerMeta_Peer)(nil), // 90: xatu.ServerMeta.Peer - (*ServerMeta_AdditionalBeaconP2PAttestationData)(nil), // 91: xatu.ServerMeta.AdditionalBeaconP2PAttestationData - (*ServerMeta_AdditionalLibp2PTraceConnectedData)(nil), // 92: xatu.ServerMeta.AdditionalLibp2PTraceConnectedData - (*ServerMeta_AdditionalLibp2PTraceDisconnectedData)(nil), // 93: xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData - (*timestamppb.Timestamp)(nil), // 94: google.protobuf.Timestamp - (*wrapperspb.UInt64Value)(nil), // 95: google.protobuf.UInt64Value - (*v1.ForkChoice)(nil), // 96: xatu.eth.v1.ForkChoice - (*v1.EventChainReorg)(nil), // 97: xatu.eth.v1.EventChainReorg - (*v1.ForkChoiceV2)(nil), // 98: xatu.eth.v1.ForkChoiceV2 - (*v1.EventChainReorgV2)(nil), // 99: xatu.eth.v1.EventChainReorgV2 - (*v1.Validator)(nil), // 100: xatu.eth.v1.Validator - (*v1.Attestation)(nil), // 101: xatu.eth.v1.Attestation - (*v1.EventBlock)(nil), // 102: xatu.eth.v1.EventBlock - (*v1.EventFinalizedCheckpoint)(nil), // 103: xatu.eth.v1.EventFinalizedCheckpoint - (*v1.EventHead)(nil), // 104: xatu.eth.v1.EventHead - (*v1.EventVoluntaryExit)(nil), // 105: xatu.eth.v1.EventVoluntaryExit - (*v1.EventContributionAndProof)(nil), // 106: xatu.eth.v1.EventContributionAndProof - (*v2.EventBlock)(nil), // 107: xatu.eth.v2.EventBlock - (*v1.Committee)(nil), // 108: xatu.eth.v1.Committee - (*v1.AttestationDataV2)(nil), // 109: xatu.eth.v1.AttestationDataV2 - (*v1.AttestationV2)(nil), // 110: xatu.eth.v1.AttestationV2 - (*v1.EventBlockV2)(nil), // 111: xatu.eth.v1.EventBlockV2 - (*v1.EventFinalizedCheckpointV2)(nil), // 112: xatu.eth.v1.EventFinalizedCheckpointV2 - (*v1.EventHeadV2)(nil), // 113: xatu.eth.v1.EventHeadV2 - (*v1.EventVoluntaryExitV2)(nil), // 114: xatu.eth.v1.EventVoluntaryExitV2 - (*v1.EventContributionAndProofV2)(nil), // 115: xatu.eth.v1.EventContributionAndProofV2 - (*v2.EventBlockV2)(nil), // 116: xatu.eth.v2.EventBlockV2 - (*v1.AttesterSlashingV2)(nil), // 117: xatu.eth.v1.AttesterSlashingV2 - (*v1.ProposerSlashingV2)(nil), // 118: xatu.eth.v1.ProposerSlashingV2 - (*v1.SignedVoluntaryExitV2)(nil), // 119: xatu.eth.v1.SignedVoluntaryExitV2 - (*v1.DepositV2)(nil), // 120: xatu.eth.v1.DepositV2 - (*v2.SignedBLSToExecutionChangeV2)(nil), // 121: xatu.eth.v2.SignedBLSToExecutionChangeV2 - (*v1.Transaction)(nil), // 122: xatu.eth.v1.Transaction - (*v1.WithdrawalV2)(nil), // 123: xatu.eth.v1.WithdrawalV2 - (*v1.EventBlobSidecar)(nil), // 124: xatu.eth.v1.EventBlobSidecar - (*blockprint.BlockClassification)(nil), // 125: xatu.blockprint.BlockClassification - (*v1.BlobSidecar)(nil), // 126: xatu.eth.v1.BlobSidecar - (*v1.ProposerDuty)(nil), // 127: xatu.eth.v1.ProposerDuty - (*v1.ElaboratedAttestation)(nil), // 128: xatu.eth.v1.ElaboratedAttestation - (*libp2p.AddPeer)(nil), // 129: xatu.libp2p.AddPeer - (*libp2p.RemovePeer)(nil), // 130: xatu.libp2p.RemovePeer - (*libp2p.RecvRPC)(nil), // 131: xatu.libp2p.RecvRPC - (*libp2p.SendRPC)(nil), // 132: xatu.libp2p.SendRPC - (*libp2p.Join)(nil), // 133: xatu.libp2p.Join - (*libp2p.Connected)(nil), // 134: xatu.libp2p.Connected - (*libp2p.Disconnected)(nil), // 135: xatu.libp2p.Disconnected - (*libp2p.HandleMetadata)(nil), // 136: xatu.libp2p.HandleMetadata - (*libp2p.HandleStatus)(nil), // 137: xatu.libp2p.HandleStatus - (*gossipsub.BeaconBlock)(nil), // 138: xatu.libp2p.gossipsub.eth.BeaconBlock - (*gossipsub.BlobSidecar)(nil), // 139: xatu.libp2p.gossipsub.eth.BlobSidecar - (*wrapperspb.UInt32Value)(nil), // 140: google.protobuf.UInt32Value - (*libp2p.Peer)(nil), // 141: xatu.libp2p.Peer - (*wrapperspb.BoolValue)(nil), // 142: google.protobuf.BoolValue - (*libp2p.TraceEventMetadata)(nil), // 143: xatu.libp2p.TraceEventMetadata - (*wrapperspb.StringValue)(nil), // 144: google.protobuf.StringValue + (*ClientMeta_AdditionalEthV1AttestationSourceData)(nil), // 23: xatu.ClientMeta.AdditionalEthV1AttestationSourceData + (*ClientMeta_AdditionalEthV1AttestationSourceV2Data)(nil), // 24: xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + (*ClientMeta_AdditionalEthV1AttestationTargetData)(nil), // 25: xatu.ClientMeta.AdditionalEthV1AttestationTargetData + (*ClientMeta_AdditionalEthV1AttestationTargetV2Data)(nil), // 26: xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + (*ClientMeta_AdditionalEthV1EventsAttestationData)(nil), // 27: xatu.ClientMeta.AdditionalEthV1EventsAttestationData + (*ClientMeta_AdditionalEthV1EventsAttestationV2Data)(nil), // 28: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data + (*ClientMeta_AdditionalEthV1EventsHeadData)(nil), // 29: xatu.ClientMeta.AdditionalEthV1EventsHeadData + (*ClientMeta_AdditionalEthV1EventsHeadV2Data)(nil), // 30: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data + (*ClientMeta_AdditionalEthV1EventsBlockData)(nil), // 31: xatu.ClientMeta.AdditionalEthV1EventsBlockData + (*ClientMeta_AdditionalEthV1EventsBlockV2Data)(nil), // 32: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data + (*ClientMeta_AdditionalEthV1EventsVoluntaryExitData)(nil), // 33: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitData + (*ClientMeta_AdditionalEthV1EventsVoluntaryExitV2Data)(nil), // 34: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data + (*ClientMeta_AdditionalEthV1EventsFinalizedCheckpointData)(nil), // 35: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointData + (*ClientMeta_AdditionalEthV1EventsFinalizedCheckpointV2Data)(nil), // 36: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointV2Data + (*ClientMeta_AdditionalEthV1EventsChainReorgData)(nil), // 37: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData + (*ClientMeta_AdditionalEthV1EventsChainReorgV2Data)(nil), // 38: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data + (*ClientMeta_AdditionalEthV1EventsContributionAndProofContributionData)(nil), // 39: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData + (*ClientMeta_AdditionalEthV1EventsContributionAndProofContributionV2Data)(nil), // 40: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data + (*ClientMeta_AdditionalEthV1EventsContributionAndProofData)(nil), // 41: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofData + (*ClientMeta_AdditionalEthV1EventsContributionAndProofV2Data)(nil), // 42: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofV2Data + (*ClientMeta_ForkChoiceSnapshot)(nil), // 43: xatu.ClientMeta.ForkChoiceSnapshot + (*ClientMeta_ForkChoiceSnapshotV2)(nil), // 44: xatu.ClientMeta.ForkChoiceSnapshotV2 + (*ClientMeta_AdditionalEthV1DebugForkChoiceData)(nil), // 45: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceData + (*ClientMeta_AdditionalEthV1DebugForkChoiceV2Data)(nil), // 46: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceV2Data + (*ClientMeta_AdditionalEthV1DebugForkChoiceReOrgData)(nil), // 47: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData + (*ClientMeta_AdditionalEthV1DebugForkChoiceReOrgV2Data)(nil), // 48: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data + (*ClientMeta_AdditionalEthV1BeaconCommitteeData)(nil), // 49: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData + (*ClientMeta_AdditionalMempoolTransactionData)(nil), // 50: xatu.ClientMeta.AdditionalMempoolTransactionData + (*ClientMeta_AdditionalMempoolTransactionV2Data)(nil), // 51: xatu.ClientMeta.AdditionalMempoolTransactionV2Data + (*ClientMeta_AdditionalEthV2BeaconBlockData)(nil), // 52: xatu.ClientMeta.AdditionalEthV2BeaconBlockData + (*ClientMeta_AdditionalEthV2BeaconBlockV2Data)(nil), // 53: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data + (*ClientMeta_AdditionalEthV2BeaconBlockAttesterSlashingData)(nil), // 54: xatu.ClientMeta.AdditionalEthV2BeaconBlockAttesterSlashingData + (*ClientMeta_AdditionalEthV2BeaconBlockProposerSlashingData)(nil), // 55: xatu.ClientMeta.AdditionalEthV2BeaconBlockProposerSlashingData + (*ClientMeta_AdditionalEthV2BeaconBlockVoluntaryExitData)(nil), // 56: xatu.ClientMeta.AdditionalEthV2BeaconBlockVoluntaryExitData + (*ClientMeta_AdditionalEthV2BeaconBlockDepositData)(nil), // 57: xatu.ClientMeta.AdditionalEthV2BeaconBlockDepositData + (*ClientMeta_AdditionalEthV2BeaconBlockBLSToExecutionChangeData)(nil), // 58: xatu.ClientMeta.AdditionalEthV2BeaconBlockBLSToExecutionChangeData + (*ClientMeta_AdditionalEthV2BeaconBlockExecutionTransactionData)(nil), // 59: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData + (*ClientMeta_AdditionalEthV2BeaconBlockWithdrawalData)(nil), // 60: xatu.ClientMeta.AdditionalEthV2BeaconBlockWithdrawalData + (*ClientMeta_AdditionalBlockprintBlockClassificationData)(nil), // 61: xatu.ClientMeta.AdditionalBlockprintBlockClassificationData + (*ClientMeta_AttestationDataSnapshot)(nil), // 62: xatu.ClientMeta.AttestationDataSnapshot + (*ClientMeta_AdditionalEthV1ValidatorAttestationDataData)(nil), // 63: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData + (*ClientMeta_AdditionalEthV1EventsBlobSidecarData)(nil), // 64: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData + (*ClientMeta_AdditionalEthV1BeaconBlobSidecarData)(nil), // 65: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData + (*ClientMeta_AdditionalBeaconP2PAttestationData)(nil), // 66: xatu.ClientMeta.AdditionalBeaconP2PAttestationData + (*ClientMeta_AdditionalEthV1ProposerDutyData)(nil), // 67: xatu.ClientMeta.AdditionalEthV1ProposerDutyData + (*ClientMeta_AdditionalEthV2BeaconBlockElaboratedAttestationData)(nil), // 68: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData + (*ClientMeta_AdditionalLibP2PTraceAddPeerData)(nil), // 69: xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData + (*ClientMeta_AdditionalLibP2PTraceRemovePeerData)(nil), // 70: xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData + (*ClientMeta_AdditionalLibP2PTraceRecvRPCData)(nil), // 71: xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData + (*ClientMeta_AdditionalLibP2PTraceSendRPCData)(nil), // 72: xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData + (*ClientMeta_AdditionalLibP2PTraceJoinData)(nil), // 73: xatu.ClientMeta.AdditionalLibP2PTraceJoinData + (*ClientMeta_AdditionalLibP2PTraceConnectedData)(nil), // 74: xatu.ClientMeta.AdditionalLibP2PTraceConnectedData + (*ClientMeta_AdditionalLibP2PTraceDisconnectedData)(nil), // 75: xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData + (*ClientMeta_AdditionalLibP2PTraceHandleMetadataData)(nil), // 76: xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData + (*ClientMeta_AdditionalLibP2PTraceHandleStatusData)(nil), // 77: xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData + (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconBlockData)(nil), // 78: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData + (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData)(nil), // 79: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData + (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData)(nil), // 80: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData + (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconAttestationData)(nil), // 81: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData + (*ClientMeta_AdditionalLibP2PTraceGossipSubBlobSidecarData)(nil), // 82: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData + (*ClientMeta_AdditionalEthV1ValidatorsData)(nil), // 83: xatu.ClientMeta.AdditionalEthV1ValidatorsData + (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarSourceData)(nil), // 84: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarSourceData + (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarTargetData)(nil), // 85: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarTargetData + (*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData)(nil), // 86: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData + (*ClientMeta_Ethereum_Network)(nil), // 87: xatu.ClientMeta.Ethereum.Network + (*ClientMeta_Ethereum_Execution)(nil), // 88: xatu.ClientMeta.Ethereum.Execution + (*ClientMeta_Ethereum_Consensus)(nil), // 89: xatu.ClientMeta.Ethereum.Consensus + (*ServerMeta_Event)(nil), // 90: xatu.ServerMeta.Event + (*ServerMeta_Geo)(nil), // 91: xatu.ServerMeta.Geo + (*ServerMeta_Client)(nil), // 92: xatu.ServerMeta.Client + (*ServerMeta_Peer)(nil), // 93: xatu.ServerMeta.Peer + (*ServerMeta_AdditionalBeaconP2PAttestationData)(nil), // 94: xatu.ServerMeta.AdditionalBeaconP2PAttestationData + (*ServerMeta_AdditionalLibp2PTraceConnectedData)(nil), // 95: xatu.ServerMeta.AdditionalLibp2PTraceConnectedData + (*ServerMeta_AdditionalLibp2PTraceDisconnectedData)(nil), // 96: xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData + (*timestamppb.Timestamp)(nil), // 97: google.protobuf.Timestamp + (*wrapperspb.UInt64Value)(nil), // 98: google.protobuf.UInt64Value + (*v1.ForkChoice)(nil), // 99: xatu.eth.v1.ForkChoice + (*v1.EventChainReorg)(nil), // 100: xatu.eth.v1.EventChainReorg + (*v1.ForkChoiceV2)(nil), // 101: xatu.eth.v1.ForkChoiceV2 + (*v1.EventChainReorgV2)(nil), // 102: xatu.eth.v1.EventChainReorgV2 + (*v1.Validator)(nil), // 103: xatu.eth.v1.Validator + (*v1.Attestation)(nil), // 104: xatu.eth.v1.Attestation + (*v1.EventBlock)(nil), // 105: xatu.eth.v1.EventBlock + (*v1.EventFinalizedCheckpoint)(nil), // 106: xatu.eth.v1.EventFinalizedCheckpoint + (*v1.EventHead)(nil), // 107: xatu.eth.v1.EventHead + (*v1.EventVoluntaryExit)(nil), // 108: xatu.eth.v1.EventVoluntaryExit + (*v1.EventContributionAndProof)(nil), // 109: xatu.eth.v1.EventContributionAndProof + (*v2.EventBlock)(nil), // 110: xatu.eth.v2.EventBlock + (*v1.Committee)(nil), // 111: xatu.eth.v1.Committee + (*v1.AttestationDataV2)(nil), // 112: xatu.eth.v1.AttestationDataV2 + (*v1.AttestationV2)(nil), // 113: xatu.eth.v1.AttestationV2 + (*v1.EventBlockV2)(nil), // 114: xatu.eth.v1.EventBlockV2 + (*v1.EventFinalizedCheckpointV2)(nil), // 115: xatu.eth.v1.EventFinalizedCheckpointV2 + (*v1.EventHeadV2)(nil), // 116: xatu.eth.v1.EventHeadV2 + (*v1.EventVoluntaryExitV2)(nil), // 117: xatu.eth.v1.EventVoluntaryExitV2 + (*v1.EventContributionAndProofV2)(nil), // 118: xatu.eth.v1.EventContributionAndProofV2 + (*v2.EventBlockV2)(nil), // 119: xatu.eth.v2.EventBlockV2 + (*v1.AttesterSlashingV2)(nil), // 120: xatu.eth.v1.AttesterSlashingV2 + (*v1.ProposerSlashingV2)(nil), // 121: xatu.eth.v1.ProposerSlashingV2 + (*v1.SignedVoluntaryExitV2)(nil), // 122: xatu.eth.v1.SignedVoluntaryExitV2 + (*v1.DepositV2)(nil), // 123: xatu.eth.v1.DepositV2 + (*v2.SignedBLSToExecutionChangeV2)(nil), // 124: xatu.eth.v2.SignedBLSToExecutionChangeV2 + (*v1.Transaction)(nil), // 125: xatu.eth.v1.Transaction + (*v1.WithdrawalV2)(nil), // 126: xatu.eth.v1.WithdrawalV2 + (*v1.EventBlobSidecar)(nil), // 127: xatu.eth.v1.EventBlobSidecar + (*blockprint.BlockClassification)(nil), // 128: xatu.blockprint.BlockClassification + (*v1.BlobSidecar)(nil), // 129: xatu.eth.v1.BlobSidecar + (*v1.ProposerDuty)(nil), // 130: xatu.eth.v1.ProposerDuty + (*v1.ElaboratedAttestation)(nil), // 131: xatu.eth.v1.ElaboratedAttestation + (*libp2p.AddPeer)(nil), // 132: xatu.libp2p.AddPeer + (*libp2p.RemovePeer)(nil), // 133: xatu.libp2p.RemovePeer + (*libp2p.RecvRPC)(nil), // 134: xatu.libp2p.RecvRPC + (*libp2p.SendRPC)(nil), // 135: xatu.libp2p.SendRPC + (*libp2p.Join)(nil), // 136: xatu.libp2p.Join + (*libp2p.Connected)(nil), // 137: xatu.libp2p.Connected + (*libp2p.Disconnected)(nil), // 138: xatu.libp2p.Disconnected + (*libp2p.HandleMetadata)(nil), // 139: xatu.libp2p.HandleMetadata + (*libp2p.HandleStatus)(nil), // 140: xatu.libp2p.HandleStatus + (*gossipsub.BeaconBlock)(nil), // 141: xatu.libp2p.gossipsub.eth.BeaconBlock + (*gossipsub.BlobSidecar)(nil), // 142: xatu.libp2p.gossipsub.eth.BlobSidecar + (*gossipsub.DataColumnSidecar)(nil), // 143: xatu.libp2p.gossipsub.eth.DataColumnSidecar + (*wrapperspb.UInt32Value)(nil), // 144: google.protobuf.UInt32Value + (*libp2p.Peer)(nil), // 145: xatu.libp2p.Peer + (*wrapperspb.BoolValue)(nil), // 146: google.protobuf.BoolValue + (*libp2p.TraceEventMetadata)(nil), // 147: xatu.libp2p.TraceEventMetadata + (*wrapperspb.StringValue)(nil), // 148: google.protobuf.StringValue } var file_pkg_proto_xatu_event_ingester_proto_depIdxs = []int32{ 20, // 0: xatu.CreateEventsRequest.events:type_name -> xatu.DecoratedEvent - 94, // 1: xatu.Epoch.start_date_time:type_name -> google.protobuf.Timestamp - 95, // 2: xatu.EpochV2.number:type_name -> google.protobuf.UInt64Value - 94, // 3: xatu.EpochV2.start_date_time:type_name -> google.protobuf.Timestamp - 94, // 4: xatu.Slot.start_date_time:type_name -> google.protobuf.Timestamp - 95, // 5: xatu.SlotV2.number:type_name -> google.protobuf.UInt64Value - 94, // 6: xatu.SlotV2.start_date_time:type_name -> google.protobuf.Timestamp - 95, // 7: xatu.PropagationV2.slot_start_diff:type_name -> google.protobuf.UInt64Value - 95, // 8: xatu.AttestingValidatorV2.committee_index:type_name -> google.protobuf.UInt64Value - 95, // 9: xatu.AttestingValidatorV2.index:type_name -> google.protobuf.UInt64Value - 96, // 10: xatu.DebugForkChoiceReorg.before:type_name -> xatu.eth.v1.ForkChoice - 96, // 11: xatu.DebugForkChoiceReorg.after:type_name -> xatu.eth.v1.ForkChoice - 97, // 12: xatu.DebugForkChoiceReorg.event:type_name -> xatu.eth.v1.EventChainReorg - 98, // 13: xatu.DebugForkChoiceReorgV2.before:type_name -> xatu.eth.v1.ForkChoiceV2 - 98, // 14: xatu.DebugForkChoiceReorgV2.after:type_name -> xatu.eth.v1.ForkChoiceV2 - 99, // 15: xatu.DebugForkChoiceReorgV2.event:type_name -> xatu.eth.v1.EventChainReorgV2 - 100, // 16: xatu.Validators.validators:type_name -> xatu.eth.v1.Validator + 97, // 1: xatu.Epoch.start_date_time:type_name -> google.protobuf.Timestamp + 98, // 2: xatu.EpochV2.number:type_name -> google.protobuf.UInt64Value + 97, // 3: xatu.EpochV2.start_date_time:type_name -> google.protobuf.Timestamp + 97, // 4: xatu.Slot.start_date_time:type_name -> google.protobuf.Timestamp + 98, // 5: xatu.SlotV2.number:type_name -> google.protobuf.UInt64Value + 97, // 6: xatu.SlotV2.start_date_time:type_name -> google.protobuf.Timestamp + 98, // 7: xatu.PropagationV2.slot_start_diff:type_name -> google.protobuf.UInt64Value + 98, // 8: xatu.AttestingValidatorV2.committee_index:type_name -> google.protobuf.UInt64Value + 98, // 9: xatu.AttestingValidatorV2.index:type_name -> google.protobuf.UInt64Value + 99, // 10: xatu.DebugForkChoiceReorg.before:type_name -> xatu.eth.v1.ForkChoice + 99, // 11: xatu.DebugForkChoiceReorg.after:type_name -> xatu.eth.v1.ForkChoice + 100, // 12: xatu.DebugForkChoiceReorg.event:type_name -> xatu.eth.v1.EventChainReorg + 101, // 13: xatu.DebugForkChoiceReorgV2.before:type_name -> xatu.eth.v1.ForkChoiceV2 + 101, // 14: xatu.DebugForkChoiceReorgV2.after:type_name -> xatu.eth.v1.ForkChoiceV2 + 102, // 15: xatu.DebugForkChoiceReorgV2.event:type_name -> xatu.eth.v1.EventChainReorgV2 + 103, // 16: xatu.Validators.validators:type_name -> xatu.eth.v1.Validator 4, // 17: xatu.BlockIdentifier.epoch:type_name -> xatu.EpochV2 6, // 18: xatu.BlockIdentifier.slot:type_name -> xatu.SlotV2 21, // 19: xatu.ClientMeta.ethereum:type_name -> xatu.ClientMeta.Ethereum @@ -10051,243 +10376,256 @@ var file_pkg_proto_xatu_event_ingester_proto_depIdxs = []int32{ 81, // 68: xatu.ClientMeta.libp2p_trace_gossipsub_beacon_attestation:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData 82, // 69: xatu.ClientMeta.libp2p_trace_gossipsub_blob_sidecar:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData 83, // 70: xatu.ClientMeta.eth_v1_validators:type_name -> xatu.ClientMeta.AdditionalEthV1ValidatorsData - 87, // 71: xatu.ServerMeta.event:type_name -> xatu.ServerMeta.Event - 89, // 72: xatu.ServerMeta.client:type_name -> xatu.ServerMeta.Client - 91, // 73: xatu.ServerMeta.BEACON_P2P_ATTESTATION:type_name -> xatu.ServerMeta.AdditionalBeaconP2PAttestationData - 92, // 74: xatu.ServerMeta.LIBP2P_TRACE_CONNECTED:type_name -> xatu.ServerMeta.AdditionalLibp2PTraceConnectedData - 93, // 75: xatu.ServerMeta.LIBP2P_TRACE_DISCONNECTED:type_name -> xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData - 16, // 76: xatu.Meta.client:type_name -> xatu.ClientMeta - 17, // 77: xatu.Meta.server:type_name -> xatu.ServerMeta - 0, // 78: xatu.Event.name:type_name -> xatu.Event.Name - 94, // 79: xatu.Event.date_time:type_name -> google.protobuf.Timestamp - 19, // 80: xatu.DecoratedEvent.event:type_name -> xatu.Event - 18, // 81: xatu.DecoratedEvent.meta:type_name -> xatu.Meta - 101, // 82: xatu.DecoratedEvent.eth_v1_events_attestation:type_name -> xatu.eth.v1.Attestation - 102, // 83: xatu.DecoratedEvent.eth_v1_events_block:type_name -> xatu.eth.v1.EventBlock - 97, // 84: xatu.DecoratedEvent.eth_v1_events_chain_reorg:type_name -> xatu.eth.v1.EventChainReorg - 103, // 85: xatu.DecoratedEvent.eth_v1_events_finalized_checkpoint:type_name -> xatu.eth.v1.EventFinalizedCheckpoint - 104, // 86: xatu.DecoratedEvent.eth_v1_events_head:type_name -> xatu.eth.v1.EventHead - 105, // 87: xatu.DecoratedEvent.eth_v1_events_voluntary_exit:type_name -> xatu.eth.v1.EventVoluntaryExit - 106, // 88: xatu.DecoratedEvent.eth_v1_events_contribution_and_proof:type_name -> xatu.eth.v1.EventContributionAndProof - 107, // 89: xatu.DecoratedEvent.eth_v2_beacon_block:type_name -> xatu.eth.v2.EventBlock - 96, // 90: xatu.DecoratedEvent.eth_v1_fork_choice:type_name -> xatu.eth.v1.ForkChoice - 12, // 91: xatu.DecoratedEvent.eth_v1_fork_choice_reorg:type_name -> xatu.DebugForkChoiceReorg - 108, // 92: xatu.DecoratedEvent.eth_v1_beacon_committee:type_name -> xatu.eth.v1.Committee - 109, // 93: xatu.DecoratedEvent.eth_v1_validator_attestation_data:type_name -> xatu.eth.v1.AttestationDataV2 - 110, // 94: xatu.DecoratedEvent.eth_v1_events_attestation_v2:type_name -> xatu.eth.v1.AttestationV2 - 111, // 95: xatu.DecoratedEvent.eth_v1_events_block_v2:type_name -> xatu.eth.v1.EventBlockV2 - 99, // 96: xatu.DecoratedEvent.eth_v1_events_chain_reorg_v2:type_name -> xatu.eth.v1.EventChainReorgV2 - 112, // 97: xatu.DecoratedEvent.eth_v1_events_finalized_checkpoint_v2:type_name -> xatu.eth.v1.EventFinalizedCheckpointV2 - 113, // 98: xatu.DecoratedEvent.eth_v1_events_head_v2:type_name -> xatu.eth.v1.EventHeadV2 - 114, // 99: xatu.DecoratedEvent.eth_v1_events_voluntary_exit_v2:type_name -> xatu.eth.v1.EventVoluntaryExitV2 - 115, // 100: xatu.DecoratedEvent.eth_v1_events_contribution_and_proof_v2:type_name -> xatu.eth.v1.EventContributionAndProofV2 - 116, // 101: xatu.DecoratedEvent.eth_v2_beacon_block_v2:type_name -> xatu.eth.v2.EventBlockV2 - 98, // 102: xatu.DecoratedEvent.eth_v1_fork_choice_v2:type_name -> xatu.eth.v1.ForkChoiceV2 - 13, // 103: xatu.DecoratedEvent.eth_v1_fork_choice_reorg_v2:type_name -> xatu.DebugForkChoiceReorgV2 - 117, // 104: xatu.DecoratedEvent.eth_v2_beacon_block_attester_slashing:type_name -> xatu.eth.v1.AttesterSlashingV2 - 118, // 105: xatu.DecoratedEvent.eth_v2_beacon_block_proposer_slashing:type_name -> xatu.eth.v1.ProposerSlashingV2 - 119, // 106: xatu.DecoratedEvent.eth_v2_beacon_block_voluntary_exit:type_name -> xatu.eth.v1.SignedVoluntaryExitV2 - 120, // 107: xatu.DecoratedEvent.eth_v2_beacon_block_deposit:type_name -> xatu.eth.v1.DepositV2 - 121, // 108: xatu.DecoratedEvent.eth_v2_beacon_block_bls_to_execution_change:type_name -> xatu.eth.v2.SignedBLSToExecutionChangeV2 - 122, // 109: xatu.DecoratedEvent.eth_v2_beacon_block_execution_transaction:type_name -> xatu.eth.v1.Transaction - 123, // 110: xatu.DecoratedEvent.eth_v2_beacon_block_withdrawal:type_name -> xatu.eth.v1.WithdrawalV2 - 124, // 111: xatu.DecoratedEvent.eth_v1_events_blob_sidecar:type_name -> xatu.eth.v1.EventBlobSidecar - 125, // 112: xatu.DecoratedEvent.blockprint_block_classification:type_name -> xatu.blockprint.BlockClassification - 126, // 113: xatu.DecoratedEvent.eth_v1_beacon_block_blob_sidecar:type_name -> xatu.eth.v1.BlobSidecar - 110, // 114: xatu.DecoratedEvent.beacon_p2p_attestation:type_name -> xatu.eth.v1.AttestationV2 - 127, // 115: xatu.DecoratedEvent.eth_v1_proposer_duty:type_name -> xatu.eth.v1.ProposerDuty - 128, // 116: xatu.DecoratedEvent.eth_v2_beacon_block_elaborated_attestation:type_name -> xatu.eth.v1.ElaboratedAttestation - 129, // 117: xatu.DecoratedEvent.libp2p_trace_add_peer:type_name -> xatu.libp2p.AddPeer - 130, // 118: xatu.DecoratedEvent.libp2p_trace_remove_peer:type_name -> xatu.libp2p.RemovePeer - 131, // 119: xatu.DecoratedEvent.libp2p_trace_recv_rpc:type_name -> xatu.libp2p.RecvRPC - 132, // 120: xatu.DecoratedEvent.libp2p_trace_send_rpc:type_name -> xatu.libp2p.SendRPC - 133, // 121: xatu.DecoratedEvent.libp2p_trace_join:type_name -> xatu.libp2p.Join - 134, // 122: xatu.DecoratedEvent.libp2p_trace_connected:type_name -> xatu.libp2p.Connected - 135, // 123: xatu.DecoratedEvent.libp2p_trace_disconnected:type_name -> xatu.libp2p.Disconnected - 136, // 124: xatu.DecoratedEvent.libp2p_trace_handle_metadata:type_name -> xatu.libp2p.HandleMetadata - 137, // 125: xatu.DecoratedEvent.libp2p_trace_handle_status:type_name -> xatu.libp2p.HandleStatus - 138, // 126: xatu.DecoratedEvent.libp2p_trace_gossipsub_beacon_block:type_name -> xatu.libp2p.gossipsub.eth.BeaconBlock - 101, // 127: xatu.DecoratedEvent.libp2p_trace_gossipsub_beacon_attestation:type_name -> xatu.eth.v1.Attestation - 139, // 128: xatu.DecoratedEvent.libp2p_trace_gossipsub_blob_sidecar:type_name -> xatu.libp2p.gossipsub.eth.BlobSidecar - 14, // 129: xatu.DecoratedEvent.eth_v1_validators:type_name -> xatu.Validators - 84, // 130: xatu.ClientMeta.Ethereum.network:type_name -> xatu.ClientMeta.Ethereum.Network - 85, // 131: xatu.ClientMeta.Ethereum.execution:type_name -> xatu.ClientMeta.Ethereum.Execution - 86, // 132: xatu.ClientMeta.Ethereum.consensus:type_name -> xatu.ClientMeta.Ethereum.Consensus - 3, // 133: xatu.ClientMeta.AdditionalEthV1AttestationSourceData.epoch:type_name -> xatu.Epoch - 4, // 134: xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data.epoch:type_name -> xatu.EpochV2 - 3, // 135: xatu.ClientMeta.AdditionalEthV1AttestationTargetData.epoch:type_name -> xatu.Epoch - 4, // 136: xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data.epoch:type_name -> xatu.EpochV2 - 23, // 137: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceData - 25, // 138: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetData - 5, // 139: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.slot:type_name -> xatu.Slot - 3, // 140: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.epoch:type_name -> xatu.Epoch - 8, // 141: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.propagation:type_name -> xatu.Propagation - 10, // 142: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.attesting_validator:type_name -> xatu.AttestingValidator - 24, // 143: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 26, // 144: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 6, // 145: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.slot:type_name -> xatu.SlotV2 - 4, // 146: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.epoch:type_name -> xatu.EpochV2 - 9, // 147: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.propagation:type_name -> xatu.PropagationV2 - 11, // 148: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.attesting_validator:type_name -> xatu.AttestingValidatorV2 - 3, // 149: xatu.ClientMeta.AdditionalEthV1EventsHeadData.epoch:type_name -> xatu.Epoch - 5, // 150: xatu.ClientMeta.AdditionalEthV1EventsHeadData.slot:type_name -> xatu.Slot - 8, // 151: xatu.ClientMeta.AdditionalEthV1EventsHeadData.propagation:type_name -> xatu.Propagation - 4, // 152: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.epoch:type_name -> xatu.EpochV2 - 6, // 153: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.slot:type_name -> xatu.SlotV2 - 9, // 154: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.propagation:type_name -> xatu.PropagationV2 - 3, // 155: xatu.ClientMeta.AdditionalEthV1EventsBlockData.epoch:type_name -> xatu.Epoch - 5, // 156: xatu.ClientMeta.AdditionalEthV1EventsBlockData.slot:type_name -> xatu.Slot - 8, // 157: xatu.ClientMeta.AdditionalEthV1EventsBlockData.propagation:type_name -> xatu.Propagation - 4, // 158: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.epoch:type_name -> xatu.EpochV2 - 6, // 159: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.slot:type_name -> xatu.SlotV2 - 9, // 160: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.propagation:type_name -> xatu.PropagationV2 - 3, // 161: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitData.epoch:type_name -> xatu.Epoch - 4, // 162: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.epoch:type_name -> xatu.EpochV2 - 4, // 163: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.wallclock_epoch:type_name -> xatu.EpochV2 - 6, // 164: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.wallclock_slot:type_name -> xatu.SlotV2 - 3, // 165: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointData.epoch:type_name -> xatu.Epoch - 4, // 166: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointV2Data.epoch:type_name -> xatu.EpochV2 - 3, // 167: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.epoch:type_name -> xatu.Epoch - 5, // 168: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.slot:type_name -> xatu.Slot - 8, // 169: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.propagation:type_name -> xatu.Propagation - 4, // 170: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.epoch:type_name -> xatu.EpochV2 - 6, // 171: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.slot:type_name -> xatu.SlotV2 - 9, // 172: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.propagation:type_name -> xatu.PropagationV2 - 3, // 173: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.epoch:type_name -> xatu.Epoch - 5, // 174: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.slot:type_name -> xatu.Slot - 8, // 175: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.propagation:type_name -> xatu.Propagation - 4, // 176: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.epoch:type_name -> xatu.EpochV2 - 6, // 177: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.slot:type_name -> xatu.SlotV2 - 9, // 178: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.propagation:type_name -> xatu.PropagationV2 - 39, // 179: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofData.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData - 40, // 180: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofV2Data.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data - 3, // 181: xatu.ClientMeta.ForkChoiceSnapshot.request_epoch:type_name -> xatu.Epoch - 5, // 182: xatu.ClientMeta.ForkChoiceSnapshot.request_slot:type_name -> xatu.Slot - 94, // 183: xatu.ClientMeta.ForkChoiceSnapshot.timestamp:type_name -> google.protobuf.Timestamp - 4, // 184: xatu.ClientMeta.ForkChoiceSnapshotV2.request_epoch:type_name -> xatu.EpochV2 - 6, // 185: xatu.ClientMeta.ForkChoiceSnapshotV2.request_slot:type_name -> xatu.SlotV2 - 95, // 186: xatu.ClientMeta.ForkChoiceSnapshotV2.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value - 95, // 187: xatu.ClientMeta.ForkChoiceSnapshotV2.request_duration_ms:type_name -> google.protobuf.UInt64Value - 94, // 188: xatu.ClientMeta.ForkChoiceSnapshotV2.timestamp:type_name -> google.protobuf.Timestamp - 43, // 189: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceData.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshot - 44, // 190: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceV2Data.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 - 43, // 191: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshot - 43, // 192: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshot - 44, // 193: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 - 44, // 194: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 - 4, // 195: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData.epoch:type_name -> xatu.EpochV2 - 6, // 196: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData.slot:type_name -> xatu.SlotV2 - 95, // 197: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.nonce:type_name -> google.protobuf.UInt64Value - 95, // 198: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.gas:type_name -> google.protobuf.UInt64Value - 140, // 199: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.type:type_name -> google.protobuf.UInt32Value - 95, // 200: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.blob_gas:type_name -> google.protobuf.UInt64Value - 3, // 201: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.epoch:type_name -> xatu.Epoch - 5, // 202: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.slot:type_name -> xatu.Slot - 4, // 203: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.epoch:type_name -> xatu.EpochV2 - 6, // 204: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.slot:type_name -> xatu.SlotV2 - 95, // 205: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_count:type_name -> google.protobuf.UInt64Value - 95, // 206: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_total_bytes:type_name -> google.protobuf.UInt64Value - 95, // 207: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_total_bytes_compressed:type_name -> google.protobuf.UInt64Value - 95, // 208: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.total_bytes:type_name -> google.protobuf.UInt64Value - 95, // 209: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.total_bytes_compressed:type_name -> google.protobuf.UInt64Value - 15, // 210: xatu.ClientMeta.AdditionalEthV2BeaconBlockAttesterSlashingData.block:type_name -> xatu.BlockIdentifier - 15, // 211: xatu.ClientMeta.AdditionalEthV2BeaconBlockProposerSlashingData.block:type_name -> xatu.BlockIdentifier - 15, // 212: xatu.ClientMeta.AdditionalEthV2BeaconBlockVoluntaryExitData.block:type_name -> xatu.BlockIdentifier - 15, // 213: xatu.ClientMeta.AdditionalEthV2BeaconBlockDepositData.block:type_name -> xatu.BlockIdentifier - 15, // 214: xatu.ClientMeta.AdditionalEthV2BeaconBlockBLSToExecutionChangeData.block:type_name -> xatu.BlockIdentifier - 15, // 215: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.block:type_name -> xatu.BlockIdentifier - 95, // 216: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.position_in_block:type_name -> google.protobuf.UInt64Value - 15, // 217: xatu.ClientMeta.AdditionalEthV2BeaconBlockWithdrawalData.block:type_name -> xatu.BlockIdentifier - 4, // 218: xatu.ClientMeta.AdditionalBlockprintBlockClassificationData.epoch:type_name -> xatu.EpochV2 - 6, // 219: xatu.ClientMeta.AdditionalBlockprintBlockClassificationData.slot:type_name -> xatu.SlotV2 - 95, // 220: xatu.ClientMeta.AttestationDataSnapshot.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value - 95, // 221: xatu.ClientMeta.AttestationDataSnapshot.request_duration_ms:type_name -> google.protobuf.UInt64Value - 94, // 222: xatu.ClientMeta.AttestationDataSnapshot.timestamp:type_name -> google.protobuf.Timestamp - 24, // 223: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 26, // 224: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 4, // 225: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.epoch:type_name -> xatu.EpochV2 - 6, // 226: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.slot:type_name -> xatu.SlotV2 - 62, // 227: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.Snapshot:type_name -> xatu.ClientMeta.AttestationDataSnapshot - 4, // 228: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.epoch:type_name -> xatu.EpochV2 - 6, // 229: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.slot:type_name -> xatu.SlotV2 - 9, // 230: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.propagation:type_name -> xatu.PropagationV2 - 4, // 231: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.epoch:type_name -> xatu.EpochV2 - 6, // 232: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.slot:type_name -> xatu.SlotV2 - 95, // 233: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_size:type_name -> google.protobuf.UInt64Value - 95, // 234: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_empty_size:type_name -> google.protobuf.UInt64Value - 24, // 235: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 26, // 236: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 6, // 237: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.slot:type_name -> xatu.SlotV2 - 4, // 238: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.epoch:type_name -> xatu.EpochV2 - 9, // 239: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.propagation:type_name -> xatu.PropagationV2 - 11, // 240: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 - 141, // 241: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.libp2p.Peer - 140, // 242: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.subnet:type_name -> google.protobuf.UInt32Value - 142, // 243: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.validated:type_name -> google.protobuf.BoolValue - 4, // 244: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.epoch:type_name -> xatu.EpochV2 - 6, // 245: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.slot:type_name -> xatu.SlotV2 - 15, // 246: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.block:type_name -> xatu.BlockIdentifier - 95, // 247: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.position_in_block:type_name -> google.protobuf.UInt64Value - 4, // 248: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.epoch:type_name -> xatu.EpochV2 - 6, // 249: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.slot:type_name -> xatu.SlotV2 - 24, // 250: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 26, // 251: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 143, // 252: xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 143, // 253: xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 143, // 254: xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 143, // 255: xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 143, // 256: xatu.ClientMeta.AdditionalLibP2PTraceJoinData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 143, // 257: xatu.ClientMeta.AdditionalLibP2PTraceConnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 143, // 258: xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 143, // 259: xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 143, // 260: xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 4, // 261: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.epoch:type_name -> xatu.EpochV2 - 6, // 262: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.slot:type_name -> xatu.SlotV2 - 4, // 263: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_epoch:type_name -> xatu.EpochV2 - 6, // 264: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_slot:type_name -> xatu.SlotV2 - 9, // 265: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.propagation:type_name -> xatu.PropagationV2 - 143, // 266: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 144, // 267: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.topic:type_name -> google.protobuf.StringValue - 140, // 268: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_size:type_name -> google.protobuf.UInt32Value - 144, // 269: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_id:type_name -> google.protobuf.StringValue - 4, // 270: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData.epoch:type_name -> xatu.EpochV2 - 4, // 271: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData.epoch:type_name -> xatu.EpochV2 - 79, // 272: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.source:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData - 80, // 273: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.target:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData - 6, // 274: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.slot:type_name -> xatu.SlotV2 - 4, // 275: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.epoch:type_name -> xatu.EpochV2 - 9, // 276: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.propagation:type_name -> xatu.PropagationV2 - 11, // 277: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 - 4, // 278: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_epoch:type_name -> xatu.EpochV2 - 6, // 279: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_slot:type_name -> xatu.SlotV2 - 143, // 280: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 144, // 281: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.topic:type_name -> google.protobuf.StringValue - 140, // 282: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_size:type_name -> google.protobuf.UInt32Value - 144, // 283: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_id:type_name -> google.protobuf.StringValue - 4, // 284: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.epoch:type_name -> xatu.EpochV2 - 6, // 285: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.slot:type_name -> xatu.SlotV2 - 4, // 286: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 - 6, // 287: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_slot:type_name -> xatu.SlotV2 - 9, // 288: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.propagation:type_name -> xatu.PropagationV2 - 143, // 289: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 144, // 290: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.topic:type_name -> google.protobuf.StringValue - 140, // 291: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_size:type_name -> google.protobuf.UInt32Value - 144, // 292: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_id:type_name -> google.protobuf.StringValue - 4, // 293: xatu.ClientMeta.AdditionalEthV1ValidatorsData.epoch:type_name -> xatu.EpochV2 - 7, // 294: xatu.ClientMeta.Ethereum.Execution.fork_id:type_name -> xatu.ForkID - 94, // 295: xatu.ServerMeta.Event.received_date_time:type_name -> google.protobuf.Timestamp - 88, // 296: xatu.ServerMeta.Client.geo:type_name -> xatu.ServerMeta.Geo - 88, // 297: xatu.ServerMeta.Peer.geo:type_name -> xatu.ServerMeta.Geo - 90, // 298: xatu.ServerMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.ServerMeta.Peer - 90, // 299: xatu.ServerMeta.AdditionalLibp2PTraceConnectedData.peer:type_name -> xatu.ServerMeta.Peer - 90, // 300: xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData.peer:type_name -> xatu.ServerMeta.Peer - 1, // 301: xatu.EventIngester.CreateEvents:input_type -> xatu.CreateEventsRequest - 2, // 302: xatu.EventIngester.CreateEvents:output_type -> xatu.CreateEventsResponse - 302, // [302:303] is the sub-list for method output_type - 301, // [301:302] is the sub-list for method input_type - 301, // [301:301] is the sub-list for extension type_name - 301, // [301:301] is the sub-list for extension extendee - 0, // [0:301] is the sub-list for field type_name + 86, // 71: xatu.ClientMeta.libp2p_trace_gossipsub_beacon_data_column_sidecar:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData + 90, // 72: xatu.ServerMeta.event:type_name -> xatu.ServerMeta.Event + 92, // 73: xatu.ServerMeta.client:type_name -> xatu.ServerMeta.Client + 94, // 74: xatu.ServerMeta.BEACON_P2P_ATTESTATION:type_name -> xatu.ServerMeta.AdditionalBeaconP2PAttestationData + 95, // 75: xatu.ServerMeta.LIBP2P_TRACE_CONNECTED:type_name -> xatu.ServerMeta.AdditionalLibp2PTraceConnectedData + 96, // 76: xatu.ServerMeta.LIBP2P_TRACE_DISCONNECTED:type_name -> xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData + 16, // 77: xatu.Meta.client:type_name -> xatu.ClientMeta + 17, // 78: xatu.Meta.server:type_name -> xatu.ServerMeta + 0, // 79: xatu.Event.name:type_name -> xatu.Event.Name + 97, // 80: xatu.Event.date_time:type_name -> google.protobuf.Timestamp + 19, // 81: xatu.DecoratedEvent.event:type_name -> xatu.Event + 18, // 82: xatu.DecoratedEvent.meta:type_name -> xatu.Meta + 104, // 83: xatu.DecoratedEvent.eth_v1_events_attestation:type_name -> xatu.eth.v1.Attestation + 105, // 84: xatu.DecoratedEvent.eth_v1_events_block:type_name -> xatu.eth.v1.EventBlock + 100, // 85: xatu.DecoratedEvent.eth_v1_events_chain_reorg:type_name -> xatu.eth.v1.EventChainReorg + 106, // 86: xatu.DecoratedEvent.eth_v1_events_finalized_checkpoint:type_name -> xatu.eth.v1.EventFinalizedCheckpoint + 107, // 87: xatu.DecoratedEvent.eth_v1_events_head:type_name -> xatu.eth.v1.EventHead + 108, // 88: xatu.DecoratedEvent.eth_v1_events_voluntary_exit:type_name -> xatu.eth.v1.EventVoluntaryExit + 109, // 89: xatu.DecoratedEvent.eth_v1_events_contribution_and_proof:type_name -> xatu.eth.v1.EventContributionAndProof + 110, // 90: xatu.DecoratedEvent.eth_v2_beacon_block:type_name -> xatu.eth.v2.EventBlock + 99, // 91: xatu.DecoratedEvent.eth_v1_fork_choice:type_name -> xatu.eth.v1.ForkChoice + 12, // 92: xatu.DecoratedEvent.eth_v1_fork_choice_reorg:type_name -> xatu.DebugForkChoiceReorg + 111, // 93: xatu.DecoratedEvent.eth_v1_beacon_committee:type_name -> xatu.eth.v1.Committee + 112, // 94: xatu.DecoratedEvent.eth_v1_validator_attestation_data:type_name -> xatu.eth.v1.AttestationDataV2 + 113, // 95: xatu.DecoratedEvent.eth_v1_events_attestation_v2:type_name -> xatu.eth.v1.AttestationV2 + 114, // 96: xatu.DecoratedEvent.eth_v1_events_block_v2:type_name -> xatu.eth.v1.EventBlockV2 + 102, // 97: xatu.DecoratedEvent.eth_v1_events_chain_reorg_v2:type_name -> xatu.eth.v1.EventChainReorgV2 + 115, // 98: xatu.DecoratedEvent.eth_v1_events_finalized_checkpoint_v2:type_name -> xatu.eth.v1.EventFinalizedCheckpointV2 + 116, // 99: xatu.DecoratedEvent.eth_v1_events_head_v2:type_name -> xatu.eth.v1.EventHeadV2 + 117, // 100: xatu.DecoratedEvent.eth_v1_events_voluntary_exit_v2:type_name -> xatu.eth.v1.EventVoluntaryExitV2 + 118, // 101: xatu.DecoratedEvent.eth_v1_events_contribution_and_proof_v2:type_name -> xatu.eth.v1.EventContributionAndProofV2 + 119, // 102: xatu.DecoratedEvent.eth_v2_beacon_block_v2:type_name -> xatu.eth.v2.EventBlockV2 + 101, // 103: xatu.DecoratedEvent.eth_v1_fork_choice_v2:type_name -> xatu.eth.v1.ForkChoiceV2 + 13, // 104: xatu.DecoratedEvent.eth_v1_fork_choice_reorg_v2:type_name -> xatu.DebugForkChoiceReorgV2 + 120, // 105: xatu.DecoratedEvent.eth_v2_beacon_block_attester_slashing:type_name -> xatu.eth.v1.AttesterSlashingV2 + 121, // 106: xatu.DecoratedEvent.eth_v2_beacon_block_proposer_slashing:type_name -> xatu.eth.v1.ProposerSlashingV2 + 122, // 107: xatu.DecoratedEvent.eth_v2_beacon_block_voluntary_exit:type_name -> xatu.eth.v1.SignedVoluntaryExitV2 + 123, // 108: xatu.DecoratedEvent.eth_v2_beacon_block_deposit:type_name -> xatu.eth.v1.DepositV2 + 124, // 109: xatu.DecoratedEvent.eth_v2_beacon_block_bls_to_execution_change:type_name -> xatu.eth.v2.SignedBLSToExecutionChangeV2 + 125, // 110: xatu.DecoratedEvent.eth_v2_beacon_block_execution_transaction:type_name -> xatu.eth.v1.Transaction + 126, // 111: xatu.DecoratedEvent.eth_v2_beacon_block_withdrawal:type_name -> xatu.eth.v1.WithdrawalV2 + 127, // 112: xatu.DecoratedEvent.eth_v1_events_blob_sidecar:type_name -> xatu.eth.v1.EventBlobSidecar + 128, // 113: xatu.DecoratedEvent.blockprint_block_classification:type_name -> xatu.blockprint.BlockClassification + 129, // 114: xatu.DecoratedEvent.eth_v1_beacon_block_blob_sidecar:type_name -> xatu.eth.v1.BlobSidecar + 113, // 115: xatu.DecoratedEvent.beacon_p2p_attestation:type_name -> xatu.eth.v1.AttestationV2 + 130, // 116: xatu.DecoratedEvent.eth_v1_proposer_duty:type_name -> xatu.eth.v1.ProposerDuty + 131, // 117: xatu.DecoratedEvent.eth_v2_beacon_block_elaborated_attestation:type_name -> xatu.eth.v1.ElaboratedAttestation + 132, // 118: xatu.DecoratedEvent.libp2p_trace_add_peer:type_name -> xatu.libp2p.AddPeer + 133, // 119: xatu.DecoratedEvent.libp2p_trace_remove_peer:type_name -> xatu.libp2p.RemovePeer + 134, // 120: xatu.DecoratedEvent.libp2p_trace_recv_rpc:type_name -> xatu.libp2p.RecvRPC + 135, // 121: xatu.DecoratedEvent.libp2p_trace_send_rpc:type_name -> xatu.libp2p.SendRPC + 136, // 122: xatu.DecoratedEvent.libp2p_trace_join:type_name -> xatu.libp2p.Join + 137, // 123: xatu.DecoratedEvent.libp2p_trace_connected:type_name -> xatu.libp2p.Connected + 138, // 124: xatu.DecoratedEvent.libp2p_trace_disconnected:type_name -> xatu.libp2p.Disconnected + 139, // 125: xatu.DecoratedEvent.libp2p_trace_handle_metadata:type_name -> xatu.libp2p.HandleMetadata + 140, // 126: xatu.DecoratedEvent.libp2p_trace_handle_status:type_name -> xatu.libp2p.HandleStatus + 141, // 127: xatu.DecoratedEvent.libp2p_trace_gossipsub_beacon_block:type_name -> xatu.libp2p.gossipsub.eth.BeaconBlock + 104, // 128: xatu.DecoratedEvent.libp2p_trace_gossipsub_beacon_attestation:type_name -> xatu.eth.v1.Attestation + 142, // 129: xatu.DecoratedEvent.libp2p_trace_gossipsub_blob_sidecar:type_name -> xatu.libp2p.gossipsub.eth.BlobSidecar + 14, // 130: xatu.DecoratedEvent.eth_v1_validators:type_name -> xatu.Validators + 143, // 131: xatu.DecoratedEvent.libp2p_trace_gossipsub_beacon_data_column_sidecar:type_name -> xatu.libp2p.gossipsub.eth.DataColumnSidecar + 87, // 132: xatu.ClientMeta.Ethereum.network:type_name -> xatu.ClientMeta.Ethereum.Network + 88, // 133: xatu.ClientMeta.Ethereum.execution:type_name -> xatu.ClientMeta.Ethereum.Execution + 89, // 134: xatu.ClientMeta.Ethereum.consensus:type_name -> xatu.ClientMeta.Ethereum.Consensus + 3, // 135: xatu.ClientMeta.AdditionalEthV1AttestationSourceData.epoch:type_name -> xatu.Epoch + 4, // 136: xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data.epoch:type_name -> xatu.EpochV2 + 3, // 137: xatu.ClientMeta.AdditionalEthV1AttestationTargetData.epoch:type_name -> xatu.Epoch + 4, // 138: xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data.epoch:type_name -> xatu.EpochV2 + 23, // 139: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceData + 25, // 140: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetData + 5, // 141: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.slot:type_name -> xatu.Slot + 3, // 142: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.epoch:type_name -> xatu.Epoch + 8, // 143: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.propagation:type_name -> xatu.Propagation + 10, // 144: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.attesting_validator:type_name -> xatu.AttestingValidator + 24, // 145: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 26, // 146: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 6, // 147: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.slot:type_name -> xatu.SlotV2 + 4, // 148: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.epoch:type_name -> xatu.EpochV2 + 9, // 149: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.propagation:type_name -> xatu.PropagationV2 + 11, // 150: xatu.ClientMeta.AdditionalEthV1EventsAttestationV2Data.attesting_validator:type_name -> xatu.AttestingValidatorV2 + 3, // 151: xatu.ClientMeta.AdditionalEthV1EventsHeadData.epoch:type_name -> xatu.Epoch + 5, // 152: xatu.ClientMeta.AdditionalEthV1EventsHeadData.slot:type_name -> xatu.Slot + 8, // 153: xatu.ClientMeta.AdditionalEthV1EventsHeadData.propagation:type_name -> xatu.Propagation + 4, // 154: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.epoch:type_name -> xatu.EpochV2 + 6, // 155: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.slot:type_name -> xatu.SlotV2 + 9, // 156: xatu.ClientMeta.AdditionalEthV1EventsHeadV2Data.propagation:type_name -> xatu.PropagationV2 + 3, // 157: xatu.ClientMeta.AdditionalEthV1EventsBlockData.epoch:type_name -> xatu.Epoch + 5, // 158: xatu.ClientMeta.AdditionalEthV1EventsBlockData.slot:type_name -> xatu.Slot + 8, // 159: xatu.ClientMeta.AdditionalEthV1EventsBlockData.propagation:type_name -> xatu.Propagation + 4, // 160: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.epoch:type_name -> xatu.EpochV2 + 6, // 161: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.slot:type_name -> xatu.SlotV2 + 9, // 162: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.propagation:type_name -> xatu.PropagationV2 + 3, // 163: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitData.epoch:type_name -> xatu.Epoch + 4, // 164: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.epoch:type_name -> xatu.EpochV2 + 4, // 165: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.wallclock_epoch:type_name -> xatu.EpochV2 + 6, // 166: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.wallclock_slot:type_name -> xatu.SlotV2 + 3, // 167: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointData.epoch:type_name -> xatu.Epoch + 4, // 168: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointV2Data.epoch:type_name -> xatu.EpochV2 + 3, // 169: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.epoch:type_name -> xatu.Epoch + 5, // 170: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.slot:type_name -> xatu.Slot + 8, // 171: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.propagation:type_name -> xatu.Propagation + 4, // 172: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.epoch:type_name -> xatu.EpochV2 + 6, // 173: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.slot:type_name -> xatu.SlotV2 + 9, // 174: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.propagation:type_name -> xatu.PropagationV2 + 3, // 175: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.epoch:type_name -> xatu.Epoch + 5, // 176: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.slot:type_name -> xatu.Slot + 8, // 177: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.propagation:type_name -> xatu.Propagation + 4, // 178: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.epoch:type_name -> xatu.EpochV2 + 6, // 179: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.slot:type_name -> xatu.SlotV2 + 9, // 180: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.propagation:type_name -> xatu.PropagationV2 + 39, // 181: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofData.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData + 40, // 182: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofV2Data.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data + 3, // 183: xatu.ClientMeta.ForkChoiceSnapshot.request_epoch:type_name -> xatu.Epoch + 5, // 184: xatu.ClientMeta.ForkChoiceSnapshot.request_slot:type_name -> xatu.Slot + 97, // 185: xatu.ClientMeta.ForkChoiceSnapshot.timestamp:type_name -> google.protobuf.Timestamp + 4, // 186: xatu.ClientMeta.ForkChoiceSnapshotV2.request_epoch:type_name -> xatu.EpochV2 + 6, // 187: xatu.ClientMeta.ForkChoiceSnapshotV2.request_slot:type_name -> xatu.SlotV2 + 98, // 188: xatu.ClientMeta.ForkChoiceSnapshotV2.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value + 98, // 189: xatu.ClientMeta.ForkChoiceSnapshotV2.request_duration_ms:type_name -> google.protobuf.UInt64Value + 97, // 190: xatu.ClientMeta.ForkChoiceSnapshotV2.timestamp:type_name -> google.protobuf.Timestamp + 43, // 191: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceData.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshot + 44, // 192: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceV2Data.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 + 43, // 193: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshot + 43, // 194: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshot + 44, // 195: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 + 44, // 196: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 + 4, // 197: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData.epoch:type_name -> xatu.EpochV2 + 6, // 198: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData.slot:type_name -> xatu.SlotV2 + 98, // 199: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.nonce:type_name -> google.protobuf.UInt64Value + 98, // 200: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.gas:type_name -> google.protobuf.UInt64Value + 144, // 201: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.type:type_name -> google.protobuf.UInt32Value + 98, // 202: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.blob_gas:type_name -> google.protobuf.UInt64Value + 3, // 203: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.epoch:type_name -> xatu.Epoch + 5, // 204: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.slot:type_name -> xatu.Slot + 4, // 205: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.epoch:type_name -> xatu.EpochV2 + 6, // 206: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.slot:type_name -> xatu.SlotV2 + 98, // 207: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_count:type_name -> google.protobuf.UInt64Value + 98, // 208: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_total_bytes:type_name -> google.protobuf.UInt64Value + 98, // 209: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_total_bytes_compressed:type_name -> google.protobuf.UInt64Value + 98, // 210: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.total_bytes:type_name -> google.protobuf.UInt64Value + 98, // 211: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.total_bytes_compressed:type_name -> google.protobuf.UInt64Value + 15, // 212: xatu.ClientMeta.AdditionalEthV2BeaconBlockAttesterSlashingData.block:type_name -> xatu.BlockIdentifier + 15, // 213: xatu.ClientMeta.AdditionalEthV2BeaconBlockProposerSlashingData.block:type_name -> xatu.BlockIdentifier + 15, // 214: xatu.ClientMeta.AdditionalEthV2BeaconBlockVoluntaryExitData.block:type_name -> xatu.BlockIdentifier + 15, // 215: xatu.ClientMeta.AdditionalEthV2BeaconBlockDepositData.block:type_name -> xatu.BlockIdentifier + 15, // 216: xatu.ClientMeta.AdditionalEthV2BeaconBlockBLSToExecutionChangeData.block:type_name -> xatu.BlockIdentifier + 15, // 217: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.block:type_name -> xatu.BlockIdentifier + 98, // 218: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.position_in_block:type_name -> google.protobuf.UInt64Value + 15, // 219: xatu.ClientMeta.AdditionalEthV2BeaconBlockWithdrawalData.block:type_name -> xatu.BlockIdentifier + 4, // 220: xatu.ClientMeta.AdditionalBlockprintBlockClassificationData.epoch:type_name -> xatu.EpochV2 + 6, // 221: xatu.ClientMeta.AdditionalBlockprintBlockClassificationData.slot:type_name -> xatu.SlotV2 + 98, // 222: xatu.ClientMeta.AttestationDataSnapshot.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value + 98, // 223: xatu.ClientMeta.AttestationDataSnapshot.request_duration_ms:type_name -> google.protobuf.UInt64Value + 97, // 224: xatu.ClientMeta.AttestationDataSnapshot.timestamp:type_name -> google.protobuf.Timestamp + 24, // 225: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 26, // 226: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 4, // 227: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.epoch:type_name -> xatu.EpochV2 + 6, // 228: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.slot:type_name -> xatu.SlotV2 + 62, // 229: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.Snapshot:type_name -> xatu.ClientMeta.AttestationDataSnapshot + 4, // 230: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.epoch:type_name -> xatu.EpochV2 + 6, // 231: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.slot:type_name -> xatu.SlotV2 + 9, // 232: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.propagation:type_name -> xatu.PropagationV2 + 4, // 233: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.epoch:type_name -> xatu.EpochV2 + 6, // 234: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.slot:type_name -> xatu.SlotV2 + 98, // 235: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_size:type_name -> google.protobuf.UInt64Value + 98, // 236: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_empty_size:type_name -> google.protobuf.UInt64Value + 24, // 237: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 26, // 238: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 6, // 239: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.slot:type_name -> xatu.SlotV2 + 4, // 240: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.epoch:type_name -> xatu.EpochV2 + 9, // 241: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.propagation:type_name -> xatu.PropagationV2 + 11, // 242: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 + 145, // 243: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.libp2p.Peer + 144, // 244: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.subnet:type_name -> google.protobuf.UInt32Value + 146, // 245: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.validated:type_name -> google.protobuf.BoolValue + 4, // 246: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.epoch:type_name -> xatu.EpochV2 + 6, // 247: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.slot:type_name -> xatu.SlotV2 + 15, // 248: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.block:type_name -> xatu.BlockIdentifier + 98, // 249: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.position_in_block:type_name -> google.protobuf.UInt64Value + 4, // 250: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.epoch:type_name -> xatu.EpochV2 + 6, // 251: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.slot:type_name -> xatu.SlotV2 + 24, // 252: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 26, // 253: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 147, // 254: xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 147, // 255: xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 147, // 256: xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 147, // 257: xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 147, // 258: xatu.ClientMeta.AdditionalLibP2PTraceJoinData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 147, // 259: xatu.ClientMeta.AdditionalLibP2PTraceConnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 147, // 260: xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 147, // 261: xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 147, // 262: xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 4, // 263: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.epoch:type_name -> xatu.EpochV2 + 6, // 264: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.slot:type_name -> xatu.SlotV2 + 4, // 265: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_epoch:type_name -> xatu.EpochV2 + 6, // 266: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_slot:type_name -> xatu.SlotV2 + 9, // 267: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.propagation:type_name -> xatu.PropagationV2 + 147, // 268: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 148, // 269: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.topic:type_name -> google.protobuf.StringValue + 144, // 270: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_size:type_name -> google.protobuf.UInt32Value + 148, // 271: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_id:type_name -> google.protobuf.StringValue + 4, // 272: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData.epoch:type_name -> xatu.EpochV2 + 4, // 273: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData.epoch:type_name -> xatu.EpochV2 + 79, // 274: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.source:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData + 80, // 275: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.target:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData + 6, // 276: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.slot:type_name -> xatu.SlotV2 + 4, // 277: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.epoch:type_name -> xatu.EpochV2 + 9, // 278: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.propagation:type_name -> xatu.PropagationV2 + 11, // 279: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 + 4, // 280: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_epoch:type_name -> xatu.EpochV2 + 6, // 281: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_slot:type_name -> xatu.SlotV2 + 147, // 282: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 148, // 283: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.topic:type_name -> google.protobuf.StringValue + 144, // 284: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_size:type_name -> google.protobuf.UInt32Value + 148, // 285: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_id:type_name -> google.protobuf.StringValue + 4, // 286: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.epoch:type_name -> xatu.EpochV2 + 6, // 287: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.slot:type_name -> xatu.SlotV2 + 4, // 288: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 + 6, // 289: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_slot:type_name -> xatu.SlotV2 + 9, // 290: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.propagation:type_name -> xatu.PropagationV2 + 147, // 291: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 148, // 292: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.topic:type_name -> google.protobuf.StringValue + 144, // 293: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_size:type_name -> google.protobuf.UInt32Value + 148, // 294: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_id:type_name -> google.protobuf.StringValue + 4, // 295: xatu.ClientMeta.AdditionalEthV1ValidatorsData.epoch:type_name -> xatu.EpochV2 + 4, // 296: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarSourceData.epoch:type_name -> xatu.EpochV2 + 4, // 297: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarTargetData.epoch:type_name -> xatu.EpochV2 + 6, // 298: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData.slot:type_name -> xatu.SlotV2 + 4, // 299: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData.epoch:type_name -> xatu.EpochV2 + 9, // 300: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData.propagation:type_name -> xatu.PropagationV2 + 4, // 301: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 + 6, // 302: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData.wallclock_slot:type_name -> xatu.SlotV2 + 147, // 303: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 148, // 304: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData.topic:type_name -> google.protobuf.StringValue + 144, // 305: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData.message_size:type_name -> google.protobuf.UInt32Value + 148, // 306: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData.message_id:type_name -> google.protobuf.StringValue + 7, // 307: xatu.ClientMeta.Ethereum.Execution.fork_id:type_name -> xatu.ForkID + 97, // 308: xatu.ServerMeta.Event.received_date_time:type_name -> google.protobuf.Timestamp + 91, // 309: xatu.ServerMeta.Client.geo:type_name -> xatu.ServerMeta.Geo + 91, // 310: xatu.ServerMeta.Peer.geo:type_name -> xatu.ServerMeta.Geo + 93, // 311: xatu.ServerMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.ServerMeta.Peer + 93, // 312: xatu.ServerMeta.AdditionalLibp2PTraceConnectedData.peer:type_name -> xatu.ServerMeta.Peer + 93, // 313: xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData.peer:type_name -> xatu.ServerMeta.Peer + 1, // 314: xatu.EventIngester.CreateEvents:input_type -> xatu.CreateEventsRequest + 2, // 315: xatu.EventIngester.CreateEvents:output_type -> xatu.CreateEventsResponse + 315, // [315:316] is the sub-list for method output_type + 314, // [314:315] is the sub-list for method input_type + 314, // [314:314] is the sub-list for extension type_name + 314, // [314:314] is the sub-list for extension extendee + 0, // [0:314] is the sub-list for field type_name } func init() { file_pkg_proto_xatu_event_ingester_proto_init() } @@ -11281,7 +11619,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClientMeta_Ethereum_Network); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarSourceData); i { case 0: return &v.state case 1: @@ -11293,7 +11631,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClientMeta_Ethereum_Execution); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarTargetData); i { case 0: return &v.state case 1: @@ -11305,7 +11643,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClientMeta_Ethereum_Consensus); i { + switch v := v.(*ClientMeta_AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData); i { case 0: return &v.state case 1: @@ -11317,7 +11655,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServerMeta_Event); i { + switch v := v.(*ClientMeta_Ethereum_Network); i { case 0: return &v.state case 1: @@ -11329,7 +11667,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServerMeta_Geo); i { + switch v := v.(*ClientMeta_Ethereum_Execution); i { case 0: return &v.state case 1: @@ -11341,7 +11679,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServerMeta_Client); i { + switch v := v.(*ClientMeta_Ethereum_Consensus); i { case 0: return &v.state case 1: @@ -11353,7 +11691,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServerMeta_Peer); i { + switch v := v.(*ServerMeta_Event); i { case 0: return &v.state case 1: @@ -11365,7 +11703,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServerMeta_AdditionalBeaconP2PAttestationData); i { + switch v := v.(*ServerMeta_Geo); i { case 0: return &v.state case 1: @@ -11377,7 +11715,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServerMeta_AdditionalLibp2PTraceConnectedData); i { + switch v := v.(*ServerMeta_Client); i { case 0: return &v.state case 1: @@ -11389,6 +11727,42 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServerMeta_Peer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_xatu_event_ingester_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServerMeta_AdditionalBeaconP2PAttestationData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_xatu_event_ingester_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServerMeta_AdditionalLibp2PTraceConnectedData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_xatu_event_ingester_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ServerMeta_AdditionalLibp2PTraceDisconnectedData); i { case 0: return &v.state @@ -11452,6 +11826,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { (*ClientMeta_Libp2PTraceGossipsubBeaconAttestation)(nil), (*ClientMeta_Libp2PTraceGossipsubBlobSidecar)(nil), (*ClientMeta_EthV1Validators)(nil), + (*ClientMeta_Libp2PTraceGossipsubBeaconDataColumnSidecar)(nil), } file_pkg_proto_xatu_event_ingester_proto_msgTypes[16].OneofWrappers = []interface{}{ (*ServerMeta_BEACON_P2P_ATTESTATION)(nil), @@ -11509,6 +11884,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { (*DecoratedEvent_Libp2PTraceGossipsubBeaconAttestation)(nil), (*DecoratedEvent_Libp2PTraceGossipsubBlobSidecar)(nil), (*DecoratedEvent_EthV1Validators)(nil), + (*DecoratedEvent_Libp2PTraceGossipsubBeaconDataColumnSidecar)(nil), } type x struct{} out := protoimpl.TypeBuilder{ @@ -11516,7 +11892,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pkg_proto_xatu_event_ingester_proto_rawDesc, NumEnums: 1, - NumMessages: 93, + NumMessages: 96, NumExtensions: 0, NumServices: 1, }, diff --git a/pkg/proto/xatu/event_ingester.proto b/pkg/proto/xatu/event_ingester.proto index da7d00b4..e6b82636 100644 --- a/pkg/proto/xatu/event_ingester.proto +++ b/pkg/proto/xatu/event_ingester.proto @@ -872,7 +872,7 @@ message ClientMeta { // Source contains information for the best currently justified checkpoint. AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData source = 1; - // Target contains information of the block at the start of the current + // Target contains information of the attestation at the start of the current // epoch. AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData target = 2; @@ -900,13 +900,13 @@ message ClientMeta { // Metadata contains additional trace event metadata. xatu.libp2p.TraceEventMetadata metadata = 9; - // Topic is the gossip sub topic the beacon block was received on. + // Topic is the gossip sub topic the attestation was received on. google.protobuf.StringValue topic = 10; - // MessageSize is the size of the beacon block message in bytes. + // MessageSize is the size of the attestation message in bytes. google.protobuf.UInt32Value message_size = 11 [ json_name = "message_size" ]; - // MessageID is a unique identifier for the beacon block message. + // MessageID is a unique identifier for the attestation message. google.protobuf.StringValue message_id = 12 [ json_name = "message_id" ]; } @@ -944,6 +944,47 @@ message ClientMeta { EpochV2 epoch = 1; } + + + message AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarSourceData { + // Epoch contains the epoch information for the source. + EpochV2 epoch = 1; + } + + message AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarTargetData { + // Epoch contains the epoch information for the target. + EpochV2 epoch = 1; + } + + message AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData { + // Slot contains the slot information for the data column sidecar. + SlotV2 slot = 1; + + // Epoch contains the epoch information for the data column sidecar. + EpochV2 epoch = 2; + + // Propagation contains information about the propagation of the + // data column sidecar. + PropagationV2 propagation = 3; + + // WallclockEpoch contains the epoch information for the data column sidecar on the wall clock when the data column sidecar was received. + EpochV2 wallclock_epoch = 4 [ json_name = "wallclock_epoch" ]; + + // WallclockSlot contains the slot information for the data column sidecar on the wall clock when the data column sidecar was received. + SlotV2 wallclock_slot = 5 [ json_name = "wallclock_slot" ]; + + // Metadata contains additional trace event metadata. + xatu.libp2p.TraceEventMetadata metadata = 6; + + // Topic is the gossip sub topic the data column sidecar was received on. + google.protobuf.StringValue topic = 7; + + // MessageSize is the size of the data column sidecar message in bytes. + google.protobuf.UInt32Value message_size = 8 [ json_name = "message_size" ]; + + // MessageID is a unique identifier for the data column sidecar message. + google.protobuf.StringValue message_id = 9 [ json_name = "message_id" ]; + } // AdditionalData contains additional, computed data as set by the client // about the event. oneof AdditionalData { @@ -1129,6 +1170,8 @@ message ClientMeta { AdditionalLibP2PTraceGossipSubBlobSidecarData libp2p_trace_gossipsub_blob_sidecar = 59 [ json_name = "LIBP2P_TRACE_GOSSIPSUB_BLOB_SIDECAR" ]; // AdditionalEthV1ValidatorsData contains additional data about the eth v1 validators. AdditionalEthV1ValidatorsData eth_v1_validators = 60 [ json_name = "BEACON_API_ETH_V1_BEACON_VALIDATORS" ]; + // AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData contains additional data about the gossip sub beacon data column sidecar event. + AdditionalLibP2PTraceGossipSubBeaconDataColumnSidecarData libp2p_trace_gossipsub_beacon_data_column_sidecar = 61 [ json_name = "LIBP2P_TRACE_GOSSIPSUB_BEACON_DATA_COLUMN_SIDECAR" ]; } } @@ -1272,6 +1315,7 @@ message Event { LIBP2P_TRACE_GOSSIPSUB_BEACON_ATTESTATION = 50; LIBP2P_TRACE_GOSSIPSUB_BLOB_SIDECAR = 51; BEACON_API_ETH_V1_BEACON_VALIDATORS = 52; + LIBP2P_TRACE_GOSSIPSUB_BEACON_DATA_COLUMN_SIDECAR = 53; } // Name is the name of the event. Name name = 1; @@ -1407,5 +1451,7 @@ message DecoratedEvent { [ json_name = "LIBP2P_TRACE_GOSSIPSUB_BLOB_SIDECAR" ]; Validators eth_v1_validators = 52 [ json_name = "BEACON_API_ETH_V1_BEACON_VALIDATORS" ]; + xatu.libp2p.gossipsub.eth.DataColumnSidecar libp2p_trace_gossipsub_beacon_data_column_sidecar = 53 + [ json_name = "LIBP2P_TRACE_GOSSIPSUB_BEACON_DATA_COLUMN_SIDECAR" ]; }; } diff --git a/pkg/server/service/event-ingester/event/event.go b/pkg/server/service/event-ingester/event/event.go index 6faa3e71..0bd64989 100644 --- a/pkg/server/service/event-ingester/event/event.go +++ b/pkg/server/service/event-ingester/event/event.go @@ -20,57 +20,58 @@ import ( type Type string var ( - TypeUnknown Type = "unknown" - TypeBeaconETHV1EventsBlock Type = v1.EventsBlockType - TypeBeaconETHV1EventsBlockV2 Type = v1.EventsBlockV2Type - TypeBeaconETHV1EventsChainReorg Type = v1.EventsChainReorgType - TypeBeaconETHV1EventsChainReorgV2 Type = v1.EventsChainReorgV2Type - TypeBeaconETHV1EventsFinalizedCheckpoint Type = v1.EventsFinalizedCheckpointType - TypeBeaconETHV1EventsFinalizedCheckpointV2 Type = v1.EventsFinalizedCheckpointV2Type - TypeBeaconETHV1EventsHead Type = v1.EventsHeadType - TypeBeaconETHV1EventsHeadV2 Type = v1.EventsHeadV2Type - TypeBeaconETHV1EventsVoluntaryExit Type = v1.EventsVoluntaryExitType - TypeBeaconETHV1EventsVoluntaryExitV2 Type = v1.EventsVoluntaryExitV2Type - TypeBeaconETHV1EventsAttestation Type = v1.EventsAttestationType - TypeBeaconETHV1EventsAttestationV2 Type = v1.EventsAttestationV2Type - TypeBeaconETHV1EventsContributionAndProof Type = v1.EventsContributionAndProofType - TypeBeaconETHV1EventsContributionAndProofV2 Type = v1.EventsContributionAndProofV2Type - TypeMempoolTransaction Type = mempool.TransactionType - TypeMempoolTransactionV2 Type = mempool.TransactionV2Type - TypeBeaconETHV2BeaconBlock Type = v2.BeaconBlockType - TypeBeaconETHV2BeaconBlockV2 Type = v2.BeaconBlockV2Type - TypeDebugForkChoice Type = v1.DebugForkChoiceType - TypeDebugForkChoiceV2 Type = v1.DebugForkChoiceV2Type - TypeDebugForkChoiceReorg Type = v1.DebugForkChoiceReorgType - TypeDebugForkChoiceReorgV2 Type = v1.DebugForkChoiceReorgV2Type - TypeBeaconEthV1BeaconCommittee Type = v1.BeaconCommitteeType - TypeBeaconEthV1ValidatorAttestationData Type = v1.ValidatorAttestationDataType - TypeBeaconEthV2BeaconBlockAttesterSlashing Type = v2.BeaconBlockAttesterSlashingType - TypeBeaconEthV2BeaconBlockProposerSlashing Type = v2.BeaconBlockProposerSlashingType - TypeBeaconEthV2BeaconBlockVoluntaryExit Type = v2.BeaconBlockVoluntaryExitType - TypeBeaconEthV2BeaconBlockDeposit Type = v2.BeaconBlockDepositType - TypeBeaconEthV2BeaconExecutionTransaction Type = v2.BeaconBlockExecutionTransactionType - TypeBeaconEthV2BeaconBLSToExecutionChange Type = v2.BeaconBlockBLSToExecutionChangeType - TypeBeaconEthV2BeaconWithdrawal Type = v2.BeaconBlockWithdrawalType - TypeBlockprintBlockClassification Type = blockprint.BlockClassificationType - TypeBeaconETHV1EventsBlobSidecar Type = v1.EventsBlobSidecarType - TypeBeaconETHV1BeaconBlobSidecar Type = v1.BeaconBlobSidecarType - TypeBeaconEthV1ProposerDuty Type = v1.BeaconProposerDutyType - TypeBeaconP2PAttestation Type = v1.BeaconP2PAttestationType - TypeBeaconEthV2BeaconElaboratedAttestation Type = v2.BeaconBlockElaboratedAttestationType - TypeLibP2PTraceAddPeer Type = Type(libp2p.TraceAddPeerType) - TypeLibP2PTraceConnected Type = Type(libp2p.TraceConnectedType) - TypeLibP2PTraceJoin Type = Type(libp2p.TraceJoinType) - TypeLibP2PTraceDisconnected Type = Type(libp2p.TraceDisconnectedType) - TypeLibP2PTraceRemovePeer Type = Type(libp2p.TraceRemovePeerType) - TypeLibP2PTraceRecvRPC Type = Type(libp2p.TraceRecvRPCType) - TypeLibP2PTraceSendRPC Type = Type(libp2p.TraceSendRPCType) - TypeLibP2PTraceHandleStatus Type = Type(libp2p.TraceHandleStatusType) - TypeLibP2PTraceHandleMetadata Type = Type(libp2p.TraceHandleMetadataType) - TypeLibP2PTraceGossipSubBeaconBlock Type = Type(libp2p.TraceGossipSubBeaconBlockType) - TypeLibP2PTraceGossipSubBeaconAttestation Type = Type(libp2p.TraceGossipSubBeaconAttestationType) - TypeLibP2PTraceGossipSubBlobSidecar Type = Type(libp2p.TraceGossipSubBlobSidecarType) - TypeBeaconETHV1BeaconValidators Type = Type(v1.BeaconValidatorsType) + TypeUnknown Type = "unknown" + TypeBeaconETHV1EventsBlock Type = v1.EventsBlockType + TypeBeaconETHV1EventsBlockV2 Type = v1.EventsBlockV2Type + TypeBeaconETHV1EventsChainReorg Type = v1.EventsChainReorgType + TypeBeaconETHV1EventsChainReorgV2 Type = v1.EventsChainReorgV2Type + TypeBeaconETHV1EventsFinalizedCheckpoint Type = v1.EventsFinalizedCheckpointType + TypeBeaconETHV1EventsFinalizedCheckpointV2 Type = v1.EventsFinalizedCheckpointV2Type + TypeBeaconETHV1EventsHead Type = v1.EventsHeadType + TypeBeaconETHV1EventsHeadV2 Type = v1.EventsHeadV2Type + TypeBeaconETHV1EventsVoluntaryExit Type = v1.EventsVoluntaryExitType + TypeBeaconETHV1EventsVoluntaryExitV2 Type = v1.EventsVoluntaryExitV2Type + TypeBeaconETHV1EventsAttestation Type = v1.EventsAttestationType + TypeBeaconETHV1EventsAttestationV2 Type = v1.EventsAttestationV2Type + TypeBeaconETHV1EventsContributionAndProof Type = v1.EventsContributionAndProofType + TypeBeaconETHV1EventsContributionAndProofV2 Type = v1.EventsContributionAndProofV2Type + TypeMempoolTransaction Type = mempool.TransactionType + TypeMempoolTransactionV2 Type = mempool.TransactionV2Type + TypeBeaconETHV2BeaconBlock Type = v2.BeaconBlockType + TypeBeaconETHV2BeaconBlockV2 Type = v2.BeaconBlockV2Type + TypeDebugForkChoice Type = v1.DebugForkChoiceType + TypeDebugForkChoiceV2 Type = v1.DebugForkChoiceV2Type + TypeDebugForkChoiceReorg Type = v1.DebugForkChoiceReorgType + TypeDebugForkChoiceReorgV2 Type = v1.DebugForkChoiceReorgV2Type + TypeBeaconEthV1BeaconCommittee Type = v1.BeaconCommitteeType + TypeBeaconEthV1ValidatorAttestationData Type = v1.ValidatorAttestationDataType + TypeBeaconEthV2BeaconBlockAttesterSlashing Type = v2.BeaconBlockAttesterSlashingType + TypeBeaconEthV2BeaconBlockProposerSlashing Type = v2.BeaconBlockProposerSlashingType + TypeBeaconEthV2BeaconBlockVoluntaryExit Type = v2.BeaconBlockVoluntaryExitType + TypeBeaconEthV2BeaconBlockDeposit Type = v2.BeaconBlockDepositType + TypeBeaconEthV2BeaconExecutionTransaction Type = v2.BeaconBlockExecutionTransactionType + TypeBeaconEthV2BeaconBLSToExecutionChange Type = v2.BeaconBlockBLSToExecutionChangeType + TypeBeaconEthV2BeaconWithdrawal Type = v2.BeaconBlockWithdrawalType + TypeBlockprintBlockClassification Type = blockprint.BlockClassificationType + TypeBeaconETHV1EventsBlobSidecar Type = v1.EventsBlobSidecarType + TypeBeaconETHV1BeaconBlobSidecar Type = v1.BeaconBlobSidecarType + TypeBeaconEthV1ProposerDuty Type = v1.BeaconProposerDutyType + TypeBeaconP2PAttestation Type = v1.BeaconP2PAttestationType + TypeBeaconEthV2BeaconElaboratedAttestation Type = v2.BeaconBlockElaboratedAttestationType + TypeLibP2PTraceAddPeer Type = Type(libp2p.TraceAddPeerType) + TypeLibP2PTraceConnected Type = Type(libp2p.TraceConnectedType) + TypeLibP2PTraceJoin Type = Type(libp2p.TraceJoinType) + TypeLibP2PTraceDisconnected Type = Type(libp2p.TraceDisconnectedType) + TypeLibP2PTraceRemovePeer Type = Type(libp2p.TraceRemovePeerType) + TypeLibP2PTraceRecvRPC Type = Type(libp2p.TraceRecvRPCType) + TypeLibP2PTraceSendRPC Type = Type(libp2p.TraceSendRPCType) + TypeLibP2PTraceHandleStatus Type = Type(libp2p.TraceHandleStatusType) + TypeLibP2PTraceHandleMetadata Type = Type(libp2p.TraceHandleMetadataType) + TypeLibP2PTraceGossipSubBeaconBlock Type = Type(libp2p.TraceGossipSubBeaconBlockType) + TypeLibP2PTraceGossipSubBeaconAttestation Type = Type(libp2p.TraceGossipSubBeaconAttestationType) + TypeLibP2PTraceGossipSubBlobSidecar Type = Type(libp2p.TraceGossipSubBlobSidecarType) + TypeBeaconETHV1BeaconValidators Type = Type(v1.BeaconValidatorsType) + TypeLibP2PTraceGossipSubBeaconDataColumnSidecar Type = Type(libp2p.TraceGossipSubBeaconDataColumnSidecarType) ) type Event interface { @@ -187,6 +188,10 @@ func New(eventType Type, log logrus.FieldLogger, event *xatu.DecoratedEvent, cac return libp2p.NewTraceGossipSubBeaconBlock(log, event), nil case TypeLibP2PTraceGossipSubBlobSidecar: return libp2p.NewTraceGossipSubBlobSidecar(log, event), nil + case TypeLibP2PTraceGossipSubBeaconAttestation: + return libp2p.NewTraceGossipSubBeaconAttestation(log, event), nil + case TypeLibP2PTraceGossipSubBeaconDataColumnSidecar: + return libp2p.NewTraceGossipSubBeaconDataColumnSidecar(log, event), nil default: return nil, fmt.Errorf("event type %s is unknown", eventType) } diff --git a/pkg/server/service/event-ingester/event/libp2p/trace_gossipsub_beacon_data_column_sidecar.go b/pkg/server/service/event-ingester/event/libp2p/trace_gossipsub_beacon_data_column_sidecar.go new file mode 100644 index 00000000..0d1121a8 --- /dev/null +++ b/pkg/server/service/event-ingester/event/libp2p/trace_gossipsub_beacon_data_column_sidecar.go @@ -0,0 +1,46 @@ +package libp2p + +import ( + "context" + "errors" + + "github.com/ethpandaops/xatu/pkg/proto/xatu" + "github.com/sirupsen/logrus" +) + +var ( + TraceGossipSubBeaconDataColumnSidecarType = xatu.Event_LIBP2P_TRACE_GOSSIPSUB_BEACON_DATA_COLUMN_SIDECAR.String() +) + +type TraceGossipSubBeaconDataColumnSidecar struct { + log logrus.FieldLogger + event *xatu.DecoratedEvent +} + +func NewTraceGossipSubBeaconDataColumnSidecar(log logrus.FieldLogger, event *xatu.DecoratedEvent) *TraceGossipSubBeaconDataColumnSidecar { + return &TraceGossipSubBeaconDataColumnSidecar{ + log: log.WithField("event", TraceGossipSubBeaconDataColumnSidecarType), + event: event, + } +} + +func (gsb *TraceGossipSubBeaconDataColumnSidecar) Type() string { + return TraceGossipSubBeaconDataColumnSidecarType +} + +func (gsb *TraceGossipSubBeaconDataColumnSidecar) Validate(ctx context.Context) error { + _, ok := gsb.event.Data.(*xatu.DecoratedEvent_Libp2PTraceGossipsubBeaconAttestation) + if !ok { + return errors.New("failed to cast event data to TraceGossipSubBeaconDataColumnSidecar") + } + + return nil +} + +func (gsb *TraceGossipSubBeaconDataColumnSidecar) Filter(ctx context.Context) bool { + return false +} + +func (gsb *TraceGossipSubBeaconDataColumnSidecar) AppendServerMeta(ctx context.Context, meta *xatu.ServerMeta) *xatu.ServerMeta { + return meta +}