From 6341de3852362f9a78cf08325b0521e1fb613978 Mon Sep 17 00:00:00 2001 From: Kshitij Kaushik <97613721+KshitijKaushik123@users.noreply.github.com> Date: Mon, 24 Aug 2026 23:17:32 +0530 Subject: [PATCH] fix: wire up applicable_intents, lifecycle, and originator in agent and MCP paths MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Several fields defined in the proto were not being used in the Go implementation, causing the agent to silently ignore request parameters: 1. applicable_intents was never read from the gRPC request — the agent returned all mutation types regardless of what the caller asked for. Now reads req.GetApplicableIntents() and passes it through to handlers for filtering. 2. MCP handler parsed lifecycle, originator, and applicable_intents from the tool arguments but never attached them to the gRPC request. Lifecycle was always UNSPECIFIED, originator was always nil, and intent filtering was completely bypassed through the MCP path. All three are now properly parsed and set on the request. 3. parseIntent was missing the ADD_CIDS case and parseLifecycle/parseOriginatorType functions didn't exist — added both. 4. Hardcoded year 2024 in demographic segment calculation meant age buckets would drift wrong every year. Now uses time.Now().Year(). Also includes proto regeneration (import path fix, go_package, Metric type path) and sample JSON bool fixes needed for the generated code to be in sync — these overlap with #11 but are included here since the code changes depend on the regenerated proto having the full field set. --- agenticrtbframeworkservices.proto | 2 + internal/agent/agent.go | 5 +- internal/handlers/handlers.go | 3 +- internal/mcp/mcp.go | 63 +- pkg/pb/artf/agenticrtbframework.pb.go | 695 ++++---- pkg/pb/artf/agenticrtbframeworkservices.pb.go | 67 + ...=> agenticrtbframeworkservices_grpc.pb.go} | 8 +- pkg/pb/openrtb/openrtb.pb.go | 1580 ++++++----------- proto/agenticrtbframework.proto | 6 +- samples/multi-impression.json | 8 +- samples/native-ad.json | 4 +- scripts/generate.sh | 15 +- 12 files changed, 1133 insertions(+), 1323 deletions(-) create mode 100644 pkg/pb/artf/agenticrtbframeworkservices.pb.go rename pkg/pb/artf/{agenticrtbframework_grpc.pb.go => agenticrtbframeworkservices_grpc.pb.go} (96%) diff --git a/agenticrtbframeworkservices.proto b/agenticrtbframeworkservices.proto index 91e5549..58d467d 100644 --- a/agenticrtbframeworkservices.proto +++ b/agenticrtbframeworkservices.proto @@ -2,6 +2,8 @@ syntax = "proto3"; package com.iabtechlab.bidstream.mutation.services.v1; +option go_package = "github.com/iabtechlab/agentic-rtb-framework/pkg/pb/artf"; + import "agenticrtbframework.proto"; service RTBExtensionPoint { diff --git a/internal/agent/agent.go b/internal/agent/agent.go index 8c20aab..7d14852 100644 --- a/internal/agent/agent.go +++ b/internal/agent/agent.go @@ -63,10 +63,7 @@ func (a *ARTFAgent) GetMutations(ctx context.Context, req *pb.RTBRequest) (*pb.R bidRequest := req.GetBidRequest() bidResponse := req.GetBidResponse() - // NOTE: applicable_intents is defined in the proto spec but not yet in the generated Go code. - // After regenerating protos with `make bindings`, use: applicableIntents := req.GetApplicableIntents() - // For now, pass nil which means all intents are applicable. - var applicableIntents []pb.Intent + applicableIntents := req.GetApplicableIntents() log.Printf("Processing request %s at lifecycle stage %v with applicable_intents=%v", req.GetId(), lifecycle, applicableIntents) diff --git a/internal/handlers/handlers.go b/internal/handlers/handlers.go index debb4eb..81c3b64 100644 --- a/internal/handlers/handlers.go +++ b/internal/handlers/handlers.go @@ -21,6 +21,7 @@ package handlers import ( "context" "log" + "time" pb "github.com/iabtechlab/agentic-rtb-framework/pkg/pb/artf" openrtb "github.com/iabtechlab/agentic-rtb-framework/pkg/pb/openrtb" @@ -211,7 +212,7 @@ func determineUserSegments(user *openrtb.BidRequest_User) []string { // Example: Add demographic segments based on user attributes if user.GetYob() > 0 { - age := 2024 - int(user.GetYob()) + age := time.Now().Year() - int(user.GetYob()) if age >= 18 && age <= 24 { segments = append(segments, "demo-18-24") } else if age >= 25 && age <= 34 { diff --git a/internal/mcp/mcp.go b/internal/mcp/mcp.go index f6f0cf9..ff962bf 100644 --- a/internal/mcp/mcp.go +++ b/internal/mcp/mcp.go @@ -160,27 +160,38 @@ func (a *Agent) handleExtendRTB(ctx context.Context, request mcp.CallToolRequest bidResponseRaw = br } - // Get optional lifecycle (NOTE: Full lifecycle enum requires proto regeneration) + // Get optional lifecycle var lifecycleStr string if lc, ok := args["lifecycle"].(string); ok && lc != "" { lifecycleStr = lc } - lifecycle := pb.Lifecycle_LIFECYCLE_UNSPECIFIED + lifecycle := parseLifecycle(lifecycleStr) - // Get optional originator (NOTE: Originator type requires proto regeneration) + // Get optional originator + var originator *pb.Originator var originatorStr string if orig, ok := args["originator"].(map[string]interface{}); ok { + originator = &pb.Originator{} if t, ok := orig["type"].(string); ok { originatorStr = t + originatorType := parseOriginatorType(t) + originator.Type = originatorType.Enum() + } + if id, ok := orig["id"].(string); ok { + originator.Id = &id } } // Get optional applicable_intents var applicableIntentStrs []string + var applicableIntents []pb.Intent if intentsRaw, ok := args["applicable_intents"].([]interface{}); ok { for _, intentRaw := range intentsRaw { if intentStr, ok := intentRaw.(string); ok { applicableIntentStrs = append(applicableIntentStrs, intentStr) + if parsed := parseIntent(intentStr); parsed != pb.Intent_INTENT_UNSPECIFIED { + applicableIntents = append(applicableIntents, parsed) + } } } } @@ -203,13 +214,14 @@ func (a *Agent) handleExtendRTB(ctx context.Context, request mcp.CallToolRequest } // Build the gRPC request - // NOTE: applicable_intents, originator, and full lifecycle enum require proto regeneration. grpcRequest := &pb.RTBRequest{ - Id: &id, - Tmax: &tmax, - Lifecycle: lifecycle.Enum(), - BidRequest: bidRequest, - BidResponse: bidResponse, + Id: &id, + Tmax: &tmax, + Lifecycle: lifecycle.Enum(), + BidRequest: bidRequest, + BidResponse: bidResponse, + Originator: originator, + ApplicableIntents: applicableIntents, } // Call the gRPC agent directly (no network hop) @@ -317,8 +329,6 @@ func (a *Agent) handleListFederatedEndpoints(ctx context.Context, request mcp.Ca } // parseIntent converts a string to pb.Intent -// NOTE: After proto regeneration, add parseLifecycle, parseOriginatorType functions -// and ADD_CIDS case to this switch func parseIntent(s string) pb.Intent { switch s { case "ACTIVATE_SEGMENTS": @@ -335,12 +345,41 @@ func parseIntent(s string) pb.Intent { return pb.Intent_BID_SHADE case "ADD_METRICS": return pb.Intent_ADD_METRICS - // case "ADD_CIDS": return pb.Intent_ADD_CIDS // Requires proto regeneration + case "ADD_CIDS": + return pb.Intent_ADD_CIDS default: return pb.Intent_INTENT_UNSPECIFIED } } +// parseLifecycle converts a string to pb.Lifecycle +func parseLifecycle(s string) pb.Lifecycle { + switch s { + case "LIFECYCLE_PUBLISHER_BID_REQUEST": + return pb.Lifecycle_LIFECYCLE_PUBLISHER_BID_REQUEST + case "LIFECYCLE_DSP_BID_RESPONSE": + return pb.Lifecycle_LIFECYCLE_DSP_BID_RESPONSE + default: + return pb.Lifecycle_LIFECYCLE_UNSPECIFIED + } +} + +// parseOriginatorType converts a string to pb.Originator_Type +func parseOriginatorType(s string) pb.Originator_Type { + switch s { + case "TYPE_PUBLISHER": + return pb.Originator_TYPE_PUBLISHER + case "TYPE_SSP": + return pb.Originator_TYPE_SSP + case "TYPE_EXCHANGE": + return pb.Originator_TYPE_EXCHANGE + case "TYPE_DSP": + return pb.Originator_TYPE_DSP + default: + return pb.Originator_TYPE_UNSPECIFIED + } +} + // jsonToOpenRTBBidRequest converts JSON map to OpenRTB BidRequest protobuf func jsonToOpenRTBBidRequest(data map[string]interface{}) (*openrtb.BidRequest, error) { jsonBytes, err := json.Marshal(data) diff --git a/pkg/pb/artf/agenticrtbframework.pb.go b/pkg/pb/artf/agenticrtbframework.pb.go index bf84f67..0bf0ab7 100644 --- a/pkg/pb/artf/agenticrtbframework.pb.go +++ b/pkg/pb/artf/agenticrtbframework.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.5 -// protoc v3.21.12 +// protoc-gen-go v1.36.11 +// protoc v7.34.1 // source: agenticrtbframework.proto package artf @@ -26,16 +26,22 @@ type Lifecycle int32 const ( // Placeholder to Define Programmatic Auction Definition Stages - Lifecycle_LIFECYCLE_UNSPECIFIED Lifecycle = 0 + Lifecycle_LIFECYCLE_UNSPECIFIED Lifecycle = 0 + Lifecycle_LIFECYCLE_PUBLISHER_BID_REQUEST Lifecycle = 1 + Lifecycle_LIFECYCLE_DSP_BID_RESPONSE Lifecycle = 2 ) // Enum value maps for Lifecycle. var ( Lifecycle_name = map[int32]string{ 0: "LIFECYCLE_UNSPECIFIED", + 1: "LIFECYCLE_PUBLISHER_BID_REQUEST", + 2: "LIFECYCLE_DSP_BID_RESPONSE", } Lifecycle_value = map[string]int32{ - "LIFECYCLE_UNSPECIFIED": 0, + "LIFECYCLE_UNSPECIFIED": 0, + "LIFECYCLE_PUBLISHER_BID_REQUEST": 1, + "LIFECYCLE_DSP_BID_RESPONSE": 2, } ) @@ -61,16 +67,6 @@ func (x Lifecycle) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Do not use. -func (x *Lifecycle) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = Lifecycle(num) - return nil -} - // Deprecated: Use Lifecycle.Descriptor instead. func (Lifecycle) EnumDescriptor() ([]byte, []int) { return file_agenticrtbframework_proto_rawDescGZIP(), []int{0} @@ -123,16 +119,6 @@ func (x Operation) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Do not use. -func (x *Operation) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = Operation(num) - return nil -} - // Deprecated: Use Operation.Descriptor instead. func (Operation) EnumDescriptor() ([]byte, []int) { return file_agenticrtbframework_proto_rawDescGZIP(), []int{1} @@ -156,6 +142,8 @@ const ( Intent_BID_SHADE Intent = 6 // Add metrics to an impression Intent_ADD_METRICS Intent = 7 + // Add extended content IDs + Intent_ADD_CIDS Intent = 8 ) // Enum value maps for Intent. @@ -169,6 +157,7 @@ var ( 5: "ADJUST_DEAL_MARGIN", 6: "BID_SHADE", 7: "ADD_METRICS", + 8: "ADD_CIDS", } Intent_value = map[string]int32{ "INTENT_UNSPECIFIED": 0, @@ -179,6 +168,7 @@ var ( "ADJUST_DEAL_MARGIN": 5, "BID_SHADE": 6, "ADD_METRICS": 7, + "ADD_CIDS": 8, } ) @@ -204,21 +194,66 @@ func (x Intent) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Do not use. -func (x *Intent) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = Intent(num) - return nil -} - // Deprecated: Use Intent.Descriptor instead. func (Intent) EnumDescriptor() ([]byte, []int) { return file_agenticrtbframework_proto_rawDescGZIP(), []int{2} } +type Originator_Type int32 + +const ( + Originator_TYPE_UNSPECIFIED Originator_Type = 0 + Originator_TYPE_PUBLISHER Originator_Type = 1 + Originator_TYPE_SSP Originator_Type = 2 + Originator_TYPE_EXCHANGE Originator_Type = 3 + Originator_TYPE_DSP Originator_Type = 4 +) + +// Enum value maps for Originator_Type. +var ( + Originator_Type_name = map[int32]string{ + 0: "TYPE_UNSPECIFIED", + 1: "TYPE_PUBLISHER", + 2: "TYPE_SSP", + 3: "TYPE_EXCHANGE", + 4: "TYPE_DSP", + } + Originator_Type_value = map[string]int32{ + "TYPE_UNSPECIFIED": 0, + "TYPE_PUBLISHER": 1, + "TYPE_SSP": 2, + "TYPE_EXCHANGE": 3, + "TYPE_DSP": 4, + } +) + +func (x Originator_Type) Enum() *Originator_Type { + p := new(Originator_Type) + *p = x + return p +} + +func (x Originator_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Originator_Type) Descriptor() protoreflect.EnumDescriptor { + return file_agenticrtbframework_proto_enumTypes[3].Descriptor() +} + +func (Originator_Type) Type() protoreflect.EnumType { + return &file_agenticrtbframework_proto_enumTypes[3] +} + +func (x Originator_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Originator_Type.Descriptor instead. +func (Originator_Type) EnumDescriptor() ([]byte, []int) { + return file_agenticrtbframework_proto_rawDescGZIP(), []int{2, 0} +} + // The type of margin adjustment type Margin_CalculationType int32 @@ -252,27 +287,17 @@ func (x Margin_CalculationType) String() string { } func (Margin_CalculationType) Descriptor() protoreflect.EnumDescriptor { - return file_agenticrtbframework_proto_enumTypes[3].Descriptor() + return file_agenticrtbframework_proto_enumTypes[4].Descriptor() } func (Margin_CalculationType) Type() protoreflect.EnumType { - return &file_agenticrtbframework_proto_enumTypes[3] + return &file_agenticrtbframework_proto_enumTypes[4] } func (x Margin_CalculationType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Do not use. -func (x *Margin_CalculationType) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = Margin_CalculationType(num) - return nil -} - // Deprecated: Use Margin_CalculationType.Descriptor instead. func (Margin_CalculationType) EnumDescriptor() ([]byte, []int) { return file_agenticrtbframework_proto_rawDescGZIP(), []int{7, 0} @@ -280,24 +305,24 @@ func (Margin_CalculationType) EnumDescriptor() ([]byte, []int) { type RTBRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - // ENUM as per Programmatic Auction Definition IAB TL doc/spec - Lifecycle *Lifecycle `protobuf:"varint,1,req,name=lifecycle,enum=com.iabtechlab.bidstream.mutation.v1.Lifecycle" json:"lifecycle,omitempty"` + // As per Programmatic Auction Definition IAB TL doc/spec + Lifecycle *Lifecycle `protobuf:"varint,1,opt,name=lifecycle,enum=com.iabtechlab.bidstream.mutation.v1.Lifecycle" json:"lifecycle,omitempty"` // ID of the extension point request, assigned by the exchange, and unique for the // exchange's subsequent tracking of the responses. The exchange may use // different values for different recipients. - // REQUIRED by the RTB specification. - Id *string `protobuf:"bytes,2,req,name=id" json:"id,omitempty"` + Id *string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"` // Maximum time in milliseconds the exchange allows for mutations to be received including latency to avoid timeout - // REQUIRED by the RTB specification. - Tmax *int32 `protobuf:"varint,3,req,name=tmax" json:"tmax,omitempty"` + Tmax *int32 `protobuf:"varint,3,opt,name=tmax" json:"tmax,omitempty"` // Bid request - // REQUIRED by the RTB specification. - BidRequest *openrtb.BidRequest `protobuf:"bytes,4,req,name=bid_request,json=bidRequest" json:"bid_request,omitempty"` + BidRequest *openrtb.BidRequest `protobuf:"bytes,4,opt,name=bid_request,json=bidRequest" json:"bid_request,omitempty"` // Bid response - // OPTIONAL by the RTB specification. BidResponse *openrtb.BidResponse `protobuf:"bytes,5,opt,name=bid_response,json=bidResponse" json:"bid_response,omitempty"` + // Business entity that created and owns the enclosed BidRequest or BidResponse + Originator *Originator `protobuf:"bytes,6,opt,name=originator" json:"originator,omitempty"` + // List of intents the server is eligibible to send back + ApplicableIntents []Intent `protobuf:"varint,7,rep,packed,name=applicable_intents,json=applicableIntents,enum=com.iabtechlab.bidstream.mutation.v1.Intent" json:"applicable_intents,omitempty"` // Extension fields - Ext *Extensions `protobuf:"bytes,6,opt,name=ext" json:"ext,omitempty"` + Ext *RTBRequest_Ext `protobuf:"bytes,99,opt,name=ext" json:"ext,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -367,55 +392,31 @@ func (x *RTBRequest) GetBidResponse() *openrtb.BidResponse { return nil } -func (x *RTBRequest) GetExt() *Extensions { +func (x *RTBRequest) GetOriginator() *Originator { if x != nil { - return x.Ext + return x.Originator } return nil } -type Extensions struct { - state protoimpl.MessageState `protogen:"open.v1"` - extensionFields protoimpl.ExtensionFields - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *Extensions) Reset() { - *x = Extensions{} - mi := &file_agenticrtbframework_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *Extensions) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Extensions) ProtoMessage() {} - -func (x *Extensions) ProtoReflect() protoreflect.Message { - mi := &file_agenticrtbframework_proto_msgTypes[1] +func (x *RTBRequest) GetApplicableIntents() []Intent { if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms + return x.ApplicableIntents } - return mi.MessageOf(x) + return nil } -// Deprecated: Use Extensions.ProtoReflect.Descriptor instead. -func (*Extensions) Descriptor() ([]byte, []int) { - return file_agenticrtbframework_proto_rawDescGZIP(), []int{1} +func (x *RTBRequest) GetExt() *RTBRequest_Ext { + if x != nil { + return x.Ext + } + return nil } type RTBResponse struct { state protoimpl.MessageState `protogen:"open.v1"` // ID of the extension point request to which this is a response. - // REQUIRED by the RTB specification. - Id *string `protobuf:"bytes,1,req,name=id" json:"id,omitempty"` + Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` // List of mutations suggesting changes to be applied Mutations []*Mutation `protobuf:"bytes,2,rep,name=mutations" json:"mutations,omitempty"` // Metadata about the response @@ -426,7 +427,7 @@ type RTBResponse struct { func (x *RTBResponse) Reset() { *x = RTBResponse{} - mi := &file_agenticrtbframework_proto_msgTypes[2] + mi := &file_agenticrtbframework_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -438,7 +439,7 @@ func (x *RTBResponse) String() string { func (*RTBResponse) ProtoMessage() {} func (x *RTBResponse) ProtoReflect() protoreflect.Message { - mi := &file_agenticrtbframework_proto_msgTypes[2] + mi := &file_agenticrtbframework_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -451,7 +452,7 @@ func (x *RTBResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RTBResponse.ProtoReflect.Descriptor instead. func (*RTBResponse) Descriptor() ([]byte, []int) { - return file_agenticrtbframework_proto_rawDescGZIP(), []int{2} + return file_agenticrtbframework_proto_rawDescGZIP(), []int{1} } func (x *RTBResponse) GetId() string { @@ -475,14 +476,66 @@ func (x *RTBResponse) GetMetadata() *Metadata { return nil } +type Originator struct { + state protoimpl.MessageState `protogen:"open.v1"` + Type *Originator_Type `protobuf:"varint,1,opt,name=type,enum=com.iabtechlab.bidstream.mutation.v1.Originator_Type" json:"type,omitempty"` + Id *string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Originator) Reset() { + *x = Originator{} + mi := &file_agenticrtbframework_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Originator) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Originator) ProtoMessage() {} + +func (x *Originator) ProtoReflect() protoreflect.Message { + mi := &file_agenticrtbframework_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Originator.ProtoReflect.Descriptor instead. +func (*Originator) Descriptor() ([]byte, []int) { + return file_agenticrtbframework_proto_rawDescGZIP(), []int{2} +} + +func (x *Originator) GetType() Originator_Type { + if x != nil && x.Type != nil { + return *x.Type + } + return Originator_TYPE_UNSPECIFIED +} + +func (x *Originator) GetId() string { + if x != nil && x.Id != nil { + return *x.Id + } + return "" +} + type Mutation struct { state protoimpl.MessageState `protogen:"open.v1"` // The purpose of the mutation - Intent *Intent `protobuf:"varint,1,req,name=intent,enum=com.iabtechlab.bidstream.mutation.v1.Intent" json:"intent,omitempty"` + Intent *Intent `protobuf:"varint,1,opt,name=intent,enum=com.iabtechlab.bidstream.mutation.v1.Intent" json:"intent,omitempty"` // Defines the operation to perform (e.g. add, remove, replace) on the target data at the given path - Op *Operation `protobuf:"varint,2,req,name=op,enum=com.iabtechlab.bidstream.mutation.v1.Operation" json:"op,omitempty"` + Op *Operation `protobuf:"varint,2,opt,name=op,enum=com.iabtechlab.bidstream.mutation.v1.Operation" json:"op,omitempty"` // The semantic business domain of where the operation will be applied - Path *string `protobuf:"bytes,3,req,name=path" json:"path,omitempty"` + Path *string `protobuf:"bytes,3,opt,name=path" json:"path,omitempty"` // The structure of value depends on the specified intent. // Reserve 100+ for intent-specific payloads // @@ -491,7 +544,8 @@ type Mutation struct { // *Mutation_Ids // *Mutation_AdjustDeal // *Mutation_AdjustBid - // *Mutation_AddMetrics + // *Mutation_Metrics + // *Mutation_ContentData Value isMutation_Value `protobuf_oneof:"value"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -582,10 +636,19 @@ func (x *Mutation) GetAdjustBid() *AdjustBidPayload { return nil } -func (x *Mutation) GetAddMetrics() *AddMetricsPayload { +func (x *Mutation) GetMetrics() *MetricsPayload { if x != nil { - if x, ok := x.Value.(*Mutation_AddMetrics); ok { - return x.AddMetrics + if x, ok := x.Value.(*Mutation_Metrics); ok { + return x.Metrics + } + } + return nil +} + +func (x *Mutation) GetContentData() *DataPayload { + if x != nil { + if x, ok := x.Value.(*Mutation_ContentData); ok { + return x.ContentData } } return nil @@ -610,9 +673,14 @@ type Mutation_AdjustBid struct { AdjustBid *AdjustBidPayload `protobuf:"bytes,102,opt,name=adjust_bid,json=adjustBid,oneof"` } -type Mutation_AddMetrics struct { - // Add metrics or telemetry data - AddMetrics *AddMetricsPayload `protobuf:"bytes,103,opt,name=add_metrics,json=addMetrics,oneof"` +type Mutation_Metrics struct { + // Metrics or telemetry data + Metrics *MetricsPayload `protobuf:"bytes,103,opt,name=metrics,oneof"` +} + +type Mutation_ContentData struct { + // Content data + ContentData *DataPayload `protobuf:"bytes,104,opt,name=content_data,json=contentData,oneof"` } func (*Mutation_Ids) isMutation_Value() {} @@ -621,7 +689,9 @@ func (*Mutation_AdjustDeal) isMutation_Value() {} func (*Mutation_AdjustBid) isMutation_Value() {} -func (*Mutation_AddMetrics) isMutation_Value() {} +func (*Mutation_Metrics) isMutation_Value() {} + +func (*Mutation_ContentData) isMutation_Value() {} type Metadata struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -874,7 +944,7 @@ func (x *AdjustBidPayload) GetPrice() float64 { return 0 } -type AddMetricsPayload struct { +type MetricsPayload struct { state protoimpl.MessageState `protogen:"open.v1"` // List of metrics to add Metric []*openrtb.BidRequest_Imp_Metric `protobuf:"bytes,1,rep,name=metric" json:"metric,omitempty"` @@ -882,20 +952,20 @@ type AddMetricsPayload struct { sizeCache protoimpl.SizeCache } -func (x *AddMetricsPayload) Reset() { - *x = AddMetricsPayload{} +func (x *MetricsPayload) Reset() { + *x = MetricsPayload{} mi := &file_agenticrtbframework_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *AddMetricsPayload) String() string { +func (x *MetricsPayload) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AddMetricsPayload) ProtoMessage() {} +func (*MetricsPayload) ProtoMessage() {} -func (x *AddMetricsPayload) ProtoReflect() protoreflect.Message { +func (x *MetricsPayload) ProtoReflect() protoreflect.Message { mi := &file_agenticrtbframework_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -907,163 +977,186 @@ func (x *AddMetricsPayload) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AddMetricsPayload.ProtoReflect.Descriptor instead. -func (*AddMetricsPayload) Descriptor() ([]byte, []int) { +// Deprecated: Use MetricsPayload.ProtoReflect.Descriptor instead. +func (*MetricsPayload) Descriptor() ([]byte, []int) { return file_agenticrtbframework_proto_rawDescGZIP(), []int{9} } -func (x *AddMetricsPayload) GetMetric() []*openrtb.BidRequest_Imp_Metric { +func (x *MetricsPayload) GetMetric() []*openrtb.BidRequest_Imp_Metric { if x != nil { return x.Metric } return nil } +type DataPayload struct { + state protoimpl.MessageState `protogen:"open.v1"` + // List of data to add + Data []*openrtb.BidRequest_Data `protobuf:"bytes,1,rep,name=data" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DataPayload) Reset() { + *x = DataPayload{} + mi := &file_agenticrtbframework_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DataPayload) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataPayload) ProtoMessage() {} + +func (x *DataPayload) ProtoReflect() protoreflect.Message { + mi := &file_agenticrtbframework_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DataPayload.ProtoReflect.Descriptor instead. +func (*DataPayload) Descriptor() ([]byte, []int) { + return file_agenticrtbframework_proto_rawDescGZIP(), []int{10} +} + +func (x *DataPayload) GetData() []*openrtb.BidRequest_Data { + if x != nil { + return x.Data + } + return nil +} + +type RTBRequest_Ext struct { + state protoimpl.MessageState `protogen:"open.v1"` + extensionFields protoimpl.ExtensionFields + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RTBRequest_Ext) Reset() { + *x = RTBRequest_Ext{} + mi := &file_agenticrtbframework_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RTBRequest_Ext) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RTBRequest_Ext) ProtoMessage() {} + +func (x *RTBRequest_Ext) ProtoReflect() protoreflect.Message { + mi := &file_agenticrtbframework_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RTBRequest_Ext.ProtoReflect.Descriptor instead. +func (*RTBRequest_Ext) Descriptor() ([]byte, []int) { + return file_agenticrtbframework_proto_rawDescGZIP(), []int{0, 0} +} + var File_agenticrtbframework_proto protoreflect.FileDescriptor -var file_agenticrtbframework_proto_rawDesc = string([]byte{ - 0x0a, 0x19, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x72, 0x74, 0x62, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x24, 0x63, 0x6f, 0x6d, - 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, 0x64, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, - 0x31, 0x1a, 0x27, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, - 0x62, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2f, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x65, - 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd6, 0x02, 0x0a, 0x0a, 0x52, - 0x54, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x09, 0x6c, 0x69, 0x66, - 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x63, - 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, - 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x52, 0x09, 0x6c, - 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x02, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x6d, 0x61, 0x78, - 0x18, 0x03, 0x20, 0x02, 0x28, 0x05, 0x52, 0x04, 0x74, 0x6d, 0x61, 0x78, 0x12, 0x46, 0x0a, 0x0b, - 0x62, 0x69, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x02, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, - 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x62, 0x69, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x0c, 0x62, 0x69, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x6d, - 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x52, 0x0b, 0x62, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x42, 0x0a, 0x03, 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, - 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, - 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x03, - 0x65, 0x78, 0x74, 0x22, 0x16, 0x0a, 0x0a, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2a, 0x08, 0x08, 0x64, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xb7, 0x01, 0x0a, 0x0b, - 0x52, 0x54, 0x42, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x4c, 0x0a, 0x09, 0x6d, - 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, - 0x62, 0x69, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, - 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4a, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, - 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, 0x64, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x85, 0x04, 0x0a, 0x08, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x06, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x02, - 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, - 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x52, 0x06, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x02, - 0x20, 0x02, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, - 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, - 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x02, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x44, 0x0a, - 0x03, 0x69, 0x64, 0x73, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6f, 0x6d, - 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, 0x64, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x49, 0x44, 0x73, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x03, - 0x69, 0x64, 0x73, 0x12, 0x5a, 0x0a, 0x0b, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x64, 0x65, - 0x61, 0x6c, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, - 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, 0x64, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x44, 0x65, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x44, 0x65, 0x61, 0x6c, 0x12, - 0x57, 0x0a, 0x0a, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x62, 0x69, 0x64, 0x18, 0x66, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, - 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, - 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, - 0x74, 0x42, 0x69, 0x64, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x09, 0x61, - 0x64, 0x6a, 0x75, 0x73, 0x74, 0x42, 0x69, 0x64, 0x12, 0x5a, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x5f, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, - 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, - 0x69, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x50, 0x0a, - 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, - 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0x1c, 0x0a, 0x0a, 0x49, 0x44, 0x73, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x75, 0x0a, - 0x11, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x44, 0x65, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x64, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x62, 0x69, 0x64, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x12, 0x44, - 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, - 0x62, 0x69, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x52, 0x06, 0x6d, 0x61, - 0x72, 0x67, 0x69, 0x6e, 0x22, 0xb0, 0x01, 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x67, 0x0a, 0x10, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x3c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, - 0x2e, 0x62, 0x69, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2e, 0x43, 0x61, - 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x63, - 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x27, - 0x0a, 0x0f, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x50, 0x4d, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, - 0x52, 0x43, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x22, 0x28, 0x0a, 0x10, 0x41, 0x64, 0x6a, 0x75, 0x73, - 0x74, 0x42, 0x69, 0x64, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, - 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x22, 0x5d, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, - 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, - 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6d, - 0x70, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x2a, 0x26, 0x0a, 0x09, 0x4c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x19, 0x0a, - 0x15, 0x4c, 0x49, 0x46, 0x45, 0x43, 0x59, 0x43, 0x4c, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x2a, 0x66, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x44, - 0x44, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x50, 0x45, - 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x10, 0x03, - 0x2a, 0xae, 0x01, 0x0a, 0x06, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x12, 0x49, - 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, 0x54, 0x45, 0x5f, - 0x53, 0x45, 0x47, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x43, - 0x54, 0x49, 0x56, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x41, 0x4c, 0x53, 0x10, 0x02, 0x12, 0x12, - 0x0a, 0x0e, 0x53, 0x55, 0x50, 0x50, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x44, 0x45, 0x41, 0x4c, 0x53, - 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x5f, 0x44, 0x45, 0x41, - 0x4c, 0x5f, 0x46, 0x4c, 0x4f, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x44, 0x4a, - 0x55, 0x53, 0x54, 0x5f, 0x44, 0x45, 0x41, 0x4c, 0x5f, 0x4d, 0x41, 0x52, 0x47, 0x49, 0x4e, 0x10, - 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x49, 0x44, 0x5f, 0x53, 0x48, 0x41, 0x44, 0x45, 0x10, 0x06, - 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x44, 0x44, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x53, 0x10, - 0x07, 0x32, 0x88, 0x01, 0x0a, 0x11, 0x52, 0x54, 0x42, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x73, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4d, 0x75, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, - 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, 0x64, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, - 0x54, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, - 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x62, 0x69, 0x64, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x54, 0x42, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x39, 0x5a, 0x37, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x61, 0x62, 0x74, 0x65, - 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x2d, 0x72, 0x74, - 0x62, 0x2d, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x70, 0x6b, 0x67, 0x2f, - 0x70, 0x62, 0x2f, 0x61, 0x72, 0x74, 0x66, -}) +const file_agenticrtbframework_proto_rawDesc = "" + + "\n" + + "\x19agenticrtbframework.proto\x12$com.iabtechlab.bidstream.mutation.v1\x1a'com/iabtechlab/openrtb/v2/openrtb.proto\"\x9b\x04\n" + + "\n" + + "RTBRequest\x12M\n" + + "\tlifecycle\x18\x01 \x01(\x0e2/.com.iabtechlab.bidstream.mutation.v1.LifecycleR\tlifecycle\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\x12\x12\n" + + "\x04tmax\x18\x03 \x01(\x05R\x04tmax\x12F\n" + + "\vbid_request\x18\x04 \x01(\v2%.com.iabtechlab.openrtb.v2.BidRequestR\n" + + "bidRequest\x12I\n" + + "\fbid_response\x18\x05 \x01(\v2&.com.iabtechlab.openrtb.v2.BidResponseR\vbidResponse\x12P\n" + + "\n" + + "originator\x18\x06 \x01(\v20.com.iabtechlab.bidstream.mutation.v1.OriginatorR\n" + + "originator\x12[\n" + + "\x12applicable_intents\x18\a \x03(\x0e2,.com.iabtechlab.bidstream.mutation.v1.IntentR\x11applicableIntents\x12F\n" + + "\x03ext\x18c \x01(\v24.com.iabtechlab.bidstream.mutation.v1.RTBRequest.ExtR\x03ext\x1a\x10\n" + + "\x03Ext*\t\b\xf4\x03\x10\x80\x80\x80\x80\x02\"\xb7\x01\n" + + "\vRTBResponse\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12L\n" + + "\tmutations\x18\x02 \x03(\v2..com.iabtechlab.bidstream.mutation.v1.MutationR\tmutations\x12J\n" + + "\bmetadata\x18\x03 \x01(\v2..com.iabtechlab.bidstream.mutation.v1.MetadataR\bmetadata\"\xc8\x01\n" + + "\n" + + "Originator\x12I\n" + + "\x04type\x18\x01 \x01(\x0e25.com.iabtechlab.bidstream.mutation.v1.Originator.TypeR\x04type\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\"_\n" + + "\x04Type\x12\x14\n" + + "\x10TYPE_UNSPECIFIED\x10\x00\x12\x12\n" + + "\x0eTYPE_PUBLISHER\x10\x01\x12\f\n" + + "\bTYPE_SSP\x10\x02\x12\x11\n" + + "\rTYPE_EXCHANGE\x10\x03\x12\f\n" + + "\bTYPE_DSP\x10\x04\"\xdb\x04\n" + + "\bMutation\x12D\n" + + "\x06intent\x18\x01 \x01(\x0e2,.com.iabtechlab.bidstream.mutation.v1.IntentR\x06intent\x12?\n" + + "\x02op\x18\x02 \x01(\x0e2/.com.iabtechlab.bidstream.mutation.v1.OperationR\x02op\x12\x12\n" + + "\x04path\x18\x03 \x01(\tR\x04path\x12D\n" + + "\x03ids\x18d \x01(\v20.com.iabtechlab.bidstream.mutation.v1.IDsPayloadH\x00R\x03ids\x12Z\n" + + "\vadjust_deal\x18e \x01(\v27.com.iabtechlab.bidstream.mutation.v1.AdjustDealPayloadH\x00R\n" + + "adjustDeal\x12W\n" + + "\n" + + "adjust_bid\x18f \x01(\v26.com.iabtechlab.bidstream.mutation.v1.AdjustBidPayloadH\x00R\tadjustBid\x12P\n" + + "\ametrics\x18g \x01(\v24.com.iabtechlab.bidstream.mutation.v1.MetricsPayloadH\x00R\ametrics\x12V\n" + + "\fcontent_data\x18h \x01(\v21.com.iabtechlab.bidstream.mutation.v1.DataPayloadH\x00R\vcontentDataB\a\n" + + "\x05valueJ\x06\b\xe8\a\x10\xd0\x0f\"P\n" + + "\bMetadata\x12\x1f\n" + + "\vapi_version\x18\x01 \x01(\tR\n" + + "apiVersion\x12#\n" + + "\rmodel_version\x18\x02 \x01(\tR\fmodelVersion\"\x1c\n" + + "\n" + + "IDsPayload\x12\x0e\n" + + "\x02id\x18\x01 \x03(\tR\x02id\"u\n" + + "\x11AdjustDealPayload\x12\x1a\n" + + "\bbidfloor\x18\x01 \x01(\x01R\bbidfloor\x12D\n" + + "\x06margin\x18\x02 \x01(\v2,.com.iabtechlab.bidstream.mutation.v1.MarginR\x06margin\"\xb0\x01\n" + + "\x06Margin\x12\x14\n" + + "\x05value\x18\x01 \x01(\x01R\x05value\x12g\n" + + "\x10calculation_type\x18\x02 \x01(\x0e2<.com.iabtechlab.bidstream.mutation.v1.Margin.CalculationTypeR\x0fcalculationType\"'\n" + + "\x0fCalculationType\x12\a\n" + + "\x03CPM\x10\x00\x12\v\n" + + "\aPERCENT\x10\x01\"(\n" + + "\x10AdjustBidPayload\x12\x14\n" + + "\x05price\x18\x01 \x01(\x01R\x05price\"Z\n" + + "\x0eMetricsPayload\x12H\n" + + "\x06metric\x18\x01 \x03(\v20.com.iabtechlab.openrtb.v2.BidRequest.Imp.MetricR\x06metric\"M\n" + + "\vDataPayload\x12>\n" + + "\x04data\x18\x01 \x03(\v2*.com.iabtechlab.openrtb.v2.BidRequest.DataR\x04data*k\n" + + "\tLifecycle\x12\x19\n" + + "\x15LIFECYCLE_UNSPECIFIED\x10\x00\x12#\n" + + "\x1fLIFECYCLE_PUBLISHER_BID_REQUEST\x10\x01\x12\x1e\n" + + "\x1aLIFECYCLE_DSP_BID_RESPONSE\x10\x02*f\n" + + "\tOperation\x12\x19\n" + + "\x15OPERATION_UNSPECIFIED\x10\x00\x12\x11\n" + + "\rOPERATION_ADD\x10\x01\x12\x14\n" + + "\x10OPERATION_REMOVE\x10\x02\x12\x15\n" + + "\x11OPERATION_REPLACE\x10\x03*\xc4\x01\n" + + "\x06Intent\x12\x16\n" + + "\x12INTENT_UNSPECIFIED\x10\x00\x12\x15\n" + + "\x11ACTIVATE_SEGMENTS\x10\x01\x12\x12\n" + + "\x0eACTIVATE_DEALS\x10\x02\x12\x12\n" + + "\x0eSUPPRESS_DEALS\x10\x03\x12\x15\n" + + "\x11ADJUST_DEAL_FLOOR\x10\x04\x12\x16\n" + + "\x12ADJUST_DEAL_MARGIN\x10\x05\x12\r\n" + + "\tBID_SHADE\x10\x06\x12\x0f\n" + + "\vADD_METRICS\x10\a\x12\f\n" + + "\bADD_CIDS\x10\b\"\x06\b\xe8\a\x10\xcf\x0fB9Z7github.com/iabtechlab/agentic-rtb-framework/pkg/pb/artfb\beditionsp\xe8\a" var ( file_agenticrtbframework_proto_rawDescOnce sync.Once @@ -1077,50 +1170,57 @@ func file_agenticrtbframework_proto_rawDescGZIP() []byte { return file_agenticrtbframework_proto_rawDescData } -var file_agenticrtbframework_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_agenticrtbframework_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_agenticrtbframework_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_agenticrtbframework_proto_msgTypes = make([]protoimpl.MessageInfo, 12) var file_agenticrtbframework_proto_goTypes = []any{ (Lifecycle)(0), // 0: com.iabtechlab.bidstream.mutation.v1.Lifecycle (Operation)(0), // 1: com.iabtechlab.bidstream.mutation.v1.Operation (Intent)(0), // 2: com.iabtechlab.bidstream.mutation.v1.Intent - (Margin_CalculationType)(0), // 3: com.iabtechlab.bidstream.mutation.v1.Margin.CalculationType - (*RTBRequest)(nil), // 4: com.iabtechlab.bidstream.mutation.v1.RTBRequest - (*Extensions)(nil), // 5: com.iabtechlab.bidstream.mutation.v1.Extensions + (Originator_Type)(0), // 3: com.iabtechlab.bidstream.mutation.v1.Originator.Type + (Margin_CalculationType)(0), // 4: com.iabtechlab.bidstream.mutation.v1.Margin.CalculationType + (*RTBRequest)(nil), // 5: com.iabtechlab.bidstream.mutation.v1.RTBRequest (*RTBResponse)(nil), // 6: com.iabtechlab.bidstream.mutation.v1.RTBResponse - (*Mutation)(nil), // 7: com.iabtechlab.bidstream.mutation.v1.Mutation - (*Metadata)(nil), // 8: com.iabtechlab.bidstream.mutation.v1.Metadata - (*IDsPayload)(nil), // 9: com.iabtechlab.bidstream.mutation.v1.IDsPayload - (*AdjustDealPayload)(nil), // 10: com.iabtechlab.bidstream.mutation.v1.AdjustDealPayload - (*Margin)(nil), // 11: com.iabtechlab.bidstream.mutation.v1.Margin - (*AdjustBidPayload)(nil), // 12: com.iabtechlab.bidstream.mutation.v1.AdjustBidPayload - (*AddMetricsPayload)(nil), // 13: com.iabtechlab.bidstream.mutation.v1.AddMetricsPayload - (*openrtb.BidRequest)(nil), // 14: com.iabtechlab.openrtb.v2.BidRequest - (*openrtb.BidResponse)(nil), // 15: com.iabtechlab.openrtb.v2.BidResponse - (*openrtb.BidRequest_Imp_Metric)(nil), // 16: com.iabtechlab.openrtb.v2.BidRequest.Imp.Metric + (*Originator)(nil), // 7: com.iabtechlab.bidstream.mutation.v1.Originator + (*Mutation)(nil), // 8: com.iabtechlab.bidstream.mutation.v1.Mutation + (*Metadata)(nil), // 9: com.iabtechlab.bidstream.mutation.v1.Metadata + (*IDsPayload)(nil), // 10: com.iabtechlab.bidstream.mutation.v1.IDsPayload + (*AdjustDealPayload)(nil), // 11: com.iabtechlab.bidstream.mutation.v1.AdjustDealPayload + (*Margin)(nil), // 12: com.iabtechlab.bidstream.mutation.v1.Margin + (*AdjustBidPayload)(nil), // 13: com.iabtechlab.bidstream.mutation.v1.AdjustBidPayload + (*MetricsPayload)(nil), // 14: com.iabtechlab.bidstream.mutation.v1.MetricsPayload + (*DataPayload)(nil), // 15: com.iabtechlab.bidstream.mutation.v1.DataPayload + (*RTBRequest_Ext)(nil), // 16: com.iabtechlab.bidstream.mutation.v1.RTBRequest.Ext + (*openrtb.BidRequest)(nil), // 17: com.iabtechlab.openrtb.v2.BidRequest + (*openrtb.BidResponse)(nil), // 18: com.iabtechlab.openrtb.v2.BidResponse + (*openrtb.BidRequest_Imp_Metric)(nil), // 19: com.iabtechlab.openrtb.v2.BidRequest.Imp.Metric + (*openrtb.BidRequest_Data)(nil), // 20: com.iabtechlab.openrtb.v2.BidRequest.Data } var file_agenticrtbframework_proto_depIdxs = []int32{ 0, // 0: com.iabtechlab.bidstream.mutation.v1.RTBRequest.lifecycle:type_name -> com.iabtechlab.bidstream.mutation.v1.Lifecycle - 14, // 1: com.iabtechlab.bidstream.mutation.v1.RTBRequest.bid_request:type_name -> com.iabtechlab.openrtb.v2.BidRequest - 15, // 2: com.iabtechlab.bidstream.mutation.v1.RTBRequest.bid_response:type_name -> com.iabtechlab.openrtb.v2.BidResponse - 5, // 3: com.iabtechlab.bidstream.mutation.v1.RTBRequest.ext:type_name -> com.iabtechlab.bidstream.mutation.v1.Extensions - 7, // 4: com.iabtechlab.bidstream.mutation.v1.RTBResponse.mutations:type_name -> com.iabtechlab.bidstream.mutation.v1.Mutation - 8, // 5: com.iabtechlab.bidstream.mutation.v1.RTBResponse.metadata:type_name -> com.iabtechlab.bidstream.mutation.v1.Metadata - 2, // 6: com.iabtechlab.bidstream.mutation.v1.Mutation.intent:type_name -> com.iabtechlab.bidstream.mutation.v1.Intent - 1, // 7: com.iabtechlab.bidstream.mutation.v1.Mutation.op:type_name -> com.iabtechlab.bidstream.mutation.v1.Operation - 9, // 8: com.iabtechlab.bidstream.mutation.v1.Mutation.ids:type_name -> com.iabtechlab.bidstream.mutation.v1.IDsPayload - 10, // 9: com.iabtechlab.bidstream.mutation.v1.Mutation.adjust_deal:type_name -> com.iabtechlab.bidstream.mutation.v1.AdjustDealPayload - 12, // 10: com.iabtechlab.bidstream.mutation.v1.Mutation.adjust_bid:type_name -> com.iabtechlab.bidstream.mutation.v1.AdjustBidPayload - 13, // 11: com.iabtechlab.bidstream.mutation.v1.Mutation.add_metrics:type_name -> com.iabtechlab.bidstream.mutation.v1.AddMetricsPayload - 11, // 12: com.iabtechlab.bidstream.mutation.v1.AdjustDealPayload.margin:type_name -> com.iabtechlab.bidstream.mutation.v1.Margin - 3, // 13: com.iabtechlab.bidstream.mutation.v1.Margin.calculation_type:type_name -> com.iabtechlab.bidstream.mutation.v1.Margin.CalculationType - 16, // 14: com.iabtechlab.bidstream.mutation.v1.AddMetricsPayload.metric:type_name -> com.iabtechlab.openrtb.v2.BidRequest.Imp.Metric - 4, // 15: com.iabtechlab.bidstream.mutation.v1.RTBExtensionPoint.GetMutations:input_type -> com.iabtechlab.bidstream.mutation.v1.RTBRequest - 6, // 16: com.iabtechlab.bidstream.mutation.v1.RTBExtensionPoint.GetMutations:output_type -> com.iabtechlab.bidstream.mutation.v1.RTBResponse - 16, // [16:17] is the sub-list for method output_type - 15, // [15:16] is the sub-list for method input_type - 15, // [15:15] is the sub-list for extension type_name - 15, // [15:15] is the sub-list for extension extendee - 0, // [0:15] is the sub-list for field type_name + 17, // 1: com.iabtechlab.bidstream.mutation.v1.RTBRequest.bid_request:type_name -> com.iabtechlab.openrtb.v2.BidRequest + 18, // 2: com.iabtechlab.bidstream.mutation.v1.RTBRequest.bid_response:type_name -> com.iabtechlab.openrtb.v2.BidResponse + 7, // 3: com.iabtechlab.bidstream.mutation.v1.RTBRequest.originator:type_name -> com.iabtechlab.bidstream.mutation.v1.Originator + 2, // 4: com.iabtechlab.bidstream.mutation.v1.RTBRequest.applicable_intents:type_name -> com.iabtechlab.bidstream.mutation.v1.Intent + 16, // 5: com.iabtechlab.bidstream.mutation.v1.RTBRequest.ext:type_name -> com.iabtechlab.bidstream.mutation.v1.RTBRequest.Ext + 8, // 6: com.iabtechlab.bidstream.mutation.v1.RTBResponse.mutations:type_name -> com.iabtechlab.bidstream.mutation.v1.Mutation + 9, // 7: com.iabtechlab.bidstream.mutation.v1.RTBResponse.metadata:type_name -> com.iabtechlab.bidstream.mutation.v1.Metadata + 3, // 8: com.iabtechlab.bidstream.mutation.v1.Originator.type:type_name -> com.iabtechlab.bidstream.mutation.v1.Originator.Type + 2, // 9: com.iabtechlab.bidstream.mutation.v1.Mutation.intent:type_name -> com.iabtechlab.bidstream.mutation.v1.Intent + 1, // 10: com.iabtechlab.bidstream.mutation.v1.Mutation.op:type_name -> com.iabtechlab.bidstream.mutation.v1.Operation + 10, // 11: com.iabtechlab.bidstream.mutation.v1.Mutation.ids:type_name -> com.iabtechlab.bidstream.mutation.v1.IDsPayload + 11, // 12: com.iabtechlab.bidstream.mutation.v1.Mutation.adjust_deal:type_name -> com.iabtechlab.bidstream.mutation.v1.AdjustDealPayload + 13, // 13: com.iabtechlab.bidstream.mutation.v1.Mutation.adjust_bid:type_name -> com.iabtechlab.bidstream.mutation.v1.AdjustBidPayload + 14, // 14: com.iabtechlab.bidstream.mutation.v1.Mutation.metrics:type_name -> com.iabtechlab.bidstream.mutation.v1.MetricsPayload + 15, // 15: com.iabtechlab.bidstream.mutation.v1.Mutation.content_data:type_name -> com.iabtechlab.bidstream.mutation.v1.DataPayload + 12, // 16: com.iabtechlab.bidstream.mutation.v1.AdjustDealPayload.margin:type_name -> com.iabtechlab.bidstream.mutation.v1.Margin + 4, // 17: com.iabtechlab.bidstream.mutation.v1.Margin.calculation_type:type_name -> com.iabtechlab.bidstream.mutation.v1.Margin.CalculationType + 19, // 18: com.iabtechlab.bidstream.mutation.v1.MetricsPayload.metric:type_name -> com.iabtechlab.openrtb.v2.BidRequest.Imp.Metric + 20, // 19: com.iabtechlab.bidstream.mutation.v1.DataPayload.data:type_name -> com.iabtechlab.openrtb.v2.BidRequest.Data + 20, // [20:20] is the sub-list for method output_type + 20, // [20:20] is the sub-list for method input_type + 20, // [20:20] is the sub-list for extension type_name + 20, // [20:20] is the sub-list for extension extendee + 0, // [0:20] is the sub-list for field type_name } func init() { file_agenticrtbframework_proto_init() } @@ -1132,17 +1232,18 @@ func file_agenticrtbframework_proto_init() { (*Mutation_Ids)(nil), (*Mutation_AdjustDeal)(nil), (*Mutation_AdjustBid)(nil), - (*Mutation_AddMetrics)(nil), + (*Mutation_Metrics)(nil), + (*Mutation_ContentData)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_agenticrtbframework_proto_rawDesc), len(file_agenticrtbframework_proto_rawDesc)), - NumEnums: 4, - NumMessages: 10, + NumEnums: 5, + NumMessages: 12, NumExtensions: 0, - NumServices: 1, + NumServices: 0, }, GoTypes: file_agenticrtbframework_proto_goTypes, DependencyIndexes: file_agenticrtbframework_proto_depIdxs, diff --git a/pkg/pb/artf/agenticrtbframeworkservices.pb.go b/pkg/pb/artf/agenticrtbframeworkservices.pb.go new file mode 100644 index 0000000..2af2575 --- /dev/null +++ b/pkg/pb/artf/agenticrtbframeworkservices.pb.go @@ -0,0 +1,67 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.11 +// protoc v7.34.1 +// source: agenticrtbframeworkservices.proto + +package artf + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +var File_agenticrtbframeworkservices_proto protoreflect.FileDescriptor + +const file_agenticrtbframeworkservices_proto_rawDesc = "" + + "\n" + + "!agenticrtbframeworkservices.proto\x12-com.iabtechlab.bidstream.mutation.services.v1\x1a\x19agenticrtbframework.proto2\x88\x01\n" + + "\x11RTBExtensionPoint\x12s\n" + + "\fGetMutations\x120.com.iabtechlab.bidstream.mutation.v1.RTBRequest\x1a1.com.iabtechlab.bidstream.mutation.v1.RTBResponseB9Z7github.com/iabtechlab/agentic-rtb-framework/pkg/pb/artfb\x06proto3" + +var file_agenticrtbframeworkservices_proto_goTypes = []any{ + (*RTBRequest)(nil), // 0: com.iabtechlab.bidstream.mutation.v1.RTBRequest + (*RTBResponse)(nil), // 1: com.iabtechlab.bidstream.mutation.v1.RTBResponse +} +var file_agenticrtbframeworkservices_proto_depIdxs = []int32{ + 0, // 0: com.iabtechlab.bidstream.mutation.services.v1.RTBExtensionPoint.GetMutations:input_type -> com.iabtechlab.bidstream.mutation.v1.RTBRequest + 1, // 1: com.iabtechlab.bidstream.mutation.services.v1.RTBExtensionPoint.GetMutations:output_type -> com.iabtechlab.bidstream.mutation.v1.RTBResponse + 1, // [1:2] is the sub-list for method output_type + 0, // [0:1] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_agenticrtbframeworkservices_proto_init() } +func file_agenticrtbframeworkservices_proto_init() { + if File_agenticrtbframeworkservices_proto != nil { + return + } + file_agenticrtbframework_proto_init() + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_agenticrtbframeworkservices_proto_rawDesc), len(file_agenticrtbframeworkservices_proto_rawDesc)), + NumEnums: 0, + NumMessages: 0, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_agenticrtbframeworkservices_proto_goTypes, + DependencyIndexes: file_agenticrtbframeworkservices_proto_depIdxs, + }.Build() + File_agenticrtbframeworkservices_proto = out.File + file_agenticrtbframeworkservices_proto_goTypes = nil + file_agenticrtbframeworkservices_proto_depIdxs = nil +} diff --git a/pkg/pb/artf/agenticrtbframework_grpc.pb.go b/pkg/pb/artf/agenticrtbframeworkservices_grpc.pb.go similarity index 96% rename from pkg/pb/artf/agenticrtbframework_grpc.pb.go rename to pkg/pb/artf/agenticrtbframeworkservices_grpc.pb.go index d5bd6d5..b85439a 100644 --- a/pkg/pb/artf/agenticrtbframework_grpc.pb.go +++ b/pkg/pb/artf/agenticrtbframeworkservices_grpc.pb.go @@ -1,8 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.6.0 -// - protoc v3.21.12 -// source: agenticrtbframework.proto +// - protoc-gen-go-grpc v1.6.2 +// - protoc v7.34.1 +// source: agenticrtbframeworkservices.proto package artf @@ -119,5 +119,5 @@ var RTBExtensionPoint_ServiceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "agenticrtbframework.proto", + Metadata: "agenticrtbframeworkservices.proto", } diff --git a/pkg/pb/openrtb/openrtb.pb.go b/pkg/pb/openrtb/openrtb.pb.go index d3ad020..76bcb92 100644 --- a/pkg/pb/openrtb/openrtb.pb.go +++ b/pkg/pb/openrtb/openrtb.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.5 -// protoc v3.21.12 +// protoc-gen-go v1.36.11 +// protoc v7.34.1 // source: com/iabtechlab/openrtb/v2/openrtb.proto package openrtb @@ -7691,998 +7691,590 @@ func (x *NativeResponse_Asset_Video) GetVasttag() string { var File_com_iabtechlab_openrtb_v2_openrtb_proto protoreflect.FileDescriptor -var file_com_iabtechlab_openrtb_v2_openrtb_proto_rawDesc = string([]byte{ - 0x0a, 0x27, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, - 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2f, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x65, 0x6e, - 0x72, 0x74, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x69, - 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, - 0x62, 0x2e, 0x76, 0x32, 0x22, 0xcb, 0x5a, 0x0a, 0x0a, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x03, 0x69, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, - 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x52, 0x03, 0x69, 0x6d, 0x70, - 0x12, 0x40, 0x0a, 0x04, 0x73, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, - 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x69, 0x74, 0x65, 0x48, 0x00, 0x52, 0x04, 0x73, 0x69, - 0x74, 0x65, 0x12, 0x3d, 0x0a, 0x03, 0x61, 0x70, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x29, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x70, 0x70, 0x48, 0x00, 0x52, 0x03, 0x61, 0x70, - 0x70, 0x12, 0x40, 0x0a, 0x04, 0x64, 0x6f, 0x6f, 0x68, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x6f, 0x6f, 0x68, 0x48, 0x00, 0x52, 0x04, 0x64, - 0x6f, 0x6f, 0x68, 0x12, 0x44, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, - 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, - 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x75, 0x73, 0x65, - 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, - 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, - 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x04, 0x74, 0x65, 0x73, - 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, - 0x74, 0x65, 0x73, 0x74, 0x12, 0x11, 0x0a, 0x02, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, - 0x3a, 0x01, 0x32, 0x52, 0x02, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x6d, 0x61, 0x78, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x6d, 0x61, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x77, - 0x73, 0x65, 0x61, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x77, 0x73, 0x65, 0x61, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x73, 0x65, 0x61, 0x74, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x05, 0x62, 0x73, 0x65, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x07, 0x61, 0x6c, 0x6c, 0x69, 0x6d, - 0x70, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, - 0x07, 0x61, 0x6c, 0x6c, 0x69, 0x6d, 0x70, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x75, 0x72, 0x18, - 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x63, 0x75, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x6c, - 0x61, 0x6e, 0x67, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x77, 0x6c, 0x61, 0x6e, 0x67, - 0x12, 0x16, 0x0a, 0x06, 0x77, 0x6c, 0x61, 0x6e, 0x67, 0x62, 0x18, 0x14, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x06, 0x77, 0x6c, 0x61, 0x6e, 0x67, 0x62, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x63, 0x61, 0x74, - 0x18, 0x17, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x61, 0x63, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x62, 0x63, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x62, 0x63, 0x61, 0x74, - 0x12, 0x19, 0x0a, 0x06, 0x63, 0x61, 0x74, 0x74, 0x61, 0x78, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, - 0x3a, 0x01, 0x31, 0x52, 0x06, 0x63, 0x61, 0x74, 0x74, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x62, - 0x61, 0x64, 0x76, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x62, 0x61, 0x64, 0x76, 0x12, - 0x12, 0x0a, 0x04, 0x62, 0x61, 0x70, 0x70, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x62, - 0x61, 0x70, 0x70, 0x12, 0x44, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, - 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, - 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x72, 0x65, 0x67, - 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, - 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, - 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, - 0x65, 0x67, 0x73, 0x52, 0x04, 0x72, 0x65, 0x67, 0x73, 0x1a, 0xcd, 0x03, 0x0a, 0x06, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x66, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x02, 0x66, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x74, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x50, - 0x0a, 0x06, 0x73, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, - 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x53, 0x75, 0x70, - 0x70, 0x6c, 0x79, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x06, 0x73, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x1a, 0xaf, 0x02, 0x0a, 0x0b, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x68, 0x61, 0x69, 0x6e, - 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x5e, 0x0a, 0x05, - 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x63, 0x6f, - 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, - 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x65, 0x72, 0x1a, 0x8a, - 0x01, 0x0a, 0x0f, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x4e, 0x6f, - 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x73, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x73, 0x69, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x73, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x02, 0x68, 0x70, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x2a, 0x05, 0x08, 0x64, 0x10, - 0x90, 0x4e, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x1a, 0x8e, 0x24, 0x0a, 0x03, 0x49, 0x6d, - 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x48, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x11, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, - 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x2e, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x48, 0x0a, 0x06, 0x62, - 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6f, - 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x06, 0x62, - 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x05, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, - 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, - 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x2e, - 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x05, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x45, 0x0a, 0x05, - 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6f, - 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x52, 0x05, 0x61, 0x75, - 0x64, 0x69, 0x6f, 0x12, 0x48, 0x0a, 0x06, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, - 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, - 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x2e, 0x4e, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, 0x06, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x12, 0x3f, 0x0a, - 0x03, 0x70, 0x6d, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6d, - 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, - 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x2e, 0x50, 0x6d, 0x70, 0x52, 0x03, 0x70, 0x6d, 0x70, 0x12, 0x26, - 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x6d, - 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x73, 0x74, 0x6c, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x6e, 0x73, 0x74, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, - 0x67, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x67, 0x69, 0x64, - 0x12, 0x1d, 0x0a, 0x08, 0x62, 0x69, 0x64, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x01, 0x3a, 0x01, 0x30, 0x52, 0x08, 0x62, 0x69, 0x64, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x12, - 0x25, 0x0a, 0x0b, 0x62, 0x69, 0x64, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x63, 0x75, 0x72, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x3a, 0x03, 0x55, 0x53, 0x44, 0x52, 0x0b, 0x62, 0x69, 0x64, 0x66, 0x6c, - 0x6f, 0x6f, 0x72, 0x63, 0x75, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x62, - 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x63, 0x6c, - 0x69, 0x63, 0x6b, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, - 0x63, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x65, 0x63, 0x75, - 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x62, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x62, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x04, 0x72, 0x77, 0x64, 0x64, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x72, 0x77, 0x64, - 0x64, 0x12, 0x15, 0x0a, 0x04, 0x73, 0x73, 0x61, 0x69, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x3a, - 0x01, 0x30, 0x52, 0x04, 0x73, 0x73, 0x61, 0x69, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x3f, 0x0a, 0x03, 0x71, 0x74, - 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, - 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, - 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, - 0x6d, 0x70, 0x2e, 0x51, 0x74, 0x79, 0x52, 0x03, 0x71, 0x74, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x64, - 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x02, 0x64, 0x74, 0x12, 0x4b, 0x0a, 0x07, 0x72, - 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, - 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, - 0x07, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x1a, 0x51, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x76, 0x65, - 0x6e, 0x64, 0x6f, 0x72, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x1a, 0x99, 0x04, 0x0a, 0x06, - 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, - 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, - 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6d, - 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, - 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x0c, 0x0a, 0x01, 0x77, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x01, 0x77, 0x12, 0x0c, 0x0a, 0x01, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x01, 0x68, 0x12, 0x18, 0x0a, 0x05, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x05, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, - 0x05, 0x62, 0x61, 0x74, 0x74, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, - 0x52, 0x05, 0x62, 0x61, 0x74, 0x74, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x69, 0x6d, - 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x69, 0x6d, 0x65, 0x73, 0x12, - 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x74, 0x6f, 0x70, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x65, - 0x78, 0x70, 0x64, 0x69, 0x72, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, - 0x06, 0x65, 0x78, 0x70, 0x64, 0x69, 0x72, 0x12, 0x14, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x0a, - 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, - 0x03, 0x76, 0x63, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x76, 0x63, 0x6d, 0x12, - 0x16, 0x0a, 0x04, 0x77, 0x6d, 0x61, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, - 0x01, 0x52, 0x04, 0x77, 0x6d, 0x61, 0x78, 0x12, 0x16, 0x0a, 0x04, 0x68, 0x6d, 0x61, 0x78, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x68, 0x6d, 0x61, 0x78, 0x12, - 0x16, 0x0a, 0x04, 0x77, 0x6d, 0x69, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, - 0x01, 0x52, 0x04, 0x77, 0x6d, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x68, 0x6d, 0x69, 0x6e, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x68, 0x6d, 0x69, 0x6e, 0x1a, - 0x6f, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x0c, 0x0a, 0x01, 0x77, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x77, 0x12, 0x0c, 0x0a, 0x01, 0x68, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x01, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x77, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x16, 0x0a, - 0x06, 0x68, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x6d, 0x69, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x77, 0x6d, 0x69, 0x6e, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, - 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x1a, 0xa5, 0x09, 0x0a, 0x05, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x05, 0x6d, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, - 0x0b, 0x6d, 0x69, 0x6e, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, - 0x6d, 0x61, 0x78, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, - 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x16, - 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x73, 0x65, 0x71, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x6d, 0x61, 0x78, 0x73, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x64, 0x64, 0x75, 0x72, - 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6f, 0x64, 0x64, 0x75, 0x72, 0x12, 0x20, - 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, - 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, - 0x12, 0x0c, 0x0a, 0x01, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x77, 0x12, 0x0c, - 0x0a, 0x01, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x68, 0x12, 0x14, 0x0a, 0x05, - 0x70, 0x6f, 0x64, 0x69, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x64, - 0x69, 0x64, 0x12, 0x19, 0x0a, 0x06, 0x70, 0x6f, 0x64, 0x73, 0x65, 0x71, 0x18, 0x1f, 0x20, 0x01, - 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x06, 0x70, 0x6f, 0x64, 0x73, 0x65, 0x71, 0x12, 0x1c, 0x0a, - 0x07, 0x72, 0x71, 0x64, 0x64, 0x75, 0x72, 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, - 0x10, 0x01, 0x52, 0x07, 0x72, 0x71, 0x64, 0x64, 0x75, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x70, - 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, - 0x18, 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x70, 0x6c, 0x63, 0x6d, 0x74, 0x18, 0x23, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x6c, - 0x63, 0x6d, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x69, 0x74, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x69, 0x74, - 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6b, 0x69, 0x70, 0x6d, 0x69, 0x6e, - 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x70, 0x6d, 0x69, 0x6e, 0x12, - 0x1c, 0x0a, 0x09, 0x73, 0x6b, 0x69, 0x70, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x73, 0x6b, 0x69, 0x70, 0x61, 0x66, 0x74, 0x65, 0x72, 0x12, 0x21, 0x0a, - 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x3a, - 0x01, 0x30, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x12, 0x1f, 0x0a, 0x09, 0x73, 0x6c, 0x6f, 0x74, 0x69, 0x6e, 0x70, 0x6f, 0x64, 0x18, 0x21, 0x20, - 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x09, 0x73, 0x6c, 0x6f, 0x74, 0x69, 0x6e, 0x70, 0x6f, - 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x63, 0x70, 0x6d, 0x70, 0x65, 0x72, 0x73, 0x65, - 0x63, 0x18, 0x22, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x63, 0x70, 0x6d, 0x70, - 0x65, 0x72, 0x73, 0x65, 0x63, 0x12, 0x18, 0x0a, 0x05, 0x62, 0x61, 0x74, 0x74, 0x72, 0x18, 0x0a, - 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x05, 0x62, 0x61, 0x74, 0x74, 0x72, 0x12, - 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x69, 0x6e, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, - 0x65, 0x12, 0x2a, 0x0a, 0x0d, 0x62, 0x6f, 0x78, 0x69, 0x6e, 0x67, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0d, - 0x62, 0x6f, 0x78, 0x69, 0x6e, 0x67, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x12, 0x2a, 0x0a, - 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, - 0x0f, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x62, - 0x61, 0x63, 0x6b, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, - 0x79, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x64, - 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, - 0x01, 0x52, 0x08, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x70, - 0x6f, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x12, 0x52, 0x0a, - 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x69, 0x6f, 0x6e, 0x61, 0x64, 0x18, 0x12, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, - 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, - 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x2e, 0x42, 0x61, - 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x69, 0x6f, 0x6e, 0x61, - 0x64, 0x12, 0x14, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x13, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, - 0x10, 0x01, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x61, - 0x6e, 0x69, 0x6f, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x18, 0x14, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, - 0x10, 0x01, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x69, 0x6f, 0x6e, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6f, 0x64, 0x64, 0x65, 0x64, 0x75, 0x70, 0x65, 0x18, 0x25, - 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x09, 0x70, 0x6f, 0x64, 0x64, 0x65, 0x64, - 0x75, 0x70, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x75, 0x72, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x73, - 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, - 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, - 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x75, - 0x72, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x73, 0x52, 0x09, 0x64, 0x75, 0x72, 0x66, 0x6c, 0x6f, 0x6f, - 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x4a, 0x04, 0x08, 0x16, 0x10, 0x17, 0x1a, - 0xd7, 0x06, 0x0a, 0x05, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x69, 0x6d, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x69, 0x6d, 0x65, 0x73, 0x12, - 0x23, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x64, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x64, 0x64, 0x75, 0x72, - 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6f, 0x64, 0x64, 0x75, 0x72, 0x12, 0x20, - 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, - 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x64, 0x65, 0x6c, 0x61, 0x79, - 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x71, 0x64, 0x64, 0x75, 0x72, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, - 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x07, 0x72, 0x71, 0x64, 0x64, 0x75, 0x72, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x70, 0x6f, 0x64, 0x69, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, - 0x6f, 0x64, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x06, 0x70, 0x6f, 0x64, 0x73, 0x65, 0x71, 0x18, 0x1c, - 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x06, 0x70, 0x6f, 0x64, 0x73, 0x65, 0x71, 0x12, - 0x21, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x05, 0x3a, 0x01, 0x30, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x09, 0x73, 0x6c, 0x6f, 0x74, 0x69, 0x6e, 0x70, 0x6f, 0x64, 0x18, - 0x1d, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x09, 0x73, 0x6c, 0x6f, 0x74, 0x69, 0x6e, - 0x70, 0x6f, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x63, 0x70, 0x6d, 0x70, 0x65, 0x72, - 0x73, 0x65, 0x63, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x63, 0x70, - 0x6d, 0x70, 0x65, 0x72, 0x73, 0x65, 0x63, 0x12, 0x18, 0x0a, 0x05, 0x62, 0x61, 0x74, 0x74, 0x72, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x05, 0x62, 0x61, 0x74, 0x74, - 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x69, 0x6e, 0x62, 0x69, 0x74, 0x72, - 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, - 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x62, 0x69, 0x74, 0x72, - 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x18, - 0x0b, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x08, 0x64, 0x65, 0x6c, 0x69, 0x76, - 0x65, 0x72, 0x79, 0x12, 0x52, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x69, 0x6f, 0x6e, - 0x61, 0x64, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, - 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, - 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, - 0x49, 0x6d, 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, - 0x61, 0x6e, 0x69, 0x6f, 0x6e, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x0d, - 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x28, 0x0a, - 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x69, 0x6f, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x18, 0x14, - 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, - 0x69, 0x6f, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x73, 0x65, - 0x71, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x73, 0x65, 0x71, 0x12, - 0x12, 0x0a, 0x04, 0x66, 0x65, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x66, - 0x65, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x65, 0x64, 0x18, - 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x74, 0x69, 0x74, 0x63, 0x68, 0x65, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x76, 0x6f, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6e, - 0x76, 0x6f, 0x6c, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x75, 0x72, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x73, - 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, - 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, - 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x75, - 0x72, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x73, 0x52, 0x09, 0x64, 0x75, 0x72, 0x66, 0x6c, 0x6f, 0x6f, - 0x72, 0x73, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x1a, 0xd1, 0x01, 0x0a, 0x06, 0x4e, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x12, 0x1a, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x51, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, - 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, - 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x76, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x05, 0x62, - 0x61, 0x74, 0x74, 0x72, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x05, - 0x62, 0x61, 0x74, 0x74, 0x72, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x42, 0x0f, 0x0a, 0x0d, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x1a, 0x64, 0x0a, - 0x03, 0x51, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, - 0x6c, 0x69, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x2a, 0x05, 0x08, 0x64, - 0x10, 0x90, 0x4e, 0x1a, 0xd2, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x12, - 0x5f, 0x0a, 0x0b, 0x72, 0x65, 0x66, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, - 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, - 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x2e, - 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x2e, 0x52, 0x65, 0x66, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x73, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x49, 0x0a, 0x0b, 0x52, 0x65, 0x66, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1b, 0x0a, 0x07, 0x72, 0x65, 0x66, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x07, 0x72, 0x65, 0x66, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x69, 0x6e, 0x74, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, - 0x4e, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x1a, 0xb8, 0x03, 0x0a, 0x03, 0x50, 0x6d, 0x70, - 0x12, 0x2e, 0x0a, 0x0f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, - 0x52, 0x0e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x48, 0x0a, 0x05, 0x64, 0x65, 0x61, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x32, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x2e, 0x50, 0x6d, 0x70, 0x2e, 0x44, - 0x65, 0x61, 0x6c, 0x52, 0x05, 0x64, 0x65, 0x61, 0x6c, 0x73, 0x1a, 0xaf, 0x02, 0x0a, 0x04, 0x44, - 0x65, 0x61, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x08, 0x62, 0x69, 0x64, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x01, 0x3a, 0x01, 0x30, 0x52, 0x08, 0x62, 0x69, 0x64, 0x66, 0x6c, 0x6f, - 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0b, 0x62, 0x69, 0x64, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x63, 0x75, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x3a, 0x03, 0x55, 0x53, 0x44, 0x52, 0x0b, 0x62, 0x69, - 0x64, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x63, 0x75, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x61, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x73, 0x65, - 0x61, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x77, 0x73, 0x65, 0x61, 0x74, 0x12, - 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x08, 0x77, 0x61, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x04, 0x67, - 0x75, 0x61, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x04, 0x67, 0x75, - 0x61, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x63, 0x70, 0x6d, 0x70, 0x65, 0x72, 0x73, - 0x65, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x63, 0x70, 0x6d, - 0x70, 0x65, 0x72, 0x73, 0x65, 0x63, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x75, 0x72, 0x66, 0x6c, 0x6f, - 0x6f, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, - 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, - 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x44, 0x75, 0x72, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x73, 0x52, 0x09, 0x64, 0x75, 0x72, 0x66, - 0x6c, 0x6f, 0x6f, 0x72, 0x73, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x2a, 0x05, 0x08, 0x64, - 0x10, 0x90, 0x4e, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x1a, 0xb8, 0x04, 0x0a, 0x04, 0x53, - 0x69, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, - 0x19, 0x0a, 0x06, 0x63, 0x61, 0x74, 0x74, 0x61, 0x78, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x3a, - 0x01, 0x31, 0x52, 0x06, 0x63, 0x61, 0x74, 0x74, 0x61, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x61, - 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x63, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x0a, - 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x70, 0x61, 0x67, 0x65, 0x63, 0x61, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x70, - 0x61, 0x67, 0x65, 0x63, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, - 0x66, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x0d, - 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x12, 0x4d, 0x0a, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, - 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, - 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, - 0x72, 0x12, 0x47, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, - 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, - 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, - 0x79, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, - 0x79, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x77, 0x61, 0x72, 0x72, 0x61, - 0x79, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x77, 0x61, 0x72, 0x72, 0x61, 0x79, - 0x12, 0x36, 0x0a, 0x16, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x70, 0x61, 0x72, - 0x74, 0x6e, 0x65, 0x72, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x16, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x70, 0x61, 0x72, 0x74, 0x6e, - 0x65, 0x72, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x4a, - 0x04, 0x08, 0x0e, 0x10, 0x0f, 0x1a, 0xbb, 0x04, 0x0a, 0x03, 0x41, 0x70, 0x70, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x75, 0x72, 0x6c, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x75, 0x72, 0x6c, 0x12, 0x19, 0x0a, - 0x06, 0x63, 0x61, 0x74, 0x74, 0x61, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x31, - 0x52, 0x06, 0x63, 0x61, 0x74, 0x74, 0x61, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x61, 0x74, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x63, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, - 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, - 0x67, 0x65, 0x63, 0x61, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x67, - 0x65, 0x63, 0x61, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x76, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, - 0x79, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x70, - 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x04, - 0x70, 0x61, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x70, 0x61, 0x69, 0x64, - 0x12, 0x4d, 0x0a, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, - 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, - 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, - 0x47, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, - 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, - 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x77, - 0x6f, 0x72, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x77, - 0x6f, 0x72, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x77, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, - 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x77, 0x61, 0x72, 0x72, 0x61, 0x79, 0x12, 0x36, - 0x0a, 0x16, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x70, 0x61, 0x72, 0x74, 0x6e, - 0x65, 0x72, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x4a, 0x04, 0x08, - 0x0e, 0x10, 0x0f, 0x1a, 0xc2, 0x02, 0x0a, 0x04, 0x44, 0x6f, 0x6f, 0x68, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x09, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x25, - 0x0a, 0x0c, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x74, 0x79, 0x70, 0x65, 0x74, 0x61, 0x78, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x31, 0x52, 0x0c, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x74, 0x79, - 0x70, 0x65, 0x74, 0x61, 0x78, 0x12, 0x4d, 0x0a, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, - 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, - 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, - 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, - 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x47, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, - 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, - 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x1a, 0x7b, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x06, 0x63, 0x61, 0x74, - 0x74, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x31, 0x52, 0x06, 0x63, 0x61, - 0x74, 0x74, 0x61, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x61, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x03, 0x63, 0x61, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2a, 0x05, - 0x08, 0x64, 0x10, 0x90, 0x4e, 0x1a, 0xa4, 0x08, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x65, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x65, 0x6e, - 0x72, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x65, 0x6e, 0x72, 0x65, 0x12, - 0x15, 0x0a, 0x04, 0x67, 0x74, 0x61, 0x78, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x39, - 0x52, 0x04, 0x67, 0x74, 0x61, 0x78, 0x12, 0x1a, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x72, 0x65, 0x73, - 0x18, 0x22, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x72, - 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x62, 0x75, 0x6d, 0x18, 0x17, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x61, 0x6c, 0x62, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x72, 0x63, - 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x73, 0x72, 0x63, 0x12, 0x4a, 0x0a, 0x08, - 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x52, 0x08, - 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x19, 0x0a, 0x06, 0x63, 0x61, - 0x74, 0x74, 0x61, 0x78, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x31, 0x52, 0x06, 0x63, - 0x61, 0x74, 0x74, 0x61, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x61, 0x74, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x03, 0x63, 0x61, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x64, 0x71, - 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x64, 0x71, 0x12, 0x18, 0x0a, - 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, - 0x0a, 0x75, 0x73, 0x65, 0x72, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x26, 0x0a, - 0x0e, 0x71, 0x61, 0x67, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x71, 0x61, 0x67, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x72, - 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, - 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x77, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x20, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x07, 0x6b, 0x77, 0x61, 0x72, 0x72, 0x61, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, - 0x69, 0x76, 0x65, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0a, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x2e, 0x0a, 0x12, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, - 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x72, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6c, - 0x65, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x1a, 0x0a, - 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x6e, - 0x67, 0x62, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x6e, 0x67, 0x62, 0x12, - 0x1e, 0x0a, 0x0a, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x12, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0a, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x3e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x47, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, - 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, - 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x47, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, - 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, - 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x12, 0x26, 0x0a, 0x0c, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, - 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, - 0x4a, 0x04, 0x08, 0x0c, 0x10, 0x0d, 0x4a, 0x04, 0x08, 0x1a, 0x10, 0x1b, 0x1a, 0x7a, 0x0a, 0x08, - 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x06, - 0x63, 0x61, 0x74, 0x74, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x31, 0x52, - 0x06, 0x63, 0x61, 0x74, 0x74, 0x61, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x61, 0x74, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x63, 0x61, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x1a, 0x4c, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2a, - 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x1a, 0x4c, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2a, 0x05, 0x08, - 0x64, 0x10, 0x90, 0x4e, 0x1a, 0xc5, 0x06, 0x0a, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x3b, 0x0a, 0x03, 0x67, 0x65, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, - 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x12, 0x10, 0x0a, 0x03, - 0x64, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x64, 0x6e, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6c, 0x6d, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6c, 0x6d, 0x74, - 0x12, 0x0e, 0x0a, 0x02, 0x75, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x75, 0x61, - 0x12, 0x41, 0x0a, 0x03, 0x73, 0x75, 0x61, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, - 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x03, - 0x73, 0x75, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x61, 0x6b, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x61, 0x6b, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x6f, - 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x73, 0x76, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6f, 0x73, 0x76, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x77, 0x76, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x68, 0x77, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x77, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x01, 0x77, 0x12, 0x0c, 0x0a, 0x01, 0x68, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, - 0x68, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x70, 0x69, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x70, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x78, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x1c, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x70, 0x78, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x0e, 0x0a, - 0x02, 0x6a, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6a, 0x73, 0x12, 0x1a, 0x0a, - 0x08, 0x67, 0x65, 0x6f, 0x66, 0x65, 0x74, 0x63, 0x68, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x08, 0x67, 0x65, 0x6f, 0x66, 0x65, 0x74, 0x63, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x6c, 0x61, - 0x73, 0x68, 0x76, 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x6c, 0x61, - 0x73, 0x68, 0x76, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x6e, 0x67, 0x62, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x6c, 0x61, 0x6e, 0x67, 0x62, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x72, 0x72, 0x69, - 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x72, 0x72, 0x69, 0x65, - 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x63, 0x63, 0x6d, 0x6e, 0x63, 0x18, 0x1e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x6d, 0x63, 0x63, 0x6d, 0x6e, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x66, 0x61, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x69, 0x66, 0x61, 0x12, 0x1c, 0x0a, 0x07, 0x64, 0x69, 0x64, 0x73, 0x68, 0x61, 0x31, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x64, 0x69, 0x64, 0x73, 0x68, 0x61, - 0x31, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x69, 0x64, 0x6d, 0x64, 0x35, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x64, 0x69, 0x64, 0x6d, 0x64, 0x35, 0x12, 0x1e, 0x0a, - 0x08, 0x64, 0x70, 0x69, 0x64, 0x73, 0x68, 0x61, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x02, 0x18, 0x01, 0x52, 0x08, 0x64, 0x70, 0x69, 0x64, 0x73, 0x68, 0x61, 0x31, 0x12, 0x1c, 0x0a, - 0x07, 0x64, 0x70, 0x69, 0x64, 0x6d, 0x64, 0x35, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, - 0x18, 0x01, 0x52, 0x07, 0x64, 0x70, 0x69, 0x64, 0x6d, 0x64, 0x35, 0x12, 0x1c, 0x0a, 0x07, 0x6d, - 0x61, 0x63, 0x73, 0x68, 0x61, 0x31, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, - 0x52, 0x07, 0x6d, 0x61, 0x63, 0x73, 0x68, 0x61, 0x31, 0x12, 0x1a, 0x0a, 0x06, 0x6d, 0x61, 0x63, - 0x6d, 0x64, 0x35, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x6d, - 0x61, 0x63, 0x6d, 0x64, 0x35, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x1a, 0xca, 0x02, 0x0a, - 0x03, 0x47, 0x65, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x01, 0x52, 0x03, 0x6c, 0x61, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x03, 0x6c, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x61, 0x73, 0x74, - 0x66, 0x69, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6c, 0x61, 0x73, 0x74, 0x66, - 0x69, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x70, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x70, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, - 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, - 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x66, 0x69, 0x70, 0x73, - 0x31, 0x30, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x67, 0x69, 0x6f, - 0x6e, 0x66, 0x69, 0x70, 0x73, 0x31, 0x30, 0x34, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x65, 0x74, 0x72, - 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x65, 0x74, 0x72, 0x6f, 0x12, 0x12, - 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, - 0x74, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x7a, 0x69, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x7a, 0x69, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x74, 0x63, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x75, 0x74, 0x63, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x1a, 0xb9, 0x02, 0x0a, 0x09, 0x55, 0x73, - 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x08, 0x62, 0x72, 0x6f, 0x77, 0x73, - 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, - 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, - 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x42, 0x72, 0x61, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x62, - 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x73, 0x12, 0x4e, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, - 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, - 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x42, 0x72, 0x61, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, - 0x22, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, - 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2a, 0x05, - 0x08, 0x64, 0x10, 0x90, 0x4e, 0x1a, 0x45, 0x0a, 0x0c, 0x42, 0x72, 0x61, 0x6e, 0x64, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x72, 0x61, 0x6e, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x1a, 0x85, 0x05, 0x0a, - 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x79, 0x65, 0x72, 0x75, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x79, 0x65, 0x72, 0x75, 0x69, - 0x64, 0x12, 0x14, 0x0a, 0x03, 0x79, 0x6f, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, - 0x18, 0x01, 0x52, 0x03, 0x79, 0x6f, 0x62, 0x12, 0x1a, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x67, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x12, - 0x18, 0x0a, 0x07, 0x6b, 0x77, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x07, 0x6b, 0x77, 0x61, 0x72, 0x72, 0x61, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x03, 0x67, 0x65, 0x6f, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, - 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, - 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x47, 0x65, - 0x6f, 0x52, 0x03, 0x67, 0x65, 0x6f, 0x12, 0x3e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, - 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, - 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, - 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, - 0x12, 0x42, 0x0a, 0x04, 0x65, 0x69, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x2e, 0x45, 0x49, 0x44, 0x52, 0x04, - 0x65, 0x69, 0x64, 0x73, 0x1a, 0xe6, 0x01, 0x0a, 0x03, 0x45, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6d, 0x6d, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6d, 0x6d, 0x12, 0x46, 0x0a, 0x04, 0x75, 0x69, - 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, - 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, - 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x2e, 0x45, 0x49, 0x44, 0x2e, 0x55, 0x49, 0x44, 0x52, 0x04, 0x75, 0x69, - 0x64, 0x73, 0x1a, 0x32, 0x0a, 0x03, 0x55, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x61, 0x74, 0x79, 0x70, 0x65, 0x2a, - 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x2a, 0x05, 0x08, - 0x64, 0x10, 0x90, 0x4e, 0x1a, 0xcb, 0x01, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x4c, 0x0a, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, - 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, - 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x1a, - 0x4a, 0x0a, 0x07, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x2a, 0x05, 0x08, 0x64, 0x10, - 0x90, 0x4e, 0x1a, 0x85, 0x01, 0x0a, 0x04, 0x52, 0x65, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, - 0x6f, 0x70, 0x70, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x63, 0x6f, 0x70, 0x70, - 0x61, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x64, 0x70, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x04, 0x67, 0x64, 0x70, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x76, - 0x61, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x50, 0x72, 0x69, - 0x76, 0x61, 0x63, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x70, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x67, 0x70, 0x70, 0x12, 0x1b, 0x0a, 0x07, 0x67, 0x70, 0x70, 0x5f, 0x73, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x06, 0x67, 0x70, 0x70, - 0x53, 0x69, 0x64, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x1a, 0x72, 0x0a, 0x09, 0x44, 0x75, - 0x72, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x73, 0x12, 0x18, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x64, 0x75, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x64, 0x75, - 0x72, 0x12, 0x18, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x64, 0x75, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x64, 0x75, 0x72, 0x12, 0x1d, 0x0a, 0x08, 0x62, - 0x69, 0x64, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x3a, 0x01, 0x30, - 0x52, 0x08, 0x62, 0x69, 0x64, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, - 0x4e, 0x42, 0x0b, 0x0a, 0x09, 0x64, 0x75, 0x72, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x2a, 0x05, - 0x08, 0x64, 0x10, 0x90, 0x4e, 0x42, 0x1b, 0x0a, 0x19, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6f, 0x6e, 0x65, - 0x6f, 0x66, 0x22, 0x86, 0x09, 0x0a, 0x0b, 0x42, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x48, 0x0a, 0x07, 0x73, 0x65, 0x61, 0x74, 0x62, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, - 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, - 0x42, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x74, - 0x42, 0x69, 0x64, 0x52, 0x07, 0x73, 0x65, 0x61, 0x74, 0x62, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x62, 0x69, 0x64, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x69, 0x64, - 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x75, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x63, 0x75, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x62, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x6e, 0x62, 0x72, 0x1a, 0xbb, 0x07, 0x0a, 0x07, 0x53, 0x65, 0x61, 0x74, 0x42, - 0x69, 0x64, 0x12, 0x44, 0x0a, 0x03, 0x62, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x32, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x74, 0x42, 0x69, 0x64, 0x2e, - 0x42, 0x69, 0x64, 0x52, 0x03, 0x62, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x61, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x65, 0x61, 0x74, 0x12, 0x1b, 0x0a, 0x05, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, - 0x73, 0x65, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0xb1, 0x06, 0x0a, 0x03, 0x42, 0x69, - 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x69, 0x6d, 0x70, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x75, 0x72, - 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x75, 0x72, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x62, 0x75, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x75, 0x72, 0x6c, 0x18, 0x17, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x75, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x03, 0x61, 0x64, 0x6d, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x61, 0x64, 0x6d, 0x12, 0x4a, 0x0a, - 0x0a, 0x61, 0x64, 0x6d, 0x5f, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, - 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x09, - 0x61, 0x64, 0x6d, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x69, 0x64, 0x12, 0x18, 0x0a, - 0x07, 0x61, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, - 0x61, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x69, 0x75, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, - 0x75, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x72, 0x69, 0x64, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x72, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x63, - 0x74, 0x69, 0x63, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x63, 0x74, 0x69, - 0x63, 0x12, 0x19, 0x0a, 0x06, 0x63, 0x61, 0x74, 0x74, 0x61, 0x78, 0x18, 0x1e, 0x20, 0x01, 0x28, - 0x05, 0x3a, 0x01, 0x31, 0x52, 0x06, 0x63, 0x61, 0x74, 0x74, 0x61, 0x78, 0x12, 0x10, 0x0a, 0x03, - 0x63, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x63, 0x61, 0x74, 0x12, 0x16, - 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, - 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x12, 0x16, 0x0a, 0x04, 0x61, 0x70, 0x69, 0x73, 0x18, 0x1f, - 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x61, 0x70, 0x69, 0x73, 0x12, 0x14, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x12, 0x26, 0x0a, 0x0e, 0x71, 0x61, 0x67, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x72, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x71, 0x61, 0x67, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x6e, 0x67, 0x62, 0x18, 0x1d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x6e, 0x67, 0x62, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, - 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x61, 0x6c, - 0x69, 0x64, 0x12, 0x0c, 0x0a, 0x01, 0x77, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x77, - 0x12, 0x0c, 0x0a, 0x01, 0x68, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x68, 0x12, 0x16, - 0x0a, 0x06, 0x77, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x77, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x10, - 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78, 0x70, - 0x12, 0x10, 0x0a, 0x03, 0x64, 0x75, 0x72, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, - 0x75, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x74, 0x79, 0x70, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x6d, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x09, 0x73, 0x6c, 0x6f, 0x74, - 0x69, 0x6e, 0x70, 0x6f, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x09, - 0x73, 0x6c, 0x6f, 0x74, 0x69, 0x6e, 0x70, 0x6f, 0x64, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, - 0x42, 0x0b, 0x0a, 0x09, 0x61, 0x64, 0x6d, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x2a, 0x05, 0x08, - 0x64, 0x10, 0x90, 0x4e, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x22, 0x8c, 0x09, 0x0a, 0x0d, - 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x65, 0x72, 0x12, - 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x64, 0x75, 0x6e, 0x69, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x64, 0x75, 0x6e, 0x69, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x78, 0x74, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x63, 0x6d, 0x74, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6c, 0x63, 0x6d, 0x74, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x1d, 0x0a, 0x08, 0x70, 0x6c, 0x63, 0x6d, 0x74, 0x63, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x3a, 0x01, 0x31, 0x52, 0x08, 0x70, 0x6c, 0x63, 0x6d, 0x74, 0x63, 0x6e, 0x74, 0x12, 0x13, - 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x03, - 0x73, 0x65, 0x71, 0x12, 0x46, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, - 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, - 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x73, - 0x73, 0x65, 0x74, 0x52, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, - 0x75, 0x72, 0x6c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0b, 0x61, 0x75, 0x72, 0x6c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x0a, - 0x0b, 0x64, 0x75, 0x72, 0x6c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0b, 0x64, 0x75, 0x72, 0x6c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x12, - 0x5c, 0x0a, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x73, - 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, - 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, - 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x52, 0x0d, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x18, 0x0a, - 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, - 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x1a, 0xd1, 0x04, 0x0a, 0x05, 0x41, 0x73, 0x73, 0x65, - 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x21, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, - 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, - 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x73, - 0x73, 0x65, 0x74, 0x2e, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x05, 0x74, 0x69, 0x74, - 0x6c, 0x65, 0x12, 0x48, 0x0a, 0x03, 0x69, 0x6d, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x34, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x2e, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x03, 0x69, 0x6d, 0x67, 0x12, 0x47, 0x0a, 0x05, - 0x76, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6f, - 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, - 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x48, 0x00, 0x52, 0x05, - 0x76, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x49, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, - 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, - 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x73, - 0x73, 0x65, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x1a, 0x20, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x2a, 0x05, 0x08, 0x64, 0x10, - 0x90, 0x4e, 0x1a, 0x7c, 0x0a, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x0c, 0x0a, 0x01, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x77, 0x12, 0x0c, 0x0a, - 0x01, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x77, - 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x77, 0x6d, 0x69, 0x6e, 0x12, - 0x12, 0x0a, 0x04, 0x68, 0x6d, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x68, - 0x6d, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x05, 0x6d, 0x69, 0x6d, 0x65, 0x73, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, - 0x1a, 0x33, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x2a, 0x05, - 0x08, 0x64, 0x10, 0x90, 0x4e, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x42, 0x0d, 0x0a, 0x0b, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x1a, 0x46, 0x0a, 0x0d, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x2a, 0x05, 0x08, 0x64, - 0x10, 0x90, 0x4e, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x22, 0xdd, 0x0a, 0x0a, 0x0e, 0x4e, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x65, 0x72, 0x12, - 0x47, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, - 0x52, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x73, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, - 0x65, 0x74, 0x73, 0x75, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x63, 0x6f, 0x75, 0x72, 0x6c, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x63, 0x6f, 0x75, 0x72, 0x6c, 0x12, 0x42, - 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, - 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, - 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x04, 0x6c, 0x69, - 0x6e, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x70, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x72, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6d, 0x70, 0x74, 0x72, 0x61, 0x63, - 0x6b, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x73, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, - 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x73, 0x74, 0x72, 0x61, 0x63, 0x6b, - 0x65, 0x72, 0x12, 0x5c, 0x0a, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x74, 0x72, 0x61, 0x63, 0x6b, - 0x65, 0x72, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, - 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, - 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x65, - 0x72, 0x52, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x73, - 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x1a, 0x61, 0x0a, 0x04, 0x4c, 0x69, - 0x6e, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x75, 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x74, 0x72, 0x61, - 0x63, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6c, 0x69, - 0x63, 0x6b, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, - 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x61, - 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x1a, 0xdc, 0x05, - 0x0a, 0x05, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, - 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x4d, 0x0a, 0x05, 0x74, 0x69, - 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, - 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, - 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x54, 0x69, 0x74, 0x6c, 0x65, - 0x48, 0x00, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x49, 0x0a, 0x03, 0x69, 0x6d, 0x67, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, - 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, - 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, - 0x03, 0x69, 0x6d, 0x67, 0x12, 0x4d, 0x0a, 0x05, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, - 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, - 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, - 0x73, 0x73, 0x65, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x48, 0x00, 0x52, 0x05, 0x76, 0x69, - 0x64, 0x65, 0x6f, 0x12, 0x4a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, - 0x61, 0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x73, 0x73, - 0x65, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x42, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, - 0x63, 0x6f, 0x6d, 0x2e, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x72, 0x74, 0x62, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x04, 0x6c, - 0x69, 0x6e, 0x6b, 0x1a, 0x34, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6c, - 0x65, 0x6e, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x1a, 0x50, 0x0a, 0x05, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x0c, 0x0a, 0x01, 0x77, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x01, 0x77, 0x12, 0x0c, 0x0a, 0x01, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x01, 0x68, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x1a, 0x5f, 0x0a, 0x04, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x65, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6c, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x1a, 0x28, 0x0a, 0x05, - 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x61, 0x73, 0x74, 0x74, 0x61, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x61, 0x73, 0x74, 0x74, 0x61, 0x67, 0x2a, - 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x42, 0x0d, 0x0a, - 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x1a, 0x75, 0x0a, 0x0c, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, - 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x64, 0x61, 0x74, 0x61, 0x2a, 0x05, 0x08, 0x64, - 0x10, 0x90, 0x4e, 0x2a, 0x05, 0x08, 0x64, 0x10, 0x90, 0x4e, 0x2a, 0x55, 0x0a, 0x0c, 0x42, 0x61, - 0x6e, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x58, 0x48, - 0x54, 0x4d, 0x4c, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x41, 0x44, 0x10, 0x01, 0x12, 0x13, 0x0a, - 0x0f, 0x58, 0x48, 0x54, 0x4d, 0x4c, 0x5f, 0x42, 0x41, 0x4e, 0x4e, 0x45, 0x52, 0x5f, 0x41, 0x44, - 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x4a, 0x41, 0x56, 0x41, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, - 0x5f, 0x41, 0x44, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x10, - 0x04, 0x2a, 0x74, 0x0a, 0x08, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, - 0x0c, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x12, - 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, 0x5f, 0x57, 0x41, 0x4c, 0x4c, 0x10, 0x02, 0x12, 0x0d, 0x0a, - 0x09, 0x4e, 0x45, 0x57, 0x53, 0x5f, 0x46, 0x45, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x43, - 0x41, 0x52, 0x4f, 0x55, 0x53, 0x45, 0x4c, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4f, 0x4e, - 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x10, 0x06, 0x12, 0x08, 0x0a, - 0x04, 0x47, 0x52, 0x49, 0x44, 0x10, 0x07, 0x2a, 0x7c, 0x0a, 0x08, 0x41, 0x64, 0x55, 0x6e, 0x69, - 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x41, 0x49, 0x44, 0x5f, 0x53, 0x45, 0x41, 0x52, - 0x43, 0x48, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x45, 0x43, - 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x57, 0x49, 0x44, 0x47, - 0x45, 0x54, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x52, 0x4f, 0x4d, 0x4f, 0x54, 0x45, 0x44, - 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x41, - 0x42, 0x5f, 0x49, 0x4e, 0x5f, 0x41, 0x44, 0x5f, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10, 0x04, - 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x44, 0x55, 0x4e, 0x49, 0x54, 0x49, 0x44, 0x5f, 0x43, 0x55, 0x53, - 0x54, 0x4f, 0x4d, 0x10, 0x05, 0x2a, 0x33, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x10, - 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x4f, 0x43, 0x49, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x0b, 0x0a, - 0x07, 0x50, 0x52, 0x4f, 0x44, 0x55, 0x43, 0x54, 0x10, 0x03, 0x42, 0x45, 0x42, 0x07, 0x4f, 0x70, - 0x65, 0x6e, 0x52, 0x74, 0x62, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x69, 0x61, 0x62, 0x74, 0x65, 0x63, 0x68, 0x6c, 0x61, 0x62, 0x2f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x2d, 0x72, 0x74, 0x62, 0x2d, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, - 0x72, 0x6b, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x72, 0x74, - 0x62, -}) +const file_com_iabtechlab_openrtb_v2_openrtb_proto_rawDesc = "" + + "\n" + + "'com/iabtechlab/openrtb/v2/openrtb.proto\x12\x19com.iabtechlab.openrtb.v2\"\xcbZ\n" + + "\n" + + "BidRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12;\n" + + "\x03imp\x18\x02 \x03(\v2).com.iabtechlab.openrtb.v2.BidRequest.ImpR\x03imp\x12@\n" + + "\x04site\x18\x03 \x01(\v2*.com.iabtechlab.openrtb.v2.BidRequest.SiteH\x00R\x04site\x12=\n" + + "\x03app\x18\x04 \x01(\v2).com.iabtechlab.openrtb.v2.BidRequest.AppH\x00R\x03app\x12@\n" + + "\x04dooh\x18\x16 \x01(\v2*.com.iabtechlab.openrtb.v2.BidRequest.DoohH\x00R\x04dooh\x12D\n" + + "\x06device\x18\x05 \x01(\v2,.com.iabtechlab.openrtb.v2.BidRequest.DeviceR\x06device\x12>\n" + + "\x04user\x18\x06 \x01(\v2*.com.iabtechlab.openrtb.v2.BidRequest.UserR\x04user\x12\x19\n" + + "\x04test\x18\x0f \x01(\b:\x05falseR\x04test\x12\x11\n" + + "\x02at\x18\a \x01(\x05:\x012R\x02at\x12\x12\n" + + "\x04tmax\x18\b \x01(\x05R\x04tmax\x12\x14\n" + + "\x05wseat\x18\t \x03(\tR\x05wseat\x12\x14\n" + + "\x05bseat\x18\x11 \x03(\tR\x05bseat\x12\x1f\n" + + "\aallimps\x18\n" + + " \x01(\b:\x05falseR\aallimps\x12\x10\n" + + "\x03cur\x18\v \x03(\tR\x03cur\x12\x14\n" + + "\x05wlang\x18\x12 \x03(\tR\x05wlang\x12\x16\n" + + "\x06wlangb\x18\x14 \x03(\tR\x06wlangb\x12\x12\n" + + "\x04acat\x18\x17 \x03(\tR\x04acat\x12\x12\n" + + "\x04bcat\x18\f \x03(\tR\x04bcat\x12\x19\n" + + "\x06cattax\x18\x15 \x01(\x05:\x011R\x06cattax\x12\x12\n" + + "\x04badv\x18\r \x03(\tR\x04badv\x12\x12\n" + + "\x04bapp\x18\x10 \x03(\tR\x04bapp\x12D\n" + + "\x06source\x18\x13 \x01(\v2,.com.iabtechlab.openrtb.v2.BidRequest.SourceR\x06source\x12>\n" + + "\x04regs\x18\x0e \x01(\v2*.com.iabtechlab.openrtb.v2.BidRequest.RegsR\x04regs\x1a\xcd\x03\n" + + "\x06Source\x12\x0e\n" + + "\x02fd\x18\x01 \x01(\bR\x02fd\x12\x10\n" + + "\x03tid\x18\x02 \x01(\tR\x03tid\x12\x16\n" + + "\x06pchain\x18\x03 \x01(\tR\x06pchain\x12P\n" + + "\x06schain\x18\x04 \x01(\v28.com.iabtechlab.openrtb.v2.BidRequest.Source.SupplyChainR\x06schain\x1a\xaf\x02\n" + + "\vSupplyChain\x12\x1a\n" + + "\bcomplete\x18\x01 \x01(\bR\bcomplete\x12^\n" + + "\x05nodes\x18\x02 \x03(\v2H.com.iabtechlab.openrtb.v2.BidRequest.Source.SupplyChain.SupplyChainNodeR\x05nodes\x12\x10\n" + + "\x03ver\x18\x03 \x01(\tR\x03ver\x1a\x8a\x01\n" + + "\x0fSupplyChainNode\x12\x10\n" + + "\x03asi\x18\x01 \x01(\tR\x03asi\x12\x10\n" + + "\x03sid\x18\x02 \x01(\tR\x03sid\x12\x10\n" + + "\x03rid\x18\x03 \x01(\tR\x03rid\x12\x12\n" + + "\x04name\x18\x04 \x01(\tR\x04name\x12\x16\n" + + "\x06domain\x18\x05 \x01(\tR\x06domain\x12\x0e\n" + + "\x02hp\x18\x06 \x01(\bR\x02hp*\x05\bd\x10\x90N*\x05\bd\x10\x90N*\x05\bd\x10\x90N\x1a\x8e$\n" + + "\x03Imp\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12H\n" + + "\x06metric\x18\x11 \x03(\v20.com.iabtechlab.openrtb.v2.BidRequest.Imp.MetricR\x06metric\x12H\n" + + "\x06banner\x18\x02 \x01(\v20.com.iabtechlab.openrtb.v2.BidRequest.Imp.BannerR\x06banner\x12E\n" + + "\x05video\x18\x03 \x01(\v2/.com.iabtechlab.openrtb.v2.BidRequest.Imp.VideoR\x05video\x12E\n" + + "\x05audio\x18\x0f \x01(\v2/.com.iabtechlab.openrtb.v2.BidRequest.Imp.AudioR\x05audio\x12H\n" + + "\x06native\x18\r \x01(\v20.com.iabtechlab.openrtb.v2.BidRequest.Imp.NativeR\x06native\x12?\n" + + "\x03pmp\x18\v \x01(\v2-.com.iabtechlab.openrtb.v2.BidRequest.Imp.PmpR\x03pmp\x12&\n" + + "\x0edisplaymanager\x18\x04 \x01(\tR\x0edisplaymanager\x12,\n" + + "\x11displaymanagerver\x18\x05 \x01(\tR\x11displaymanagerver\x12\x14\n" + + "\x05instl\x18\x06 \x01(\bR\x05instl\x12\x14\n" + + "\x05tagid\x18\a \x01(\tR\x05tagid\x12\x1d\n" + + "\bbidfloor\x18\b \x01(\x01:\x010R\bbidfloor\x12%\n" + + "\vbidfloorcur\x18\t \x01(\t:\x03USDR\vbidfloorcur\x12\"\n" + + "\fclickbrowser\x18\x10 \x01(\bR\fclickbrowser\x12\x16\n" + + "\x06secure\x18\f \x01(\bR\x06secure\x12\"\n" + + "\fiframebuster\x18\n" + + " \x03(\tR\fiframebuster\x12\x19\n" + + "\x04rwdd\x18\x12 \x01(\b:\x05falseR\x04rwdd\x12\x15\n" + + "\x04ssai\x18\x13 \x01(\x05:\x010R\x04ssai\x12\x10\n" + + "\x03exp\x18\x0e \x01(\x05R\x03exp\x12?\n" + + "\x03qty\x18\x14 \x01(\v2-.com.iabtechlab.openrtb.v2.BidRequest.Imp.QtyR\x03qty\x12\x0e\n" + + "\x02dt\x18\x15 \x01(\x01R\x02dt\x12K\n" + + "\arefresh\x18\x16 \x01(\v21.com.iabtechlab.openrtb.v2.BidRequest.Imp.RefreshR\arefresh\x1aQ\n" + + "\x06Metric\x12\x12\n" + + "\x04type\x18\x01 \x01(\tR\x04type\x12\x14\n" + + "\x05value\x18\x02 \x01(\x01R\x05value\x12\x16\n" + + "\x06vendor\x18\x03 \x01(\tR\x06vendor*\x05\bd\x10\x90N\x1a\x99\x04\n" + + "\x06Banner\x12O\n" + + "\x06format\x18\x0f \x03(\v27.com.iabtechlab.openrtb.v2.BidRequest.Imp.Banner.FormatR\x06format\x12\f\n" + + "\x01w\x18\x01 \x01(\x05R\x01w\x12\f\n" + + "\x01h\x18\x02 \x01(\x05R\x01h\x12\x18\n" + + "\x05btype\x18\x05 \x03(\x05B\x02\x10\x01R\x05btype\x12\x18\n" + + "\x05battr\x18\x06 \x03(\x05B\x02\x10\x01R\x05battr\x12\x10\n" + + "\x03pos\x18\x04 \x01(\x05R\x03pos\x12\x14\n" + + "\x05mimes\x18\a \x03(\tR\x05mimes\x12\x1a\n" + + "\btopframe\x18\b \x01(\bR\btopframe\x12\x1a\n" + + "\x06expdir\x18\t \x03(\x05B\x02\x10\x01R\x06expdir\x12\x14\n" + + "\x03api\x18\n" + + " \x03(\x05B\x02\x10\x01R\x03api\x12\x0e\n" + + "\x02id\x18\x03 \x01(\tR\x02id\x12\x10\n" + + "\x03vcm\x18\x10 \x01(\bR\x03vcm\x12\x16\n" + + "\x04wmax\x18\v \x01(\x05B\x02\x18\x01R\x04wmax\x12\x16\n" + + "\x04hmax\x18\f \x01(\x05B\x02\x18\x01R\x04hmax\x12\x16\n" + + "\x04wmin\x18\r \x01(\x05B\x02\x18\x01R\x04wmin\x12\x16\n" + + "\x04hmin\x18\x0e \x01(\x05B\x02\x18\x01R\x04hmin\x1ao\n" + + "\x06Format\x12\f\n" + + "\x01w\x18\x01 \x01(\x05R\x01w\x12\f\n" + + "\x01h\x18\x02 \x01(\x05R\x01h\x12\x16\n" + + "\x06wratio\x18\x03 \x01(\x05R\x06wratio\x12\x16\n" + + "\x06hratio\x18\x04 \x01(\x05R\x06hratio\x12\x12\n" + + "\x04wmin\x18\x05 \x01(\x05R\x04wmin*\x05\bd\x10\x90N*\x05\bd\x10\x90N\x1a\xa5\t\n" + + "\x05Video\x12\x14\n" + + "\x05mimes\x18\x01 \x03(\tR\x05mimes\x12#\n" + + "\vminduration\x18\x03 \x01(\x05:\x010R\vminduration\x12 \n" + + "\vmaxduration\x18\x04 \x01(\x05R\vmaxduration\x12\x1e\n" + + "\n" + + "startdelay\x18\b \x01(\x05R\n" + + "startdelay\x12\x16\n" + + "\x06maxseq\x18\x1c \x01(\x05R\x06maxseq\x12\x16\n" + + "\x06poddur\x18\x1d \x01(\x05R\x06poddur\x12 \n" + + "\tprotocols\x18\x15 \x03(\x05B\x02\x10\x01R\tprotocols\x12\f\n" + + "\x01w\x18\x06 \x01(\x05R\x01w\x12\f\n" + + "\x01h\x18\a \x01(\x05R\x01h\x12\x14\n" + + "\x05podid\x18\x1e \x01(\tR\x05podid\x12\x19\n" + + "\x06podseq\x18\x1f \x01(\x05:\x010R\x06podseq\x12\x1c\n" + + "\arqddurs\x18 \x03(\x05B\x02\x10\x01R\arqddurs\x12 \n" + + "\tplacement\x18\x1a \x01(\x05B\x02\x18\x01R\tplacement\x12\x14\n" + + "\x05plcmt\x18# \x01(\x05R\x05plcmt\x12\x1c\n" + + "\tlinearity\x18\x02 \x01(\x05R\tlinearity\x12\x12\n" + + "\x04skip\x18\x17 \x01(\bR\x04skip\x12\x18\n" + + "\askipmin\x18\x18 \x01(\x05R\askipmin\x12\x1c\n" + + "\tskipafter\x18\x19 \x01(\x05R\tskipafter\x12!\n" + + "\bsequence\x18\t \x01(\x05:\x010B\x02\x18\x01R\bsequence\x12\x1f\n" + + "\tslotinpod\x18! \x01(\x05:\x010R\tslotinpod\x12\"\n" + + "\fmincpmpersec\x18\" \x01(\x01R\fmincpmpersec\x12\x18\n" + + "\x05battr\x18\n" + + " \x03(\x05B\x02\x10\x01R\x05battr\x12 \n" + + "\vmaxextended\x18\v \x01(\x05R\vmaxextended\x12\x1e\n" + + "\n" + + "minbitrate\x18\f \x01(\x05R\n" + + "minbitrate\x12\x1e\n" + + "\n" + + "maxbitrate\x18\r \x01(\x05R\n" + + "maxbitrate\x12*\n" + + "\rboxingallowed\x18\x0e \x01(\b:\x04trueR\rboxingallowed\x12*\n" + + "\x0eplaybackmethod\x18\x0f \x03(\x05B\x02\x10\x01R\x0eplaybackmethod\x12 \n" + + "\vplaybackend\x18\x1b \x01(\x05R\vplaybackend\x12\x1e\n" + + "\bdelivery\x18\x10 \x03(\x05B\x02\x10\x01R\bdelivery\x12\x10\n" + + "\x03pos\x18\x11 \x01(\x05R\x03pos\x12R\n" + + "\vcompanionad\x18\x12 \x03(\v20.com.iabtechlab.openrtb.v2.BidRequest.Imp.BannerR\vcompanionad\x12\x14\n" + + "\x03api\x18\x13 \x03(\x05B\x02\x10\x01R\x03api\x12(\n" + + "\rcompaniontype\x18\x14 \x03(\x05B\x02\x10\x01R\rcompaniontype\x12 \n" + + "\tpoddedupe\x18% \x03(\x05B\x02\x10\x01R\tpoddedupe\x12M\n" + + "\tdurfloors\x18$ \x03(\v2/.com.iabtechlab.openrtb.v2.BidRequest.DurFloorsR\tdurfloors\x12\x1e\n" + + "\bprotocol\x18\x05 \x01(\x05B\x02\x18\x01R\bprotocol*\x05\bd\x10\x90NJ\x04\b\x16\x10\x17\x1a\xd7\x06\n" + + "\x05Audio\x12\x14\n" + + "\x05mimes\x18\x01 \x03(\tR\x05mimes\x12#\n" + + "\vminduration\x18\x02 \x01(\x05:\x010R\vminduration\x12 \n" + + "\vmaxduration\x18\x03 \x01(\x05R\vmaxduration\x12\x16\n" + + "\x06poddur\x18\x19 \x01(\x05R\x06poddur\x12 \n" + + "\tprotocols\x18\x04 \x03(\x05B\x02\x10\x01R\tprotocols\x12\x1e\n" + + "\n" + + "startdelay\x18\x05 \x01(\x05R\n" + + "startdelay\x12\x1c\n" + + "\arqddurs\x18\x1a \x03(\x05B\x02\x10\x01R\arqddurs\x12\x14\n" + + "\x05podid\x18\x1b \x01(\tR\x05podid\x12\x19\n" + + "\x06podseq\x18\x1c \x01(\x05:\x010R\x06podseq\x12!\n" + + "\bsequence\x18\x06 \x01(\x05:\x010B\x02\x18\x01R\bsequence\x12\x1f\n" + + "\tslotinpod\x18\x1d \x01(\x05:\x010R\tslotinpod\x12\"\n" + + "\fmincpmpersec\x18\x1e \x01(\x01R\fmincpmpersec\x12\x18\n" + + "\x05battr\x18\a \x03(\x05B\x02\x10\x01R\x05battr\x12 \n" + + "\vmaxextended\x18\b \x01(\x05R\vmaxextended\x12\x1e\n" + + "\n" + + "minbitrate\x18\t \x01(\x05R\n" + + "minbitrate\x12\x1e\n" + + "\n" + + "maxbitrate\x18\n" + + " \x01(\x05R\n" + + "maxbitrate\x12\x1e\n" + + "\bdelivery\x18\v \x03(\x05B\x02\x10\x01R\bdelivery\x12R\n" + + "\vcompanionad\x18\f \x03(\v20.com.iabtechlab.openrtb.v2.BidRequest.Imp.BannerR\vcompanionad\x12\x14\n" + + "\x03api\x18\r \x03(\x05B\x02\x10\x01R\x03api\x12(\n" + + "\rcompaniontype\x18\x14 \x03(\x05B\x02\x10\x01R\rcompaniontype\x12\x16\n" + + "\x06maxseq\x18\x15 \x01(\x05R\x06maxseq\x12\x12\n" + + "\x04feed\x18\x16 \x01(\x05R\x04feed\x12\x1a\n" + + "\bstitched\x18\x17 \x01(\bR\bstitched\x12\x12\n" + + "\x04nvol\x18\x18 \x01(\x05R\x04nvol\x12M\n" + + "\tdurfloors\x18\x1f \x03(\v2/.com.iabtechlab.openrtb.v2.BidRequest.DurFloorsR\tdurfloors*\x05\bd\x10\x90N\x1a\xd1\x01\n" + + "\x06Native\x12\x1a\n" + + "\arequest\x18\x01 \x01(\tH\x00R\arequest\x12Q\n" + + "\x0erequest_native\x182 \x01(\v2(.com.iabtechlab.openrtb.v2.NativeRequestH\x00R\rrequestNative\x12\x10\n" + + "\x03ver\x18\x02 \x01(\tR\x03ver\x12\x14\n" + + "\x03api\x18\x03 \x03(\x05B\x02\x10\x01R\x03api\x12\x18\n" + + "\x05battr\x18\x04 \x03(\x05B\x02\x10\x01R\x05battr*\x05\bd\x10\x90NB\x0f\n" + + "\rrequest_oneof\x1ad\n" + + "\x03Qty\x12\x1e\n" + + "\n" + + "multiplier\x18\x01 \x01(\x01R\n" + + "multiplier\x12\x1e\n" + + "\n" + + "sourcetype\x18\x02 \x01(\x05R\n" + + "sourcetype\x12\x16\n" + + "\x06vendor\x18\x03 \x01(\tR\x06vendor*\x05\bd\x10\x90N\x1a\xd2\x01\n" + + "\aRefresh\x12_\n" + + "\vrefsettings\x18\x01 \x03(\v2=.com.iabtechlab.openrtb.v2.BidRequest.Imp.Refresh.RefSettingsR\vrefsettings\x12\x14\n" + + "\x05count\x18\x02 \x01(\x05R\x05count\x1aI\n" + + "\vRefSettings\x12\x1b\n" + + "\areftype\x18\x01 \x01(\x05:\x010R\areftype\x12\x16\n" + + "\x06minint\x18\x02 \x01(\x05R\x06minint*\x05\bd\x10\x90N*\x05\bd\x10\x90N\x1a\xb8\x03\n" + + "\x03Pmp\x12.\n" + + "\x0fprivate_auction\x18\x01 \x01(\b:\x05falseR\x0eprivateAuction\x12H\n" + + "\x05deals\x18\x02 \x03(\v22.com.iabtechlab.openrtb.v2.BidRequest.Imp.Pmp.DealR\x05deals\x1a\xaf\x02\n" + + "\x04Deal\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x1d\n" + + "\bbidfloor\x18\x02 \x01(\x01:\x010R\bbidfloor\x12%\n" + + "\vbidfloorcur\x18\x03 \x01(\t:\x03USDR\vbidfloorcur\x12\x0e\n" + + "\x02at\x18\x06 \x01(\x05R\x02at\x12\x14\n" + + "\x05wseat\x18\x04 \x03(\tR\x05wseat\x12\x1a\n" + + "\bwadomain\x18\x05 \x03(\tR\bwadomain\x12\x15\n" + + "\x04guar\x18\a \x01(\x05:\x010R\x04guar\x12\"\n" + + "\fmincpmpersec\x18\b \x01(\x01R\fmincpmpersec\x12M\n" + + "\tdurfloors\x18\t \x03(\v2/.com.iabtechlab.openrtb.v2.BidRequest.DurFloorsR\tdurfloors*\x05\bd\x10\x90N*\x05\bd\x10\x90N*\x05\bd\x10\x90N\x1a\xb8\x04\n" + + "\x04Site\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12\x16\n" + + "\x06domain\x18\x03 \x01(\tR\x06domain\x12\x19\n" + + "\x06cattax\x18\x10 \x01(\x05:\x011R\x06cattax\x12\x10\n" + + "\x03cat\x18\x04 \x03(\tR\x03cat\x12\x1e\n" + + "\n" + + "sectioncat\x18\x05 \x03(\tR\n" + + "sectioncat\x12\x18\n" + + "\apagecat\x18\x06 \x03(\tR\apagecat\x12\x12\n" + + "\x04page\x18\a \x01(\tR\x04page\x12\x10\n" + + "\x03ref\x18\t \x01(\tR\x03ref\x12\x16\n" + + "\x06search\x18\n" + + " \x01(\tR\x06search\x12\x16\n" + + "\x06mobile\x18\x0f \x01(\bR\x06mobile\x12$\n" + + "\rprivacypolicy\x18\b \x01(\bR\rprivacypolicy\x12M\n" + + "\tpublisher\x18\v \x01(\v2/.com.iabtechlab.openrtb.v2.BidRequest.PublisherR\tpublisher\x12G\n" + + "\acontent\x18\f \x01(\v2-.com.iabtechlab.openrtb.v2.BidRequest.ContentR\acontent\x12\x1a\n" + + "\bkeywords\x18\r \x01(\tR\bkeywords\x12\x18\n" + + "\akwarray\x18\x12 \x03(\tR\akwarray\x126\n" + + "\x16inventorypartnerdomain\x18\x11 \x01(\tR\x16inventorypartnerdomain*\x05\bd\x10\x90NJ\x04\b\x0e\x10\x0f\x1a\xbb\x04\n" + + "\x03App\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12\x16\n" + + "\x06bundle\x18\b \x01(\tR\x06bundle\x12\x16\n" + + "\x06domain\x18\x03 \x01(\tR\x06domain\x12\x1a\n" + + "\bstoreurl\x18\x10 \x01(\tR\bstoreurl\x12\x19\n" + + "\x06cattax\x18\x11 \x01(\x05:\x011R\x06cattax\x12\x10\n" + + "\x03cat\x18\x04 \x03(\tR\x03cat\x12\x1e\n" + + "\n" + + "sectioncat\x18\x05 \x03(\tR\n" + + "sectioncat\x12\x18\n" + + "\apagecat\x18\x06 \x03(\tR\apagecat\x12\x10\n" + + "\x03ver\x18\a \x01(\tR\x03ver\x12$\n" + + "\rprivacypolicy\x18\t \x01(\bR\rprivacypolicy\x12\x12\n" + + "\x04paid\x18\n" + + " \x01(\bR\x04paid\x12M\n" + + "\tpublisher\x18\v \x01(\v2/.com.iabtechlab.openrtb.v2.BidRequest.PublisherR\tpublisher\x12G\n" + + "\acontent\x18\f \x01(\v2-.com.iabtechlab.openrtb.v2.BidRequest.ContentR\acontent\x12\x1a\n" + + "\bkeywords\x18\r \x01(\tR\bkeywords\x12\x18\n" + + "\akwarray\x18\x13 \x03(\tR\akwarray\x126\n" + + "\x16inventorypartnerdomain\x18\x12 \x01(\tR\x16inventorypartnerdomain*\x05\bd\x10\x90NJ\x04\b\x0e\x10\x0f\x1a\xc2\x02\n" + + "\x04Dooh\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12\x1c\n" + + "\tvenuetype\x18\x03 \x03(\tR\tvenuetype\x12%\n" + + "\fvenuetypetax\x18\x04 \x01(\x05:\x011R\fvenuetypetax\x12M\n" + + "\tpublisher\x18\x05 \x01(\v2/.com.iabtechlab.openrtb.v2.BidRequest.PublisherR\tpublisher\x12\x16\n" + + "\x06domain\x18\x06 \x01(\tR\x06domain\x12\x1a\n" + + "\bkeywords\x18\a \x01(\tR\bkeywords\x12G\n" + + "\acontent\x18\b \x01(\v2-.com.iabtechlab.openrtb.v2.BidRequest.ContentR\acontent*\x05\bd\x10\x90N\x1a{\n" + + "\tPublisher\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12\x19\n" + + "\x06cattax\x18\x05 \x01(\x05:\x011R\x06cattax\x12\x10\n" + + "\x03cat\x18\x03 \x03(\tR\x03cat\x12\x16\n" + + "\x06domain\x18\x04 \x01(\tR\x06domain*\x05\bd\x10\x90N\x1a\xa4\b\n" + + "\aContent\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n" + + "\aepisode\x18\x02 \x01(\x05R\aepisode\x12\x14\n" + + "\x05title\x18\x03 \x01(\tR\x05title\x12\x16\n" + + "\x06series\x18\x04 \x01(\tR\x06series\x12\x16\n" + + "\x06season\x18\x05 \x01(\tR\x06season\x12\x16\n" + + "\x06artist\x18\x15 \x01(\tR\x06artist\x12\x14\n" + + "\x05genre\x18\x16 \x01(\tR\x05genre\x12\x15\n" + + "\x04gtax\x18! \x01(\x05:\x019R\x04gtax\x12\x1a\n" + + "\x06genres\x18\" \x03(\x05B\x02\x10\x01R\x06genres\x12\x14\n" + + "\x05album\x18\x17 \x01(\tR\x05album\x12\x12\n" + + "\x04isrc\x18\x18 \x01(\tR\x04isrc\x12J\n" + + "\bproducer\x18\x0f \x01(\v2..com.iabtechlab.openrtb.v2.BidRequest.ProducerR\bproducer\x12\x10\n" + + "\x03url\x18\x06 \x01(\tR\x03url\x12\x19\n" + + "\x06cattax\x18\x1b \x01(\x05:\x011R\x06cattax\x12\x10\n" + + "\x03cat\x18\a \x03(\tR\x03cat\x12\x14\n" + + "\x05prodq\x18\x19 \x01(\x05R\x05prodq\x12\x18\n" + + "\acontext\x18\x14 \x01(\x05R\acontext\x12$\n" + + "\rcontentrating\x18\n" + + " \x01(\tR\rcontentrating\x12\x1e\n" + + "\n" + + "userrating\x18\v \x01(\tR\n" + + "userrating\x12&\n" + + "\x0eqagmediarating\x18\x11 \x01(\x05R\x0eqagmediarating\x12\x1a\n" + + "\bkeywords\x18\t \x01(\tR\bkeywords\x12\x18\n" + + "\akwarray\x18 \x03(\tR\akwarray\x12\x1e\n" + + "\n" + + "livestream\x18\r \x01(\bR\n" + + "livestream\x12.\n" + + "\x12sourcerelationship\x18\x0e \x01(\bR\x12sourcerelationship\x12\x10\n" + + "\x03len\x18\x10 \x01(\x05R\x03len\x12\x1a\n" + + "\blanguage\x18\x13 \x01(\tR\blanguage\x12\x14\n" + + "\x05langb\x18\x1d \x01(\tR\x05langb\x12\x1e\n" + + "\n" + + "embeddable\x18\x12 \x01(\bR\n" + + "embeddable\x12>\n" + + "\x04data\x18\x1c \x03(\v2*.com.iabtechlab.openrtb.v2.BidRequest.DataR\x04data\x12G\n" + + "\anetwork\x18\x1e \x01(\v2-.com.iabtechlab.openrtb.v2.BidRequest.NetworkR\anetwork\x12G\n" + + "\achannel\x18\x1f \x01(\v2-.com.iabtechlab.openrtb.v2.BidRequest.ChannelR\achannel\x12&\n" + + "\fvideoquality\x18\b \x01(\x05B\x02\x18\x01R\fvideoquality*\x05\bd\x10\x90NJ\x04\b\f\x10\rJ\x04\b\x1a\x10\x1b\x1az\n" + + "\bProducer\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12\x19\n" + + "\x06cattax\x18\x05 \x01(\x05:\x011R\x06cattax\x12\x10\n" + + "\x03cat\x18\x03 \x03(\tR\x03cat\x12\x16\n" + + "\x06domain\x18\x04 \x01(\tR\x06domain*\x05\bd\x10\x90N\x1aL\n" + + "\aNetwork\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12\x16\n" + + "\x06domain\x18\x03 \x01(\tR\x06domain*\x05\bd\x10\x90N\x1aL\n" + + "\aChannel\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12\x16\n" + + "\x06domain\x18\x03 \x01(\tR\x06domain*\x05\bd\x10\x90N\x1a\xc5\x06\n" + + "\x06Device\x12;\n" + + "\x03geo\x18\x04 \x01(\v2).com.iabtechlab.openrtb.v2.BidRequest.GeoR\x03geo\x12\x10\n" + + "\x03dnt\x18\x01 \x01(\bR\x03dnt\x12\x10\n" + + "\x03lmt\x18\x17 \x01(\bR\x03lmt\x12\x0e\n" + + "\x02ua\x18\x02 \x01(\tR\x02ua\x12A\n" + + "\x03sua\x18\x1f \x01(\v2/.com.iabtechlab.openrtb.v2.BidRequest.UserAgentR\x03sua\x12\x0e\n" + + "\x02ip\x18\x03 \x01(\tR\x02ip\x12\x12\n" + + "\x04ipv6\x18\t \x01(\tR\x04ipv6\x12\x1e\n" + + "\n" + + "devicetype\x18\x12 \x01(\x05R\n" + + "devicetype\x12\x12\n" + + "\x04make\x18\f \x01(\tR\x04make\x12\x14\n" + + "\x05model\x18\r \x01(\tR\x05model\x12\x0e\n" + + "\x02os\x18\x0e \x01(\tR\x02os\x12\x10\n" + + "\x03osv\x18\x0f \x01(\tR\x03osv\x12\x10\n" + + "\x03hwv\x18\x18 \x01(\tR\x03hwv\x12\f\n" + + "\x01w\x18\x19 \x01(\x05R\x01w\x12\f\n" + + "\x01h\x18\x1a \x01(\x05R\x01h\x12\x10\n" + + "\x03ppi\x18\x1b \x01(\x05R\x03ppi\x12\x18\n" + + "\apxratio\x18\x1c \x01(\x01R\apxratio\x12\x0e\n" + + "\x02js\x18\x10 \x01(\bR\x02js\x12\x1a\n" + + "\bgeofetch\x18\x1d \x01(\bR\bgeofetch\x12\x1a\n" + + "\bflashver\x18\x13 \x01(\tR\bflashver\x12\x1a\n" + + "\blanguage\x18\v \x01(\tR\blanguage\x12\x14\n" + + "\x05langb\x18 \x01(\tR\x05langb\x12\x18\n" + + "\acarrier\x18\n" + + " \x01(\tR\acarrier\x12\x16\n" + + "\x06mccmnc\x18\x1e \x01(\tR\x06mccmnc\x12&\n" + + "\x0econnectiontype\x18\x11 \x01(\x05R\x0econnectiontype\x12\x10\n" + + "\x03ifa\x18\x14 \x01(\tR\x03ifa\x12\x1c\n" + + "\adidsha1\x18\x05 \x01(\tB\x02\x18\x01R\adidsha1\x12\x1a\n" + + "\x06didmd5\x18\x06 \x01(\tB\x02\x18\x01R\x06didmd5\x12\x1e\n" + + "\bdpidsha1\x18\a \x01(\tB\x02\x18\x01R\bdpidsha1\x12\x1c\n" + + "\adpidmd5\x18\b \x01(\tB\x02\x18\x01R\adpidmd5\x12\x1c\n" + + "\amacsha1\x18\x15 \x01(\tB\x02\x18\x01R\amacsha1\x12\x1a\n" + + "\x06macmd5\x18\x16 \x01(\tB\x02\x18\x01R\x06macmd5*\x05\bd\x10\x90N\x1a\xca\x02\n" + + "\x03Geo\x12\x10\n" + + "\x03lat\x18\x01 \x01(\x01R\x03lat\x12\x10\n" + + "\x03lon\x18\x02 \x01(\x01R\x03lon\x12\x12\n" + + "\x04type\x18\t \x01(\x05R\x04type\x12\x1a\n" + + "\baccuracy\x18\v \x01(\x05R\baccuracy\x12\x18\n" + + "\alastfix\x18\f \x01(\x05R\alastfix\x12\x1c\n" + + "\tipservice\x18\r \x01(\x05R\tipservice\x12\x18\n" + + "\acountry\x18\x03 \x01(\tR\acountry\x12\x16\n" + + "\x06region\x18\x04 \x01(\tR\x06region\x12$\n" + + "\rregionfips104\x18\x05 \x01(\tR\rregionfips104\x12\x14\n" + + "\x05metro\x18\x06 \x01(\tR\x05metro\x12\x12\n" + + "\x04city\x18\a \x01(\tR\x04city\x12\x10\n" + + "\x03zip\x18\b \x01(\tR\x03zip\x12\x1c\n" + + "\tutcoffset\x18\n" + + " \x01(\x05R\tutcoffset*\x05\bd\x10\x90N\x1a\xb9\x02\n" + + "\tUserAgent\x12N\n" + + "\bbrowsers\x18\x01 \x03(\v22.com.iabtechlab.openrtb.v2.BidRequest.BrandVersionR\bbrowsers\x12N\n" + + "\bplatform\x18\x02 \x01(\v22.com.iabtechlab.openrtb.v2.BidRequest.BrandVersionR\bplatform\x12\x16\n" + + "\x06mobile\x18\x03 \x01(\bR\x06mobile\x12\"\n" + + "\farchitecture\x18\x04 \x01(\tR\farchitecture\x12\x18\n" + + "\abitness\x18\x05 \x01(\tR\abitness\x12\x14\n" + + "\x05model\x18\x06 \x01(\tR\x05model\x12\x19\n" + + "\x06source\x18\a \x01(\x05:\x010R\x06source*\x05\bd\x10\x90N\x1aE\n" + + "\fBrandVersion\x12\x14\n" + + "\x05brand\x18\x01 \x01(\tR\x05brand\x12\x18\n" + + "\aversion\x18\x02 \x03(\tR\aversion*\x05\bd\x10\x90N\x1a\x85\x05\n" + + "\x04User\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x1a\n" + + "\bbuyeruid\x18\x02 \x01(\tR\bbuyeruid\x12\x14\n" + + "\x03yob\x18\x03 \x01(\x05B\x02\x18\x01R\x03yob\x12\x1a\n" + + "\x06gender\x18\x04 \x01(\tB\x02\x18\x01R\x06gender\x12\x1a\n" + + "\bkeywords\x18\x05 \x01(\tR\bkeywords\x12\x18\n" + + "\akwarray\x18\t \x03(\tR\akwarray\x12\x1e\n" + + "\n" + + "customdata\x18\x06 \x01(\tR\n" + + "customdata\x12;\n" + + "\x03geo\x18\a \x01(\v2).com.iabtechlab.openrtb.v2.BidRequest.GeoR\x03geo\x12>\n" + + "\x04data\x18\b \x03(\v2*.com.iabtechlab.openrtb.v2.BidRequest.DataR\x04data\x12\x18\n" + + "\aconsent\x18\n" + + " \x01(\tR\aconsent\x12B\n" + + "\x04eids\x18\v \x03(\v2..com.iabtechlab.openrtb.v2.BidRequest.User.EIDR\x04eids\x1a\xe6\x01\n" + + "\x03EID\x12\x1a\n" + + "\binserter\x18\x03 \x01(\tR\binserter\x12\x16\n" + + "\x06source\x18\x01 \x01(\tR\x06source\x12\x18\n" + + "\amatcher\x18\x04 \x01(\tR\amatcher\x12\x0e\n" + + "\x02mm\x18\x05 \x01(\x05R\x02mm\x12F\n" + + "\x04uids\x18\x02 \x03(\v22.com.iabtechlab.openrtb.v2.BidRequest.User.EID.UIDR\x04uids\x1a2\n" + + "\x03UID\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x14\n" + + "\x05atype\x18\x02 \x01(\x05R\x05atype*\x05\bd\x10\x90N*\x05\bd\x10\x90N*\x05\bd\x10\x90N\x1a\xcb\x01\n" + + "\x04Data\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12L\n" + + "\asegment\x18\x03 \x03(\v22.com.iabtechlab.openrtb.v2.BidRequest.Data.SegmentR\asegment\x1aJ\n" + + "\aSegment\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12\x14\n" + + "\x05value\x18\x03 \x01(\tR\x05value*\x05\bd\x10\x90N*\x05\bd\x10\x90N\x1a\x85\x01\n" + + "\x04Regs\x12\x14\n" + + "\x05coppa\x18\x01 \x01(\bR\x05coppa\x12\x12\n" + + "\x04gdpr\x18\x04 \x01(\bR\x04gdpr\x12\x1d\n" + + "\n" + + "us_privacy\x18\x05 \x01(\tR\tusPrivacy\x12\x10\n" + + "\x03gpp\x18\x02 \x01(\tR\x03gpp\x12\x1b\n" + + "\agpp_sid\x18\x03 \x03(\x05B\x02\x10\x01R\x06gppSid*\x05\bd\x10\x90N\x1ar\n" + + "\tDurFloors\x12\x18\n" + + "\x06mindur\x18\x01 \x01(\x05H\x00R\x06mindur\x12\x18\n" + + "\x06maxdur\x18\x02 \x01(\x05H\x00R\x06maxdur\x12\x1d\n" + + "\bbidfloor\x18\x03 \x01(\x01:\x010R\bbidfloor*\x05\bd\x10\x90NB\v\n" + + "\tdur_oneof*\x05\bd\x10\x90NB\x1b\n" + + "\x19distributionchannel_oneof\"\x86\t\n" + + "\vBidResponse\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12H\n" + + "\aseatbid\x18\x02 \x03(\v2..com.iabtechlab.openrtb.v2.BidResponse.SeatBidR\aseatbid\x12\x14\n" + + "\x05bidid\x18\x03 \x01(\tR\x05bidid\x12\x10\n" + + "\x03cur\x18\x04 \x01(\tR\x03cur\x12\x1e\n" + + "\n" + + "customdata\x18\x05 \x01(\tR\n" + + "customdata\x12\x10\n" + + "\x03nbr\x18\x06 \x01(\x05R\x03nbr\x1a\xbb\a\n" + + "\aSeatBid\x12D\n" + + "\x03bid\x18\x01 \x03(\v22.com.iabtechlab.openrtb.v2.BidResponse.SeatBid.BidR\x03bid\x12\x12\n" + + "\x04seat\x18\x02 \x01(\tR\x04seat\x12\x1b\n" + + "\x05group\x18\x03 \x01(\b:\x05falseR\x05group\x1a\xb1\x06\n" + + "\x03Bid\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x14\n" + + "\x05impid\x18\x02 \x01(\tR\x05impid\x12\x14\n" + + "\x05price\x18\x03 \x01(\x01R\x05price\x12\x12\n" + + "\x04nurl\x18\x05 \x01(\tR\x04nurl\x12\x12\n" + + "\x04burl\x18\x16 \x01(\tR\x04burl\x12\x12\n" + + "\x04lurl\x18\x17 \x01(\tR\x04lurl\x12\x12\n" + + "\x03adm\x18\x06 \x01(\tH\x00R\x03adm\x12J\n" + + "\n" + + "adm_native\x182 \x01(\v2).com.iabtechlab.openrtb.v2.NativeResponseH\x00R\tadmNative\x12\x12\n" + + "\x04adid\x18\x04 \x01(\tR\x04adid\x12\x18\n" + + "\aadomain\x18\a \x03(\tR\aadomain\x12\x16\n" + + "\x06bundle\x18\x0e \x01(\tR\x06bundle\x12\x12\n" + + "\x04iurl\x18\b \x01(\tR\x04iurl\x12\x10\n" + + "\x03cid\x18\t \x01(\tR\x03cid\x12\x12\n" + + "\x04crid\x18\n" + + " \x01(\tR\x04crid\x12\x16\n" + + "\x06tactic\x18\x18 \x01(\tR\x06tactic\x12\x19\n" + + "\x06cattax\x18\x1e \x01(\x05:\x011R\x06cattax\x12\x10\n" + + "\x03cat\x18\x0f \x03(\tR\x03cat\x12\x16\n" + + "\x04attr\x18\v \x03(\x05B\x02\x10\x01R\x04attr\x12\x16\n" + + "\x04apis\x18\x1f \x03(\x05B\x02\x10\x01R\x04apis\x12\x14\n" + + "\x03api\x18\x12 \x01(\x05B\x02\x18\x01R\x03api\x12\x1a\n" + + "\bprotocol\x18\x13 \x01(\x05R\bprotocol\x12&\n" + + "\x0eqagmediarating\x18\x14 \x01(\x05R\x0eqagmediarating\x12\x1a\n" + + "\blanguage\x18\x19 \x01(\tR\blanguage\x12\x14\n" + + "\x05langb\x18\x1d \x01(\tR\x05langb\x12\x16\n" + + "\x06dealid\x18\r \x01(\tR\x06dealid\x12\f\n" + + "\x01w\x18\x10 \x01(\x05R\x01w\x12\f\n" + + "\x01h\x18\x11 \x01(\x05R\x01h\x12\x16\n" + + "\x06wratio\x18\x1a \x01(\x05R\x06wratio\x12\x16\n" + + "\x06hratio\x18\x1b \x01(\x05R\x06hratio\x12\x10\n" + + "\x03exp\x18\x15 \x01(\x05R\x03exp\x12\x10\n" + + "\x03dur\x18 \x01(\x05R\x03dur\x12\x14\n" + + "\x05mtype\x18! \x01(\x05R\x05mtype\x12\x1f\n" + + "\tslotinpod\x18\x1c \x01(\x05:\x010R\tslotinpod*\x05\bd\x10\x90NB\v\n" + + "\tadm_oneof*\x05\bd\x10\x90N*\x05\bd\x10\x90N\"\x8c\t\n" + + "\rNativeRequest\x12\x10\n" + + "\x03ver\x18\x01 \x01(\tR\x03ver\x12\x16\n" + + "\x06layout\x18\x02 \x01(\x05R\x06layout\x12\x16\n" + + "\x06adunit\x18\x03 \x01(\x05R\x06adunit\x12\x18\n" + + "\acontext\x18\a \x01(\x05R\acontext\x12&\n" + + "\x0econtextsubtype\x18\b \x01(\x05R\x0econtextsubtype\x12\x1c\n" + + "\tplcmttype\x18\t \x01(\x05R\tplcmttype\x12\x1d\n" + + "\bplcmtcnt\x18\x04 \x01(\x05:\x011R\bplcmtcnt\x12\x13\n" + + "\x03seq\x18\x05 \x01(\x05:\x010R\x03seq\x12F\n" + + "\x06assets\x18\x06 \x03(\v2..com.iabtechlab.openrtb.v2.NativeRequest.AssetR\x06assets\x12 \n" + + "\vaurlsupport\x18\v \x01(\bR\vaurlsupport\x12 \n" + + "\vdurlsupport\x18\f \x01(\bR\vdurlsupport\x12\\\n" + + "\reventtrackers\x18\r \x03(\v26.com.iabtechlab.openrtb.v2.NativeRequest.EventTrackersR\reventtrackers\x12\x18\n" + + "\aprivacy\x18\x0e \x01(\bR\aprivacy\x1a\xd1\x04\n" + + "\x05Asset\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x05R\x02id\x12!\n" + + "\brequired\x18\x02 \x01(\b:\x05falseR\brequired\x12L\n" + + "\x05title\x18\x03 \x01(\v24.com.iabtechlab.openrtb.v2.NativeRequest.Asset.TitleH\x00R\x05title\x12H\n" + + "\x03img\x18\x04 \x01(\v24.com.iabtechlab.openrtb.v2.NativeRequest.Asset.ImageH\x00R\x03img\x12G\n" + + "\x05video\x18\x05 \x01(\v2/.com.iabtechlab.openrtb.v2.BidRequest.Imp.VideoH\x00R\x05video\x12I\n" + + "\x04data\x18\x06 \x01(\v23.com.iabtechlab.openrtb.v2.NativeRequest.Asset.DataH\x00R\x04data\x1a \n" + + "\x05Title\x12\x10\n" + + "\x03len\x18\x01 \x01(\x05R\x03len*\x05\bd\x10\x90N\x1a|\n" + + "\x05Image\x12\x12\n" + + "\x04type\x18\x01 \x01(\x05R\x04type\x12\f\n" + + "\x01w\x18\x02 \x01(\x05R\x01w\x12\f\n" + + "\x01h\x18\x03 \x01(\x05R\x01h\x12\x12\n" + + "\x04wmin\x18\x04 \x01(\x05R\x04wmin\x12\x12\n" + + "\x04hmin\x18\x05 \x01(\x05R\x04hmin\x12\x14\n" + + "\x05mimes\x18\x06 \x03(\tR\x05mimes*\x05\bd\x10\x90N\x1a3\n" + + "\x04Data\x12\x12\n" + + "\x04type\x18\x01 \x01(\x05R\x04type\x12\x10\n" + + "\x03len\x18\x02 \x01(\x05R\x03len*\x05\bd\x10\x90N*\x05\bd\x10\x90NB\r\n" + + "\vasset_oneof\x1aF\n" + + "\rEventTrackers\x12\x14\n" + + "\x05event\x18\x01 \x01(\x05R\x05event\x12\x18\n" + + "\amethods\x18\x02 \x03(\x05R\amethods*\x05\bd\x10\x90N*\x05\bd\x10\x90N\"\xdd\n" + + "\n" + + "\x0eNativeResponse\x12\x10\n" + + "\x03ver\x18\x01 \x01(\tR\x03ver\x12G\n" + + "\x06assets\x18\x02 \x03(\v2/.com.iabtechlab.openrtb.v2.NativeResponse.AssetR\x06assets\x12\x1c\n" + + "\tassetsurl\x18\x06 \x01(\tR\tassetsurl\x12\x16\n" + + "\x06dcourl\x18\a \x01(\tR\x06dcourl\x12B\n" + + "\x04link\x18\x03 \x01(\v2..com.iabtechlab.openrtb.v2.NativeResponse.LinkR\x04link\x12 \n" + + "\vimptrackers\x18\x04 \x03(\tR\vimptrackers\x12\x1c\n" + + "\tjstracker\x18\x05 \x01(\tR\tjstracker\x12\\\n" + + "\reventtrackers\x18\b \x03(\v26.com.iabtechlab.openrtb.v2.NativeResponse.EventTrackerR\reventtrackers\x12\x18\n" + + "\aprivacy\x18\t \x01(\tR\aprivacy\x1aa\n" + + "\x04Link\x12\x10\n" + + "\x03url\x18\x01 \x01(\tR\x03url\x12$\n" + + "\rclicktrackers\x18\x02 \x03(\tR\rclicktrackers\x12\x1a\n" + + "\bfallback\x18\x03 \x01(\tR\bfallback*\x05\bd\x10\x90N\x1a\xdc\x05\n" + + "\x05Asset\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x05R\x02id\x12!\n" + + "\brequired\x18\x02 \x01(\b:\x05falseR\brequired\x12M\n" + + "\x05title\x18\x03 \x01(\v25.com.iabtechlab.openrtb.v2.NativeResponse.Asset.TitleH\x00R\x05title\x12I\n" + + "\x03img\x18\x04 \x01(\v25.com.iabtechlab.openrtb.v2.NativeResponse.Asset.ImageH\x00R\x03img\x12M\n" + + "\x05video\x18\x05 \x01(\v25.com.iabtechlab.openrtb.v2.NativeResponse.Asset.VideoH\x00R\x05video\x12J\n" + + "\x04data\x18\x06 \x01(\v24.com.iabtechlab.openrtb.v2.NativeResponse.Asset.DataH\x00R\x04data\x12B\n" + + "\x04link\x18\a \x01(\v2..com.iabtechlab.openrtb.v2.NativeResponse.LinkR\x04link\x1a4\n" + + "\x05Title\x12\x12\n" + + "\x04text\x18\x01 \x01(\tR\x04text\x12\x10\n" + + "\x03len\x18\x02 \x01(\x05R\x03len*\x05\bd\x10\x90N\x1aP\n" + + "\x05Image\x12\x12\n" + + "\x04type\x18\x04 \x01(\x05R\x04type\x12\x10\n" + + "\x03url\x18\x01 \x01(\tR\x03url\x12\f\n" + + "\x01w\x18\x02 \x01(\x05R\x01w\x12\f\n" + + "\x01h\x18\x03 \x01(\x05R\x01h*\x05\bd\x10\x90N\x1a_\n" + + "\x04Data\x12\x12\n" + + "\x04type\x18\x03 \x01(\x05R\x04type\x12\x10\n" + + "\x03len\x18\x04 \x01(\x05R\x03len\x12\x14\n" + + "\x05label\x18\x01 \x01(\tR\x05label\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value*\x05\bd\x10\x90N\x1a(\n" + + "\x05Video\x12\x18\n" + + "\avasttag\x18\x01 \x01(\tR\avasttag*\x05\bd\x10\x90N*\x05\bd\x10\x90NB\r\n" + + "\vasset_oneof\x1au\n" + + "\fEventTracker\x12\x14\n" + + "\x05event\x18\x01 \x01(\x05R\x05event\x12\x16\n" + + "\x06method\x18\x02 \x01(\x05R\x06method\x12\x10\n" + + "\x03url\x18\x03 \x01(\tR\x03url\x12\x1e\n" + + "\n" + + "customdata\x18\x04 \x01(\tR\n" + + "customdata*\x05\bd\x10\x90N*\x05\bd\x10\x90N*U\n" + + "\fBannerAdType\x12\x11\n" + + "\rXHTML_TEXT_AD\x10\x01\x12\x13\n" + + "\x0fXHTML_BANNER_AD\x10\x02\x12\x11\n" + + "\rJAVASCRIPT_AD\x10\x03\x12\n" + + "\n" + + "\x06IFRAME\x10\x04*t\n" + + "\bLayoutId\x12\x10\n" + + "\fCONTENT_WALL\x10\x01\x12\f\n" + + "\bAPP_WALL\x10\x02\x12\r\n" + + "\tNEWS_FEED\x10\x03\x12\r\n" + + "\tCHAT_LIST\x10\x04\x12\f\n" + + "\bCAROUSEL\x10\x05\x12\x12\n" + + "\x0eCONTENT_STREAM\x10\x06\x12\b\n" + + "\x04GRID\x10\a*|\n" + + "\bAdUnitId\x12\x14\n" + + "\x10PAID_SEARCH_UNIT\x10\x01\x12\x19\n" + + "\x15RECOMMENDATION_WIDGET\x10\x02\x12\x14\n" + + "\x10PROMOTED_LISTING\x10\x03\x12\x14\n" + + "\x10IAB_IN_AD_NATIVE\x10\x04\x12\x13\n" + + "\x0fADUNITID_CUSTOM\x10\x05*3\n" + + "\vContextType\x12\v\n" + + "\aCONTENT\x10\x01\x12\n" + + "\n" + + "\x06SOCIAL\x10\x02\x12\v\n" + + "\aPRODUCT\x10\x03BEB\aOpenRtbZ:github.com/iabtechlab/agentic-rtb-framework/pkg/pb/openrtb" var ( file_com_iabtechlab_openrtb_v2_openrtb_proto_rawDescOnce sync.Once diff --git a/proto/agenticrtbframework.proto b/proto/agenticrtbframework.proto index d5782de..89fb61c 100644 --- a/proto/agenticrtbframework.proto +++ b/proto/agenticrtbframework.proto @@ -2,8 +2,10 @@ edition = "2023"; package com.iabtechlab.bidstream.mutation.v1; +option go_package = "github.com/iabtechlab/agentic-rtb-framework/pkg/pb/artf"; + // Import OpenRTB definitions for BidRequest and BidResponse -import "com/iabtechlab/openrtb/v2.6/openrtb.proto"; +import "com/iabtechlab/openrtb/v2/openrtb.proto"; // ------------------- Messages ------------------- @@ -195,7 +197,7 @@ message AdjustBidPayload { message MetricsPayload { // List of metrics to add - repeated com.iabtechlab.openrtb.v2.BidRequest.Metric metric = 1; + repeated com.iabtechlab.openrtb.v2.BidRequest.Imp.Metric metric = 1; } message DataPayload { diff --git a/samples/multi-impression.json b/samples/multi-impression.json index e6681a0..e9157b5 100644 --- a/samples/multi-impression.json +++ b/samples/multi-impression.json @@ -111,7 +111,7 @@ "devicetype": 2, "ip": "203.0.113.50", "language": "en", - "js": 1, + "js": true, "geo": { "country": "USA", "region": "TX", @@ -119,12 +119,12 @@ } }, "regs": { - "coppa": 0, - "gdpr": 0, + "coppa": false, + "gdpr": false, "us_privacy": "1YNN" }, "source": { - "fd": 1, + "fd": true, "tid": "transaction-abc-123" }, "at": 1, diff --git a/samples/native-ad.json b/samples/native-ad.json index f06420d..9fa4040 100644 --- a/samples/native-ad.json +++ b/samples/native-ad.json @@ -60,7 +60,7 @@ "w": 390, "h": 844, "pxratio": 3.0, - "js": 1, + "js": true, "language": "en", "connectiontype": 6, "ifa": "8A2E0A2B-3C4D-5E6F-7A8B-9C0D1E2F3A4B", @@ -75,7 +75,7 @@ } }, "regs": { - "coppa": 0 + "coppa": false } } } diff --git a/scripts/generate.sh b/scripts/generate.sh index 2570cbf..3849041 100755 --- a/scripts/generate.sh +++ b/scripts/generate.sh @@ -36,14 +36,23 @@ protoc \ --go_opt=module=github.com/iabtechlab/agentic-rtb-framework \ "$OPENRTB_PROTO" -# Generate ARTF service and types -echo " - ARTF service and types..." +# Generate ARTF types +echo " - ARTF types..." protoc \ --proto_path="$PROTO_DIR" \ --go_out="$PROJECT_ROOT" \ --go_opt=module=github.com/iabtechlab/agentic-rtb-framework \ + "$PROTO_DIR/agenticrtbframework.proto" + +# Generate ARTF gRPC service +echo " - ARTF gRPC service..." +protoc \ + --proto_path="$PROTO_DIR" \ + --proto_path="$PROJECT_ROOT" \ + --go_out="$PROJECT_ROOT" \ + --go_opt=module=github.com/iabtechlab/agentic-rtb-framework \ --go-grpc_out="$PROJECT_ROOT" \ --go-grpc_opt=module=github.com/iabtechlab/agentic-rtb-framework \ - "$PROTO_DIR/agenticrtbframework.proto" + "$PROJECT_ROOT/agenticrtbframeworkservices.proto" echo "Done! Generated files in $OUT_DIR"