From ac93f7c3888523294f3f5dde7c4c997f4e428c3a Mon Sep 17 00:00:00 2001 From: zev Date: Tue, 22 Oct 2024 17:25:14 +0800 Subject: [PATCH 1/2] =?UTF-8?q?dev:=20share/multi-info=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=88=AB=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- service/apisvr/http/things/user/device.api | 17 +- .../things/user/device/share/assemble.go | 25 +- .../user/device/share/multiIndexLogic.go | 3 +- service/apisvr/internal/types/types.go | 17 + .../dmsvr/client/devicegroup/deviceGroup.go | 1 + .../client/deviceinteract/deviceInteract.go | 1 + .../dmsvr/client/devicemanage/deviceManage.go | 1 + service/dmsvr/client/devicemsg/deviceMsg.go | 1 + service/dmsvr/client/otamanage/otaManage.go | 1 + .../client/productmanage/productManage.go | 1 + .../client/protocolmanage/protocolManage.go | 1 + .../dmsvr/client/remoteconfig/remoteConfig.go | 1 + .../dmsvr/client/schemamanage/schemaManage.go | 1 + service/dmsvr/client/userdevice/userDevice.go | 1 + .../userDeivceShareMultiIndexLogic.go | 1 + .../userDeviceShareMultiCreateLogic.go | 16 +- .../repo/relationDB/userDeviceShare.go | 2 + service/dmsvr/pb/dm/dm.pb.go | 7045 +++++++++-------- service/dmsvr/proto/dm.proto | 10 +- 19 files changed, 3664 insertions(+), 3482 deletions(-) diff --git a/service/apisvr/http/things/user/device.api b/service/apisvr/http/things/user/device.api index 3e588fea8..bbd037a76 100644 --- a/service/apisvr/http/things/user/device.api +++ b/service/apisvr/http/things/user/device.api @@ -43,7 +43,7 @@ service api { post /multi-create (UserDeviceShareMultiInfo) returns (UserDeviceShareMultiToken) @doc "获取批量分享的设备列表" @handler multiIndex - post /multi-index (UserDeviceShareMultiToken) returns (UserDeviceShareMultiInfo) + post /multi-index (UserDeviceShareMultiToken) returns (UserDeviceShareMultiIndexResp) @doc "接受批量分享设备" @handler multiAccept post /multi-accept (UserDeviceShareMultiAcceptInfo) returns () @@ -111,6 +111,21 @@ type ( List []*UserDeviceShareInfo `json:"list,optional"` Total int64 `json:"total,optional"` } + UserDeviceShareMultiIndexResp{ + Devices []*DeviceShareInfo `json:"devices,optional"` //批量设备信息 + AuthType int64 `json:"authType,optional"`//授权类型:1:全部授权 2:部分授权 + SchemaPerm map[string ]*SharePerm `json:"schemaPerm,optional"`//普通功能权限 2:读写权限 3读权限 + AccessPerm map[string ]*SharePerm `json:"accessPerm,optional"`//系统功能权限 2:读写权限 3读权限 + ExpTime int64 `json:"expTime,optional"` //到期时间 + CreatedTime int64 `json:"createdTime,optional"` + } + DeviceShareInfo{ + ProductID string `json:"productID"` //产品ID + ProductName string `json:"productName,optional,omitempty"` + ProductImg string `json:"productImg,optional,omitempty"` //产品图片 + DeviceName string `json:"deviceName"` //设备名称 + DeviceAlias string `json:"deviceAlias,optional"` //设备别名 读写 + } ) type ( diff --git a/service/apisvr/internal/logic/things/user/device/share/assemble.go b/service/apisvr/internal/logic/things/user/device/share/assemble.go index 2fa8e0a77..c50f93c00 100644 --- a/service/apisvr/internal/logic/things/user/device/share/assemble.go +++ b/service/apisvr/internal/logic/things/user/device/share/assemble.go @@ -55,9 +55,15 @@ func ToMuitlSharePb(in *types.UserDeviceShareMultiInfo) *dm.UserDeviceShareMulti if in == nil { return nil } - devices := in.Devices + var dvs []*dm.DeviceShareInfo + for _, v := range in.Devices { + dvs = append(dvs, &dm.DeviceShareInfo{ + DeviceName: v.DeviceName, + ProductID: v.ProductID, + }) + } return &dm.UserDeviceShareMultiInfo{ - Devices: ToSharesDevices(devices), + Devices: dvs, AuthType: in.AuthType, ExpTime: in.ExpTime, AccessPerm: utils.CopyMap[dm.SharePerm](in.AccessPerm), @@ -73,18 +79,21 @@ func ToSharesDevices(in []*types.DeviceCore) (ret []*dm.DeviceCore) { } return ret } -func ToMultiShareTypes(in *dm.UserDeviceShareMultiInfo) *types.UserDeviceShareMultiInfo { +func ToMultiShareTypes(in *dm.UserDeviceShareMultiInfo) *types.UserDeviceShareMultiIndexResp { if in == nil { return nil } - var dvs []*types.DeviceCore + var dvs []*types.DeviceShareInfo for _, v := range in.Devices { - dvs = append(dvs, &types.DeviceCore{ - DeviceName: v.DeviceName, - ProductID: v.ProductID, + dvs = append(dvs, &types.DeviceShareInfo{ + DeviceName: v.DeviceName, + ProductID: v.ProductID, + ProductName: v.ProductName, + DeviceAlias: v.DeviceAlias.GetValue(), + ProductImg: v.ProductImg, }) } - return &types.UserDeviceShareMultiInfo{ + return &types.UserDeviceShareMultiIndexResp{ Devices: dvs, AuthType: in.AuthType, CreatedTime: in.CreatedTime, diff --git a/service/apisvr/internal/logic/things/user/device/share/multiIndexLogic.go b/service/apisvr/internal/logic/things/user/device/share/multiIndexLogic.go index 434850dca..b9202f010 100644 --- a/service/apisvr/internal/logic/things/user/device/share/multiIndexLogic.go +++ b/service/apisvr/internal/logic/things/user/device/share/multiIndexLogic.go @@ -25,8 +25,7 @@ func NewMultiIndexLogic(ctx context.Context, svcCtx *svc.ServiceContext) *MultiI } } -func (l *MultiIndexLogic) MultiIndex(req *types.UserDeviceShareMultiToken) (resp *types.UserDeviceShareMultiInfo, err error) { - +func (l *MultiIndexLogic) MultiIndex(req *types.UserDeviceShareMultiToken) (resp *types.UserDeviceShareMultiIndexResp, err error) { ret, err := l.svcCtx.UserDevice.UserDeivceShareMultiIndex(l.ctx, &dm.UserDeviceShareMultiToken{ShareToken: req.ShareToken}) if err != nil { return nil, err diff --git a/service/apisvr/internal/types/types.go b/service/apisvr/internal/types/types.go index 34d85a2a9..cc03811c3 100644 --- a/service/apisvr/internal/types/types.go +++ b/service/apisvr/internal/types/types.go @@ -757,6 +757,14 @@ type DeviceRegisterResp struct { Payload string `json:"payload"` } +type DeviceShareInfo struct { + ProductID string `json:"productID"` //产品ID + ProductName string `json:"productName,optional,omitempty"` + ProductImg string `json:"productImg,optional,omitempty"` //产品图片 + DeviceName string `json:"deviceName"` //设备名称 + DeviceAlias string `json:"deviceAlias,optional"` //设备别名 读写 +} + type FirmwareCreateReq struct { ProductID string `json:"productID"` Name string `json:"name"` @@ -1631,6 +1639,15 @@ type UserDeviceShareMultiDeleteReq struct { ProjectID int64 `json:"projectID,optional"` } +type UserDeviceShareMultiIndexResp struct { + Devices []*DeviceShareInfo `json:"devices,optional"` //批量设备信息 + AuthType int64 `json:"authType,optional"` //授权类型:1:全部授权 2:部分授权 + SchemaPerm map[string]*SharePerm `json:"schemaPerm,optional"` //普通功能权限 2:读写权限 3读权限 + AccessPerm map[string]*SharePerm `json:"accessPerm,optional"` //系统功能权限 2:读写权限 3读权限 + ExpTime int64 `json:"expTime,optional"` //到期时间 + CreatedTime int64 `json:"createdTime,optional"` +} + type UserDeviceShareMultiInfo struct { Devices []*DeviceCore `json:"devices,optional"` //批量设备信息 AuthType int64 `json:"authType,optional"` //授权类型:1:全部授权 2:部分授权 diff --git a/service/dmsvr/client/devicegroup/deviceGroup.go b/service/dmsvr/client/devicegroup/deviceGroup.go index c8361d526..fd5ab6776 100644 --- a/service/dmsvr/client/devicegroup/deviceGroup.go +++ b/service/dmsvr/client/devicegroup/deviceGroup.go @@ -60,6 +60,7 @@ type ( DeviceProfileIndexReq = dm.DeviceProfileIndexReq DeviceProfileIndexResp = dm.DeviceProfileIndexResp DeviceProfileReadReq = dm.DeviceProfileReadReq + DeviceShareInfo = dm.DeviceShareInfo DeviceTransferReq = dm.DeviceTransferReq DeviceTypeCountReq = dm.DeviceTypeCountReq DeviceTypeCountResp = dm.DeviceTypeCountResp diff --git a/service/dmsvr/client/deviceinteract/deviceInteract.go b/service/dmsvr/client/deviceinteract/deviceInteract.go index e07f27832..a21a92588 100644 --- a/service/dmsvr/client/deviceinteract/deviceInteract.go +++ b/service/dmsvr/client/deviceinteract/deviceInteract.go @@ -60,6 +60,7 @@ type ( DeviceProfileIndexReq = dm.DeviceProfileIndexReq DeviceProfileIndexResp = dm.DeviceProfileIndexResp DeviceProfileReadReq = dm.DeviceProfileReadReq + DeviceShareInfo = dm.DeviceShareInfo DeviceTransferReq = dm.DeviceTransferReq DeviceTypeCountReq = dm.DeviceTypeCountReq DeviceTypeCountResp = dm.DeviceTypeCountResp diff --git a/service/dmsvr/client/devicemanage/deviceManage.go b/service/dmsvr/client/devicemanage/deviceManage.go index 1266c50e3..34d488ab9 100644 --- a/service/dmsvr/client/devicemanage/deviceManage.go +++ b/service/dmsvr/client/devicemanage/deviceManage.go @@ -60,6 +60,7 @@ type ( DeviceProfileIndexReq = dm.DeviceProfileIndexReq DeviceProfileIndexResp = dm.DeviceProfileIndexResp DeviceProfileReadReq = dm.DeviceProfileReadReq + DeviceShareInfo = dm.DeviceShareInfo DeviceTransferReq = dm.DeviceTransferReq DeviceTypeCountReq = dm.DeviceTypeCountReq DeviceTypeCountResp = dm.DeviceTypeCountResp diff --git a/service/dmsvr/client/devicemsg/deviceMsg.go b/service/dmsvr/client/devicemsg/deviceMsg.go index 7a81ee3e1..2d98061d1 100644 --- a/service/dmsvr/client/devicemsg/deviceMsg.go +++ b/service/dmsvr/client/devicemsg/deviceMsg.go @@ -60,6 +60,7 @@ type ( DeviceProfileIndexReq = dm.DeviceProfileIndexReq DeviceProfileIndexResp = dm.DeviceProfileIndexResp DeviceProfileReadReq = dm.DeviceProfileReadReq + DeviceShareInfo = dm.DeviceShareInfo DeviceTransferReq = dm.DeviceTransferReq DeviceTypeCountReq = dm.DeviceTypeCountReq DeviceTypeCountResp = dm.DeviceTypeCountResp diff --git a/service/dmsvr/client/otamanage/otaManage.go b/service/dmsvr/client/otamanage/otaManage.go index f43de264d..26f85f7ce 100644 --- a/service/dmsvr/client/otamanage/otaManage.go +++ b/service/dmsvr/client/otamanage/otaManage.go @@ -60,6 +60,7 @@ type ( DeviceProfileIndexReq = dm.DeviceProfileIndexReq DeviceProfileIndexResp = dm.DeviceProfileIndexResp DeviceProfileReadReq = dm.DeviceProfileReadReq + DeviceShareInfo = dm.DeviceShareInfo DeviceTransferReq = dm.DeviceTransferReq DeviceTypeCountReq = dm.DeviceTypeCountReq DeviceTypeCountResp = dm.DeviceTypeCountResp diff --git a/service/dmsvr/client/productmanage/productManage.go b/service/dmsvr/client/productmanage/productManage.go index 3a16efe5b..d90636438 100644 --- a/service/dmsvr/client/productmanage/productManage.go +++ b/service/dmsvr/client/productmanage/productManage.go @@ -60,6 +60,7 @@ type ( DeviceProfileIndexReq = dm.DeviceProfileIndexReq DeviceProfileIndexResp = dm.DeviceProfileIndexResp DeviceProfileReadReq = dm.DeviceProfileReadReq + DeviceShareInfo = dm.DeviceShareInfo DeviceTransferReq = dm.DeviceTransferReq DeviceTypeCountReq = dm.DeviceTypeCountReq DeviceTypeCountResp = dm.DeviceTypeCountResp diff --git a/service/dmsvr/client/protocolmanage/protocolManage.go b/service/dmsvr/client/protocolmanage/protocolManage.go index 3eb583d7a..662ebf702 100644 --- a/service/dmsvr/client/protocolmanage/protocolManage.go +++ b/service/dmsvr/client/protocolmanage/protocolManage.go @@ -60,6 +60,7 @@ type ( DeviceProfileIndexReq = dm.DeviceProfileIndexReq DeviceProfileIndexResp = dm.DeviceProfileIndexResp DeviceProfileReadReq = dm.DeviceProfileReadReq + DeviceShareInfo = dm.DeviceShareInfo DeviceTransferReq = dm.DeviceTransferReq DeviceTypeCountReq = dm.DeviceTypeCountReq DeviceTypeCountResp = dm.DeviceTypeCountResp diff --git a/service/dmsvr/client/remoteconfig/remoteConfig.go b/service/dmsvr/client/remoteconfig/remoteConfig.go index 7421c7ca6..9b1cc6b0c 100644 --- a/service/dmsvr/client/remoteconfig/remoteConfig.go +++ b/service/dmsvr/client/remoteconfig/remoteConfig.go @@ -60,6 +60,7 @@ type ( DeviceProfileIndexReq = dm.DeviceProfileIndexReq DeviceProfileIndexResp = dm.DeviceProfileIndexResp DeviceProfileReadReq = dm.DeviceProfileReadReq + DeviceShareInfo = dm.DeviceShareInfo DeviceTransferReq = dm.DeviceTransferReq DeviceTypeCountReq = dm.DeviceTypeCountReq DeviceTypeCountResp = dm.DeviceTypeCountResp diff --git a/service/dmsvr/client/schemamanage/schemaManage.go b/service/dmsvr/client/schemamanage/schemaManage.go index b9323be31..84df6b1ae 100644 --- a/service/dmsvr/client/schemamanage/schemaManage.go +++ b/service/dmsvr/client/schemamanage/schemaManage.go @@ -60,6 +60,7 @@ type ( DeviceProfileIndexReq = dm.DeviceProfileIndexReq DeviceProfileIndexResp = dm.DeviceProfileIndexResp DeviceProfileReadReq = dm.DeviceProfileReadReq + DeviceShareInfo = dm.DeviceShareInfo DeviceTransferReq = dm.DeviceTransferReq DeviceTypeCountReq = dm.DeviceTypeCountReq DeviceTypeCountResp = dm.DeviceTypeCountResp diff --git a/service/dmsvr/client/userdevice/userDevice.go b/service/dmsvr/client/userdevice/userDevice.go index 009655fa8..07a8a1cbb 100644 --- a/service/dmsvr/client/userdevice/userDevice.go +++ b/service/dmsvr/client/userdevice/userDevice.go @@ -60,6 +60,7 @@ type ( DeviceProfileIndexReq = dm.DeviceProfileIndexReq DeviceProfileIndexResp = dm.DeviceProfileIndexResp DeviceProfileReadReq = dm.DeviceProfileReadReq + DeviceShareInfo = dm.DeviceShareInfo DeviceTransferReq = dm.DeviceTransferReq DeviceTypeCountReq = dm.DeviceTypeCountReq DeviceTypeCountResp = dm.DeviceTypeCountResp diff --git a/service/dmsvr/internal/logic/userdevice/userDeivceShareMultiIndexLogic.go b/service/dmsvr/internal/logic/userdevice/userDeivceShareMultiIndexLogic.go index aa1e62ac0..d2a369d1f 100644 --- a/service/dmsvr/internal/logic/userdevice/userDeivceShareMultiIndexLogic.go +++ b/service/dmsvr/internal/logic/userdevice/userDeivceShareMultiIndexLogic.go @@ -24,6 +24,7 @@ func NewUserDeivceShareMultiIndexLogic(ctx context.Context, svcCtx *svc.ServiceC } // 扫码后获取设备列表 +// 如果有分页需求,在前端处理 func (l *UserDeivceShareMultiIndexLogic) UserDeivceShareMultiIndex(in *dm.UserDeviceShareMultiToken) (*dm.UserDeviceShareMultiInfo, error) { resp, err := l.svcCtx.UserMultiDeviceShare.GetData(l.ctx, in.ShareToken) return resp, err diff --git a/service/dmsvr/internal/logic/userdevice/userDeviceShareMultiCreateLogic.go b/service/dmsvr/internal/logic/userdevice/userDeviceShareMultiCreateLogic.go index 0daa4d803..cc5ac9763 100644 --- a/service/dmsvr/internal/logic/userdevice/userDeviceShareMultiCreateLogic.go +++ b/service/dmsvr/internal/logic/userdevice/userDeviceShareMultiCreateLogic.go @@ -29,7 +29,6 @@ func NewUserDeviceShareMultiCreateLogic(ctx context.Context, svcCtx *svc.Service } } -// rpc userDeviceOtaGetVersion(UserDeviceOtaGetVersionReq)returns(userDeviceOtaGetVersionResp); func (l *UserDeviceShareMultiCreateLogic) UserDeviceShareMultiCreate(in *dm.UserDeviceShareMultiInfo) (*dm.UserDeviceShareMultiToken, error) { // 写入caches shareToken, _ := uuid.GenerateUUID() @@ -58,9 +57,24 @@ func (l *UserDeviceShareMultiCreateLogic) UserDeviceShareMultiCreate(in *dm.User return nil, errors.Permissions.AddMsg("您无权分享所选的设备") } } + d.DeviceAlias = di.DeviceAlias + d.ProductName = di.ProductName + d.ProductImg = di.ProductImg } } } + for _, d := range in.Devices { + //补全设备信息 + if d.ProductImg == "" { + di, _ := l.svcCtx.DeviceCache.GetData(l.ctx, devices.Core{ + ProductID: d.ProductID, + DeviceName: d.DeviceName, + }) + d.DeviceAlias = di.DeviceAlias + d.ProductName = di.ProductName + d.ProductImg = di.ProductImg + } + } l.svcCtx.UserMultiDeviceShare.SetData(l.ctx, shareToken, in) return &dm.UserDeviceShareMultiToken{ShareToken: shareToken}, nil } diff --git a/service/dmsvr/internal/repo/relationDB/userDeviceShare.go b/service/dmsvr/internal/repo/relationDB/userDeviceShare.go index fb15e5c54..12331c558 100644 --- a/service/dmsvr/internal/repo/relationDB/userDeviceShare.go +++ b/service/dmsvr/internal/repo/relationDB/userDeviceShare.go @@ -2,6 +2,7 @@ package relationDB import ( "context" + "gitee.com/unitedrhino/share/devices" "gitee.com/unitedrhino/share/stores" "gorm.io/gorm" @@ -73,6 +74,7 @@ func (p UserDeviceShareRepo) fmtFilter(ctx context.Context, f UserDeviceShareFil } func (p UserDeviceShareRepo) Insert(ctx context.Context, data *DmUserDeviceShare) error { + result := p.db.WithContext(ctx).Create(data) return stores.ErrFmt(result.Error) } diff --git a/service/dmsvr/pb/dm/dm.pb.go b/service/dmsvr/pb/dm/dm.pb.go index 99f2abc97..f6f177e90 100644 --- a/service/dmsvr/pb/dm/dm.pb.go +++ b/service/dmsvr/pb/dm/dm.pb.go @@ -1717,12 +1717,91 @@ func (x *SharePerm) GetPerm() int64 { return 0 } +type DeviceShareInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProductID string `protobuf:"bytes,1,opt,name=productID,proto3" json:"productID,omitempty"` //产品id + ProductName string `protobuf:"bytes,4,opt,name=productName,proto3" json:"productName,omitempty"` //产品名称 只读 + DeviceName string `protobuf:"bytes,2,opt,name=deviceName,proto3" json:"deviceName,omitempty"` //设备名称 + ProductImg string `protobuf:"bytes,3,opt,name=productImg,proto3" json:"productImg,omitempty"` //产品图片 + DeviceAlias *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=deviceAlias,proto3" json:"deviceAlias,omitempty"` //设备别名 读写 +} + +func (x *DeviceShareInfo) Reset() { + *x = DeviceShareInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_dm_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeviceShareInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeviceShareInfo) ProtoMessage() {} + +func (x *DeviceShareInfo) ProtoReflect() protoreflect.Message { + mi := &file_proto_dm_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeviceShareInfo.ProtoReflect.Descriptor instead. +func (*DeviceShareInfo) Descriptor() ([]byte, []int) { + return file_proto_dm_proto_rawDescGZIP(), []int{27} +} + +func (x *DeviceShareInfo) GetProductID() string { + if x != nil { + return x.ProductID + } + return "" +} + +func (x *DeviceShareInfo) GetProductName() string { + if x != nil { + return x.ProductName + } + return "" +} + +func (x *DeviceShareInfo) GetDeviceName() string { + if x != nil { + return x.DeviceName + } + return "" +} + +func (x *DeviceShareInfo) GetProductImg() string { + if x != nil { + return x.ProductImg + } + return "" +} + +func (x *DeviceShareInfo) GetDeviceAlias() *wrapperspb.StringValue { + if x != nil { + return x.DeviceAlias + } + return nil +} + type UserDeviceShareMultiInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Devices []*DeviceCore `protobuf:"bytes,1,rep,name=devices,proto3" json:"devices,omitempty"` //设备信息 + Devices []*DeviceShareInfo `protobuf:"bytes,1,rep,name=devices,proto3" json:"devices,omitempty"` //设备信息 SchemaPerm map[string]*SharePerm `protobuf:"bytes,2,rep,name=schemaPerm,proto3" json:"schemaPerm,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` //物模型权限,只需要填写需要授权并授权的物模型id AccessPerm map[string]*SharePerm `protobuf:"bytes,3,rep,name=accessPerm,proto3" json:"accessPerm,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` //操作权限 hubLog:设备消息记录,ota:ota升级权限,deviceTiming:设备定时 AuthType int64 `protobuf:"varint,4,opt,name=authType,proto3" json:"authType,omitempty"` //授权类型:1:全部授权 2:部分授权 @@ -1735,7 +1814,7 @@ type UserDeviceShareMultiInfo struct { func (x *UserDeviceShareMultiInfo) Reset() { *x = UserDeviceShareMultiInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[27] + mi := &file_proto_dm_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1748,7 +1827,7 @@ func (x *UserDeviceShareMultiInfo) String() string { func (*UserDeviceShareMultiInfo) ProtoMessage() {} func (x *UserDeviceShareMultiInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[27] + mi := &file_proto_dm_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1761,10 +1840,10 @@ func (x *UserDeviceShareMultiInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use UserDeviceShareMultiInfo.ProtoReflect.Descriptor instead. func (*UserDeviceShareMultiInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{27} + return file_proto_dm_proto_rawDescGZIP(), []int{28} } -func (x *UserDeviceShareMultiInfo) GetDevices() []*DeviceCore { +func (x *UserDeviceShareMultiInfo) GetDevices() []*DeviceShareInfo { if x != nil { return x.Devices } @@ -1831,7 +1910,7 @@ type UserDeviceShareMultiToken struct { func (x *UserDeviceShareMultiToken) Reset() { *x = UserDeviceShareMultiToken{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[28] + mi := &file_proto_dm_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1844,7 +1923,7 @@ func (x *UserDeviceShareMultiToken) String() string { func (*UserDeviceShareMultiToken) ProtoMessage() {} func (x *UserDeviceShareMultiToken) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[28] + mi := &file_proto_dm_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1857,7 +1936,7 @@ func (x *UserDeviceShareMultiToken) ProtoReflect() protoreflect.Message { // Deprecated: Use UserDeviceShareMultiToken.ProtoReflect.Descriptor instead. func (*UserDeviceShareMultiToken) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{28} + return file_proto_dm_proto_rawDescGZIP(), []int{29} } func (x *UserDeviceShareMultiToken) GetShareToken() string { @@ -1881,7 +1960,7 @@ type UserDeviceShareMultiAcceptReq struct { func (x *UserDeviceShareMultiAcceptReq) Reset() { *x = UserDeviceShareMultiAcceptReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[29] + mi := &file_proto_dm_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1894,7 +1973,7 @@ func (x *UserDeviceShareMultiAcceptReq) String() string { func (*UserDeviceShareMultiAcceptReq) ProtoMessage() {} func (x *UserDeviceShareMultiAcceptReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[29] + mi := &file_proto_dm_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1907,7 +1986,7 @@ func (x *UserDeviceShareMultiAcceptReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UserDeviceShareMultiAcceptReq.ProtoReflect.Descriptor instead. func (*UserDeviceShareMultiAcceptReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{29} + return file_proto_dm_proto_rawDescGZIP(), []int{30} } func (x *UserDeviceShareMultiAcceptReq) GetShareToken() string { @@ -1949,7 +2028,7 @@ type UserDeviceCollectSave struct { func (x *UserDeviceCollectSave) Reset() { *x = UserDeviceCollectSave{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[30] + mi := &file_proto_dm_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1962,7 +2041,7 @@ func (x *UserDeviceCollectSave) String() string { func (*UserDeviceCollectSave) ProtoMessage() {} func (x *UserDeviceCollectSave) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[30] + mi := &file_proto_dm_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1975,7 +2054,7 @@ func (x *UserDeviceCollectSave) ProtoReflect() protoreflect.Message { // Deprecated: Use UserDeviceCollectSave.ProtoReflect.Descriptor instead. func (*UserDeviceCollectSave) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{30} + return file_proto_dm_proto_rawDescGZIP(), []int{31} } func (x *UserDeviceCollectSave) GetDevices() []*DeviceCore { @@ -2005,7 +2084,7 @@ type ProductCategory struct { func (x *ProductCategory) Reset() { *x = ProductCategory{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[31] + mi := &file_proto_dm_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2018,7 +2097,7 @@ func (x *ProductCategory) String() string { func (*ProductCategory) ProtoMessage() {} func (x *ProductCategory) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[31] + mi := &file_proto_dm_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2031,7 +2110,7 @@ func (x *ProductCategory) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductCategory.ProtoReflect.Descriptor instead. func (*ProductCategory) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{31} + return file_proto_dm_proto_rawDescGZIP(), []int{32} } func (x *ProductCategory) GetId() int64 { @@ -2115,7 +2194,7 @@ type ProductCategorySchemaIndexResp struct { func (x *ProductCategorySchemaIndexResp) Reset() { *x = ProductCategorySchemaIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[32] + mi := &file_proto_dm_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2128,7 +2207,7 @@ func (x *ProductCategorySchemaIndexResp) String() string { func (*ProductCategorySchemaIndexResp) ProtoMessage() {} func (x *ProductCategorySchemaIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[32] + mi := &file_proto_dm_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2141,7 +2220,7 @@ func (x *ProductCategorySchemaIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductCategorySchemaIndexResp.ProtoReflect.Descriptor instead. func (*ProductCategorySchemaIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{32} + return file_proto_dm_proto_rawDescGZIP(), []int{33} } func (x *ProductCategorySchemaIndexResp) GetIdentifiers() []string { @@ -2163,7 +2242,7 @@ type ProductCategorySchemaIndexReq struct { func (x *ProductCategorySchemaIndexReq) Reset() { *x = ProductCategorySchemaIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[33] + mi := &file_proto_dm_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2176,7 +2255,7 @@ func (x *ProductCategorySchemaIndexReq) String() string { func (*ProductCategorySchemaIndexReq) ProtoMessage() {} func (x *ProductCategorySchemaIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[33] + mi := &file_proto_dm_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2189,7 +2268,7 @@ func (x *ProductCategorySchemaIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductCategorySchemaIndexReq.ProtoReflect.Descriptor instead. func (*ProductCategorySchemaIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{33} + return file_proto_dm_proto_rawDescGZIP(), []int{34} } func (x *ProductCategorySchemaIndexReq) GetProductCategoryID() int64 { @@ -2218,7 +2297,7 @@ type ProductCategorySchemaMultiSaveReq struct { func (x *ProductCategorySchemaMultiSaveReq) Reset() { *x = ProductCategorySchemaMultiSaveReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[34] + mi := &file_proto_dm_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2231,7 +2310,7 @@ func (x *ProductCategorySchemaMultiSaveReq) String() string { func (*ProductCategorySchemaMultiSaveReq) ProtoMessage() {} func (x *ProductCategorySchemaMultiSaveReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[34] + mi := &file_proto_dm_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2244,7 +2323,7 @@ func (x *ProductCategorySchemaMultiSaveReq) ProtoReflect() protoreflect.Message // Deprecated: Use ProductCategorySchemaMultiSaveReq.ProtoReflect.Descriptor instead. func (*ProductCategorySchemaMultiSaveReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{34} + return file_proto_dm_proto_rawDescGZIP(), []int{35} } func (x *ProductCategorySchemaMultiSaveReq) GetProductCategoryID() int64 { @@ -2276,7 +2355,7 @@ type ProductCategoryIndexReq struct { func (x *ProductCategoryIndexReq) Reset() { *x = ProductCategoryIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[35] + mi := &file_proto_dm_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2289,7 +2368,7 @@ func (x *ProductCategoryIndexReq) String() string { func (*ProductCategoryIndexReq) ProtoMessage() {} func (x *ProductCategoryIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[35] + mi := &file_proto_dm_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2302,7 +2381,7 @@ func (x *ProductCategoryIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductCategoryIndexReq.ProtoReflect.Descriptor instead. func (*ProductCategoryIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{35} + return file_proto_dm_proto_rawDescGZIP(), []int{36} } func (x *ProductCategoryIndexReq) GetPage() *PageInfo { @@ -2352,7 +2431,7 @@ type ProductCategoryIndexResp struct { func (x *ProductCategoryIndexResp) Reset() { *x = ProductCategoryIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[36] + mi := &file_proto_dm_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2365,7 +2444,7 @@ func (x *ProductCategoryIndexResp) String() string { func (*ProductCategoryIndexResp) ProtoMessage() {} func (x *ProductCategoryIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[36] + mi := &file_proto_dm_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2378,7 +2457,7 @@ func (x *ProductCategoryIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductCategoryIndexResp.ProtoReflect.Descriptor instead. func (*ProductCategoryIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{36} + return file_proto_dm_proto_rawDescGZIP(), []int{37} } func (x *ProductCategoryIndexResp) GetList() []*ProductCategory { @@ -2410,7 +2489,7 @@ type ProtocolInfoIndexReq struct { func (x *ProtocolInfoIndexReq) Reset() { *x = ProtocolInfoIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[37] + mi := &file_proto_dm_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2423,7 +2502,7 @@ func (x *ProtocolInfoIndexReq) String() string { func (*ProtocolInfoIndexReq) ProtoMessage() {} func (x *ProtocolInfoIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[37] + mi := &file_proto_dm_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2436,7 +2515,7 @@ func (x *ProtocolInfoIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ProtocolInfoIndexReq.ProtoReflect.Descriptor instead. func (*ProtocolInfoIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{37} + return file_proto_dm_proto_rawDescGZIP(), []int{38} } func (x *ProtocolInfoIndexReq) GetPage() *PageInfo { @@ -2486,7 +2565,7 @@ type ProtocolInfoIndexResp struct { func (x *ProtocolInfoIndexResp) Reset() { *x = ProtocolInfoIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[38] + mi := &file_proto_dm_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2499,7 +2578,7 @@ func (x *ProtocolInfoIndexResp) String() string { func (*ProtocolInfoIndexResp) ProtoMessage() {} func (x *ProtocolInfoIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[38] + mi := &file_proto_dm_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2512,7 +2591,7 @@ func (x *ProtocolInfoIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ProtocolInfoIndexResp.ProtoReflect.Descriptor instead. func (*ProtocolInfoIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{38} + return file_proto_dm_proto_rawDescGZIP(), []int{39} } func (x *ProtocolInfoIndexResp) GetList() []*ProtocolInfo { @@ -2548,7 +2627,7 @@ type ProtocolInfo struct { func (x *ProtocolInfo) Reset() { *x = ProtocolInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[39] + mi := &file_proto_dm_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2561,7 +2640,7 @@ func (x *ProtocolInfo) String() string { func (*ProtocolInfo) ProtoMessage() {} func (x *ProtocolInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[39] + mi := &file_proto_dm_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2574,7 +2653,7 @@ func (x *ProtocolInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ProtocolInfo.ProtoReflect.Descriptor instead. func (*ProtocolInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{39} + return file_proto_dm_proto_rawDescGZIP(), []int{40} } func (x *ProtocolInfo) GetId() int64 { @@ -2656,7 +2735,7 @@ type ProtocolConfigField struct { func (x *ProtocolConfigField) Reset() { *x = ProtocolConfigField{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[40] + mi := &file_proto_dm_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2669,7 +2748,7 @@ func (x *ProtocolConfigField) String() string { func (*ProtocolConfigField) ProtoMessage() {} func (x *ProtocolConfigField) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[40] + mi := &file_proto_dm_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2682,7 +2761,7 @@ func (x *ProtocolConfigField) ProtoReflect() protoreflect.Message { // Deprecated: Use ProtocolConfigField.ProtoReflect.Descriptor instead. func (*ProtocolConfigField) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{40} + return file_proto_dm_proto_rawDescGZIP(), []int{41} } func (x *ProtocolConfigField) GetId() int64 { @@ -2740,7 +2819,7 @@ type ProtocolConfigInfo struct { func (x *ProtocolConfigInfo) Reset() { *x = ProtocolConfigInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[41] + mi := &file_proto_dm_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2753,7 +2832,7 @@ func (x *ProtocolConfigInfo) String() string { func (*ProtocolConfigInfo) ProtoMessage() {} func (x *ProtocolConfigInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[41] + mi := &file_proto_dm_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2766,7 +2845,7 @@ func (x *ProtocolConfigInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ProtocolConfigInfo.ProtoReflect.Descriptor instead. func (*ProtocolConfigInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{41} + return file_proto_dm_proto_rawDescGZIP(), []int{42} } func (x *ProtocolConfigInfo) GetId() int64 { @@ -2801,7 +2880,7 @@ type ShadowIndexResp struct { func (x *ShadowIndexResp) Reset() { *x = ShadowIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[42] + mi := &file_proto_dm_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2814,7 +2893,7 @@ func (x *ShadowIndexResp) String() string { func (*ShadowIndexResp) ProtoMessage() {} func (x *ShadowIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[42] + mi := &file_proto_dm_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2827,7 +2906,7 @@ func (x *ShadowIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ShadowIndexResp.ProtoReflect.Descriptor instead. func (*ShadowIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{42} + return file_proto_dm_proto_rawDescGZIP(), []int{43} } func (x *ShadowIndexResp) GetList() []*ShadowIndex { @@ -2851,7 +2930,7 @@ type ShadowIndex struct { func (x *ShadowIndex) Reset() { *x = ShadowIndex{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[43] + mi := &file_proto_dm_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2864,7 +2943,7 @@ func (x *ShadowIndex) String() string { func (*ShadowIndex) ProtoMessage() {} func (x *ShadowIndex) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[43] + mi := &file_proto_dm_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2877,7 +2956,7 @@ func (x *ShadowIndex) ProtoReflect() protoreflect.Message { // Deprecated: Use ShadowIndex.ProtoReflect.Descriptor instead. func (*ShadowIndex) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{43} + return file_proto_dm_proto_rawDescGZIP(), []int{44} } func (x *ShadowIndex) GetDataID() string { @@ -2914,7 +2993,7 @@ type PropertyGetReportSendReq struct { func (x *PropertyGetReportSendReq) Reset() { *x = PropertyGetReportSendReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[44] + mi := &file_proto_dm_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2927,7 +3006,7 @@ func (x *PropertyGetReportSendReq) String() string { func (*PropertyGetReportSendReq) ProtoMessage() {} func (x *PropertyGetReportSendReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[44] + mi := &file_proto_dm_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2940,7 +3019,7 @@ func (x *PropertyGetReportSendReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PropertyGetReportSendReq.ProtoReflect.Descriptor instead. func (*PropertyGetReportSendReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{44} + return file_proto_dm_proto_rawDescGZIP(), []int{45} } func (x *PropertyGetReportSendReq) GetProductID() string { @@ -2979,7 +3058,7 @@ type PropertyGetReportSendResp struct { func (x *PropertyGetReportSendResp) Reset() { *x = PropertyGetReportSendResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[45] + mi := &file_proto_dm_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2992,7 +3071,7 @@ func (x *PropertyGetReportSendResp) String() string { func (*PropertyGetReportSendResp) ProtoMessage() {} func (x *PropertyGetReportSendResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[45] + mi := &file_proto_dm_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3005,7 +3084,7 @@ func (x *PropertyGetReportSendResp) ProtoReflect() protoreflect.Message { // Deprecated: Use PropertyGetReportSendResp.ProtoReflect.Descriptor instead. func (*PropertyGetReportSendResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{45} + return file_proto_dm_proto_rawDescGZIP(), []int{46} } func (x *PropertyGetReportSendResp) GetCode() int64 { @@ -3073,7 +3152,7 @@ type PropertyLogIndexReq struct { func (x *PropertyLogIndexReq) Reset() { *x = PropertyLogIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[46] + mi := &file_proto_dm_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3086,7 +3165,7 @@ func (x *PropertyLogIndexReq) String() string { func (*PropertyLogIndexReq) ProtoMessage() {} func (x *PropertyLogIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[46] + mi := &file_proto_dm_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3099,7 +3178,7 @@ func (x *PropertyLogIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PropertyLogIndexReq.ProtoReflect.Descriptor instead. func (*PropertyLogIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{46} + return file_proto_dm_proto_rawDescGZIP(), []int{47} } func (x *PropertyLogIndexReq) GetPage() *PageInfo { @@ -3186,7 +3265,7 @@ type PropertyLogLatestIndexReq struct { func (x *PropertyLogLatestIndexReq) Reset() { *x = PropertyLogLatestIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[47] + mi := &file_proto_dm_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3199,7 +3278,7 @@ func (x *PropertyLogLatestIndexReq) String() string { func (*PropertyLogLatestIndexReq) ProtoMessage() {} func (x *PropertyLogLatestIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[47] + mi := &file_proto_dm_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3212,7 +3291,7 @@ func (x *PropertyLogLatestIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PropertyLogLatestIndexReq.ProtoReflect.Descriptor instead. func (*PropertyLogLatestIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{47} + return file_proto_dm_proto_rawDescGZIP(), []int{48} } func (x *PropertyLogLatestIndexReq) GetProductID() string { @@ -3250,7 +3329,7 @@ type PropertyLogInfo struct { func (x *PropertyLogInfo) Reset() { *x = PropertyLogInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[48] + mi := &file_proto_dm_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3263,7 +3342,7 @@ func (x *PropertyLogInfo) String() string { func (*PropertyLogInfo) ProtoMessage() {} func (x *PropertyLogInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[48] + mi := &file_proto_dm_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3276,7 +3355,7 @@ func (x *PropertyLogInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PropertyLogInfo.ProtoReflect.Descriptor instead. func (*PropertyLogInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{48} + return file_proto_dm_proto_rawDescGZIP(), []int{49} } func (x *PropertyLogInfo) GetTimestamp() int64 { @@ -3313,7 +3392,7 @@ type PropertyLogIndexResp struct { func (x *PropertyLogIndexResp) Reset() { *x = PropertyLogIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[49] + mi := &file_proto_dm_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3326,7 +3405,7 @@ func (x *PropertyLogIndexResp) String() string { func (*PropertyLogIndexResp) ProtoMessage() {} func (x *PropertyLogIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[49] + mi := &file_proto_dm_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3339,7 +3418,7 @@ func (x *PropertyLogIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use PropertyLogIndexResp.ProtoReflect.Descriptor instead. func (*PropertyLogIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{49} + return file_proto_dm_proto_rawDescGZIP(), []int{50} } func (x *PropertyLogIndexResp) GetTotal() int64 { @@ -3374,7 +3453,7 @@ type EventLogIndexReq struct { func (x *EventLogIndexReq) Reset() { *x = EventLogIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[50] + mi := &file_proto_dm_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3387,7 +3466,7 @@ func (x *EventLogIndexReq) String() string { func (*EventLogIndexReq) ProtoMessage() {} func (x *EventLogIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[50] + mi := &file_proto_dm_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3400,7 +3479,7 @@ func (x *EventLogIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use EventLogIndexReq.ProtoReflect.Descriptor instead. func (*EventLogIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{50} + return file_proto_dm_proto_rawDescGZIP(), []int{51} } func (x *EventLogIndexReq) GetPage() *PageInfo { @@ -3467,7 +3546,7 @@ type EventLogInfo struct { func (x *EventLogInfo) Reset() { *x = EventLogInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[51] + mi := &file_proto_dm_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3480,7 +3559,7 @@ func (x *EventLogInfo) String() string { func (*EventLogInfo) ProtoMessage() {} func (x *EventLogInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[51] + mi := &file_proto_dm_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3493,7 +3572,7 @@ func (x *EventLogInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use EventLogInfo.ProtoReflect.Descriptor instead. func (*EventLogInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{51} + return file_proto_dm_proto_rawDescGZIP(), []int{52} } func (x *EventLogInfo) GetTimestamp() int64 { @@ -3537,7 +3616,7 @@ type EventLogIndexResp struct { func (x *EventLogIndexResp) Reset() { *x = EventLogIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[52] + mi := &file_proto_dm_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3550,7 +3629,7 @@ func (x *EventLogIndexResp) String() string { func (*EventLogIndexResp) ProtoMessage() {} func (x *EventLogIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[52] + mi := &file_proto_dm_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3563,7 +3642,7 @@ func (x *EventLogIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use EventLogIndexResp.ProtoReflect.Descriptor instead. func (*EventLogIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{52} + return file_proto_dm_proto_rawDescGZIP(), []int{53} } func (x *EventLogIndexResp) GetTotal() int64 { @@ -3600,7 +3679,7 @@ type HubLogIndexReq struct { func (x *HubLogIndexReq) Reset() { *x = HubLogIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[53] + mi := &file_proto_dm_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3613,7 +3692,7 @@ func (x *HubLogIndexReq) String() string { func (*HubLogIndexReq) ProtoMessage() {} func (x *HubLogIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[53] + mi := &file_proto_dm_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3626,7 +3705,7 @@ func (x *HubLogIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use HubLogIndexReq.ProtoReflect.Descriptor instead. func (*HubLogIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{53} + return file_proto_dm_proto_rawDescGZIP(), []int{54} } func (x *HubLogIndexReq) GetProductID() string { @@ -3705,7 +3784,7 @@ type HubLogIndexResp struct { func (x *HubLogIndexResp) Reset() { *x = HubLogIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[54] + mi := &file_proto_dm_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3718,7 +3797,7 @@ func (x *HubLogIndexResp) String() string { func (*HubLogIndexResp) ProtoMessage() {} func (x *HubLogIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[54] + mi := &file_proto_dm_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3731,7 +3810,7 @@ func (x *HubLogIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use HubLogIndexResp.ProtoReflect.Descriptor instead. func (*HubLogIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{54} + return file_proto_dm_proto_rawDescGZIP(), []int{55} } func (x *HubLogIndexResp) GetTotal() int64 { @@ -3767,7 +3846,7 @@ type HubLogInfo struct { func (x *HubLogInfo) Reset() { *x = HubLogInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[55] + mi := &file_proto_dm_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3780,7 +3859,7 @@ func (x *HubLogInfo) String() string { func (*HubLogInfo) ProtoMessage() {} func (x *HubLogInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[55] + mi := &file_proto_dm_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3793,7 +3872,7 @@ func (x *HubLogInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use HubLogInfo.ProtoReflect.Descriptor instead. func (*HubLogInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{55} + return file_proto_dm_proto_rawDescGZIP(), []int{56} } func (x *HubLogInfo) GetTimestamp() int64 { @@ -3869,7 +3948,7 @@ type StatusLogIndexReq struct { func (x *StatusLogIndexReq) Reset() { *x = StatusLogIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[56] + mi := &file_proto_dm_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3882,7 +3961,7 @@ func (x *StatusLogIndexReq) String() string { func (*StatusLogIndexReq) ProtoMessage() {} func (x *StatusLogIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[56] + mi := &file_proto_dm_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3895,7 +3974,7 @@ func (x *StatusLogIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusLogIndexReq.ProtoReflect.Descriptor instead. func (*StatusLogIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{56} + return file_proto_dm_proto_rawDescGZIP(), []int{57} } func (x *StatusLogIndexReq) GetProductID() string { @@ -3953,7 +4032,7 @@ type StatusLogIndexResp struct { func (x *StatusLogIndexResp) Reset() { *x = StatusLogIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[57] + mi := &file_proto_dm_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3966,7 +4045,7 @@ func (x *StatusLogIndexResp) String() string { func (*StatusLogIndexResp) ProtoMessage() {} func (x *StatusLogIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[57] + mi := &file_proto_dm_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3979,7 +4058,7 @@ func (x *StatusLogIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusLogIndexResp.ProtoReflect.Descriptor instead. func (*StatusLogIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{57} + return file_proto_dm_proto_rawDescGZIP(), []int{58} } func (x *StatusLogIndexResp) GetTotal() int64 { @@ -4011,7 +4090,7 @@ type StatusLogInfo struct { func (x *StatusLogInfo) Reset() { *x = StatusLogInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[58] + mi := &file_proto_dm_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4024,7 +4103,7 @@ func (x *StatusLogInfo) String() string { func (*StatusLogInfo) ProtoMessage() {} func (x *StatusLogInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[58] + mi := &file_proto_dm_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4037,7 +4116,7 @@ func (x *StatusLogInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusLogInfo.ProtoReflect.Descriptor instead. func (*StatusLogInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{58} + return file_proto_dm_proto_rawDescGZIP(), []int{59} } func (x *StatusLogInfo) GetTimestamp() int64 { @@ -4087,7 +4166,7 @@ type SendLogIndexReq struct { func (x *SendLogIndexReq) Reset() { *x = SendLogIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[59] + mi := &file_proto_dm_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4100,7 +4179,7 @@ func (x *SendLogIndexReq) String() string { func (*SendLogIndexReq) ProtoMessage() {} func (x *SendLogIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[59] + mi := &file_proto_dm_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4113,7 +4192,7 @@ func (x *SendLogIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SendLogIndexReq.ProtoReflect.Descriptor instead. func (*SendLogIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{59} + return file_proto_dm_proto_rawDescGZIP(), []int{60} } func (x *SendLogIndexReq) GetProductID() string { @@ -4185,7 +4264,7 @@ type SendLogIndexResp struct { func (x *SendLogIndexResp) Reset() { *x = SendLogIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[60] + mi := &file_proto_dm_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4198,7 +4277,7 @@ func (x *SendLogIndexResp) String() string { func (*SendLogIndexResp) ProtoMessage() {} func (x *SendLogIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[60] + mi := &file_proto_dm_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4211,7 +4290,7 @@ func (x *SendLogIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use SendLogIndexResp.ProtoReflect.Descriptor instead. func (*SendLogIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{60} + return file_proto_dm_proto_rawDescGZIP(), []int{61} } func (x *SendLogIndexResp) GetTotal() int64 { @@ -4249,7 +4328,7 @@ type SendLogInfo struct { func (x *SendLogInfo) Reset() { *x = SendLogInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[61] + mi := &file_proto_dm_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4262,7 +4341,7 @@ func (x *SendLogInfo) String() string { func (*SendLogInfo) ProtoMessage() {} func (x *SendLogInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[61] + mi := &file_proto_dm_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4275,7 +4354,7 @@ func (x *SendLogInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SendLogInfo.ProtoReflect.Descriptor instead. func (*SendLogInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{61} + return file_proto_dm_proto_rawDescGZIP(), []int{62} } func (x *SendLogInfo) GetTimestamp() int64 { @@ -4365,7 +4444,7 @@ type SdkLogIndexReq struct { func (x *SdkLogIndexReq) Reset() { *x = SdkLogIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[62] + mi := &file_proto_dm_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4378,7 +4457,7 @@ func (x *SdkLogIndexReq) String() string { func (*SdkLogIndexReq) ProtoMessage() {} func (x *SdkLogIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[62] + mi := &file_proto_dm_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4391,7 +4470,7 @@ func (x *SdkLogIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkLogIndexReq.ProtoReflect.Descriptor instead. func (*SdkLogIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{62} + return file_proto_dm_proto_rawDescGZIP(), []int{63} } func (x *SdkLogIndexReq) GetProductID() string { @@ -4449,7 +4528,7 @@ type SdkLogIndexResp struct { func (x *SdkLogIndexResp) Reset() { *x = SdkLogIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[63] + mi := &file_proto_dm_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4462,7 +4541,7 @@ func (x *SdkLogIndexResp) String() string { func (*SdkLogIndexResp) ProtoMessage() {} func (x *SdkLogIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[63] + mi := &file_proto_dm_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4475,7 +4554,7 @@ func (x *SdkLogIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkLogIndexResp.ProtoReflect.Descriptor instead. func (*SdkLogIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{63} + return file_proto_dm_proto_rawDescGZIP(), []int{64} } func (x *SdkLogIndexResp) GetTotal() int64 { @@ -4505,7 +4584,7 @@ type SdkLogInfo struct { func (x *SdkLogInfo) Reset() { *x = SdkLogInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[64] + mi := &file_proto_dm_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4518,7 +4597,7 @@ func (x *SdkLogInfo) String() string { func (*SdkLogInfo) ProtoMessage() {} func (x *SdkLogInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[64] + mi := &file_proto_dm_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4531,7 +4610,7 @@ func (x *SdkLogInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SdkLogInfo.ProtoReflect.Descriptor instead. func (*SdkLogInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{64} + return file_proto_dm_proto_rawDescGZIP(), []int{65} } func (x *SdkLogInfo) GetTimestamp() int64 { @@ -4571,7 +4650,7 @@ type ActionSendReq struct { func (x *ActionSendReq) Reset() { *x = ActionSendReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[65] + mi := &file_proto_dm_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4584,7 +4663,7 @@ func (x *ActionSendReq) String() string { func (*ActionSendReq) ProtoMessage() {} func (x *ActionSendReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[65] + mi := &file_proto_dm_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4597,7 +4676,7 @@ func (x *ActionSendReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionSendReq.ProtoReflect.Descriptor instead. func (*ActionSendReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{65} + return file_proto_dm_proto_rawDescGZIP(), []int{66} } func (x *ActionSendReq) GetProductID() string { @@ -4656,7 +4735,7 @@ type ActionSendResp struct { func (x *ActionSendResp) Reset() { *x = ActionSendResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[66] + mi := &file_proto_dm_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4669,7 +4748,7 @@ func (x *ActionSendResp) String() string { func (*ActionSendResp) ProtoMessage() {} func (x *ActionSendResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[66] + mi := &file_proto_dm_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4682,7 +4761,7 @@ func (x *ActionSendResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionSendResp.ProtoReflect.Descriptor instead. func (*ActionSendResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{66} + return file_proto_dm_proto_rawDescGZIP(), []int{67} } func (x *ActionSendResp) GetMsgToken() string { @@ -4727,7 +4806,7 @@ type RespReadReq struct { func (x *RespReadReq) Reset() { *x = RespReadReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[67] + mi := &file_proto_dm_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4740,7 +4819,7 @@ func (x *RespReadReq) String() string { func (*RespReadReq) ProtoMessage() {} func (x *RespReadReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[67] + mi := &file_proto_dm_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4753,7 +4832,7 @@ func (x *RespReadReq) ProtoReflect() protoreflect.Message { // Deprecated: Use RespReadReq.ProtoReflect.Descriptor instead. func (*RespReadReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{67} + return file_proto_dm_proto_rawDescGZIP(), []int{68} } func (x *RespReadReq) GetProductID() string { @@ -4796,7 +4875,7 @@ type PropertyControlSendReq struct { func (x *PropertyControlSendReq) Reset() { *x = PropertyControlSendReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[68] + mi := &file_proto_dm_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4809,7 +4888,7 @@ func (x *PropertyControlSendReq) String() string { func (*PropertyControlSendReq) ProtoMessage() {} func (x *PropertyControlSendReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[68] + mi := &file_proto_dm_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4822,7 +4901,7 @@ func (x *PropertyControlSendReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PropertyControlSendReq.ProtoReflect.Descriptor instead. func (*PropertyControlSendReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{68} + return file_proto_dm_proto_rawDescGZIP(), []int{69} } func (x *PropertyControlSendReq) GetProductID() string { @@ -4886,7 +4965,7 @@ type WithProfile struct { func (x *WithProfile) Reset() { *x = WithProfile{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[69] + mi := &file_proto_dm_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4899,7 +4978,7 @@ func (x *WithProfile) String() string { func (*WithProfile) ProtoMessage() {} func (x *WithProfile) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[69] + mi := &file_proto_dm_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4912,7 +4991,7 @@ func (x *WithProfile) ProtoReflect() protoreflect.Message { // Deprecated: Use WithProfile.ProtoReflect.Descriptor instead. func (*WithProfile) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{69} + return file_proto_dm_proto_rawDescGZIP(), []int{70} } func (x *WithProfile) GetCode() string { @@ -4945,7 +5024,7 @@ type ActionRespReq struct { func (x *ActionRespReq) Reset() { *x = ActionRespReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[70] + mi := &file_proto_dm_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4958,7 +5037,7 @@ func (x *ActionRespReq) String() string { func (*ActionRespReq) ProtoMessage() {} func (x *ActionRespReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[70] + mi := &file_proto_dm_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4971,7 +5050,7 @@ func (x *ActionRespReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionRespReq.ProtoReflect.Descriptor instead. func (*ActionRespReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{70} + return file_proto_dm_proto_rawDescGZIP(), []int{71} } func (x *ActionRespReq) GetProductID() string { @@ -5029,7 +5108,7 @@ type PropertyControlSendResp struct { func (x *PropertyControlSendResp) Reset() { *x = PropertyControlSendResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[71] + mi := &file_proto_dm_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5042,7 +5121,7 @@ func (x *PropertyControlSendResp) String() string { func (*PropertyControlSendResp) ProtoMessage() {} func (x *PropertyControlSendResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[71] + mi := &file_proto_dm_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5055,7 +5134,7 @@ func (x *PropertyControlSendResp) ProtoReflect() protoreflect.Message { // Deprecated: Use PropertyControlSendResp.ProtoReflect.Descriptor instead. func (*PropertyControlSendResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{71} + return file_proto_dm_proto_rawDescGZIP(), []int{72} } func (x *PropertyControlSendResp) GetCode() int64 { @@ -5091,7 +5170,7 @@ type GatewayGetFoundReq struct { func (x *GatewayGetFoundReq) Reset() { *x = GatewayGetFoundReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[72] + mi := &file_proto_dm_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5104,7 +5183,7 @@ func (x *GatewayGetFoundReq) String() string { func (*GatewayGetFoundReq) ProtoMessage() {} func (x *GatewayGetFoundReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[72] + mi := &file_proto_dm_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5117,7 +5196,7 @@ func (x *GatewayGetFoundReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GatewayGetFoundReq.ProtoReflect.Descriptor instead. func (*GatewayGetFoundReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{72} + return file_proto_dm_proto_rawDescGZIP(), []int{73} } func (x *GatewayGetFoundReq) GetProductID() string { @@ -5146,7 +5225,7 @@ type GatewayNotifyBindSendReq struct { func (x *GatewayNotifyBindSendReq) Reset() { *x = GatewayNotifyBindSendReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[73] + mi := &file_proto_dm_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5159,7 +5238,7 @@ func (x *GatewayNotifyBindSendReq) String() string { func (*GatewayNotifyBindSendReq) ProtoMessage() {} func (x *GatewayNotifyBindSendReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[73] + mi := &file_proto_dm_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5172,7 +5251,7 @@ func (x *GatewayNotifyBindSendReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GatewayNotifyBindSendReq.ProtoReflect.Descriptor instead. func (*GatewayNotifyBindSendReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{73} + return file_proto_dm_proto_rawDescGZIP(), []int{74} } func (x *GatewayNotifyBindSendReq) GetGateway() *DeviceCore { @@ -5201,7 +5280,7 @@ type SendMsgReq struct { func (x *SendMsgReq) Reset() { *x = SendMsgReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[74] + mi := &file_proto_dm_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5214,7 +5293,7 @@ func (x *SendMsgReq) String() string { func (*SendMsgReq) ProtoMessage() {} func (x *SendMsgReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[74] + mi := &file_proto_dm_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5227,7 +5306,7 @@ func (x *SendMsgReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SendMsgReq.ProtoReflect.Descriptor instead. func (*SendMsgReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{74} + return file_proto_dm_proto_rawDescGZIP(), []int{75} } func (x *SendMsgReq) GetTopic() string { @@ -5253,7 +5332,7 @@ type SendMsgResp struct { func (x *SendMsgResp) Reset() { *x = SendMsgResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[75] + mi := &file_proto_dm_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5266,7 +5345,7 @@ func (x *SendMsgResp) String() string { func (*SendMsgResp) ProtoMessage() {} func (x *SendMsgResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[75] + mi := &file_proto_dm_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5279,7 +5358,7 @@ func (x *SendMsgResp) ProtoReflect() protoreflect.Message { // Deprecated: Use SendMsgResp.ProtoReflect.Descriptor instead. func (*SendMsgResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{75} + return file_proto_dm_proto_rawDescGZIP(), []int{76} } type PropertyControlMultiSendReq struct { @@ -5301,7 +5380,7 @@ type PropertyControlMultiSendReq struct { func (x *PropertyControlMultiSendReq) Reset() { *x = PropertyControlMultiSendReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[76] + mi := &file_proto_dm_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5314,7 +5393,7 @@ func (x *PropertyControlMultiSendReq) String() string { func (*PropertyControlMultiSendReq) ProtoMessage() {} func (x *PropertyControlMultiSendReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[76] + mi := &file_proto_dm_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5327,7 +5406,7 @@ func (x *PropertyControlMultiSendReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PropertyControlMultiSendReq.ProtoReflect.Descriptor instead. func (*PropertyControlMultiSendReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{76} + return file_proto_dm_proto_rawDescGZIP(), []int{77} } func (x *PropertyControlMultiSendReq) GetProductID() string { @@ -5410,7 +5489,7 @@ type PropertyControlSendMsg struct { func (x *PropertyControlSendMsg) Reset() { *x = PropertyControlSendMsg{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[77] + mi := &file_proto_dm_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5423,7 +5502,7 @@ func (x *PropertyControlSendMsg) String() string { func (*PropertyControlSendMsg) ProtoMessage() {} func (x *PropertyControlSendMsg) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[77] + mi := &file_proto_dm_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5436,7 +5515,7 @@ func (x *PropertyControlSendMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use PropertyControlSendMsg.ProtoReflect.Descriptor instead. func (*PropertyControlSendMsg) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{77} + return file_proto_dm_proto_rawDescGZIP(), []int{78} } func (x *PropertyControlSendMsg) GetProductID() string { @@ -5499,7 +5578,7 @@ type PropertyControlMultiSendResp struct { func (x *PropertyControlMultiSendResp) Reset() { *x = PropertyControlMultiSendResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[78] + mi := &file_proto_dm_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5512,7 +5591,7 @@ func (x *PropertyControlMultiSendResp) String() string { func (*PropertyControlMultiSendResp) ProtoMessage() {} func (x *PropertyControlMultiSendResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[78] + mi := &file_proto_dm_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5525,7 +5604,7 @@ func (x *PropertyControlMultiSendResp) ProtoReflect() protoreflect.Message { // Deprecated: Use PropertyControlMultiSendResp.ProtoReflect.Descriptor instead. func (*PropertyControlMultiSendResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{78} + return file_proto_dm_proto_rawDescGZIP(), []int{79} } func (x *PropertyControlMultiSendResp) GetList() []*PropertyControlSendMsg { @@ -5549,7 +5628,7 @@ type ProductRemoteConfig struct { func (x *ProductRemoteConfig) Reset() { *x = ProductRemoteConfig{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[79] + mi := &file_proto_dm_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5562,7 +5641,7 @@ func (x *ProductRemoteConfig) String() string { func (*ProductRemoteConfig) ProtoMessage() {} func (x *ProductRemoteConfig) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[79] + mi := &file_proto_dm_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5575,7 +5654,7 @@ func (x *ProductRemoteConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductRemoteConfig.ProtoReflect.Descriptor instead. func (*ProductRemoteConfig) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{79} + return file_proto_dm_proto_rawDescGZIP(), []int{80} } func (x *ProductRemoteConfig) GetId() int64 { @@ -5618,7 +5697,7 @@ type RemoteConfigCreateReq struct { func (x *RemoteConfigCreateReq) Reset() { *x = RemoteConfigCreateReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[80] + mi := &file_proto_dm_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5631,7 +5710,7 @@ func (x *RemoteConfigCreateReq) String() string { func (*RemoteConfigCreateReq) ProtoMessage() {} func (x *RemoteConfigCreateReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[80] + mi := &file_proto_dm_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5644,7 +5723,7 @@ func (x *RemoteConfigCreateReq) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoteConfigCreateReq.ProtoReflect.Descriptor instead. func (*RemoteConfigCreateReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{80} + return file_proto_dm_proto_rawDescGZIP(), []int{81} } func (x *RemoteConfigCreateReq) GetProductID() string { @@ -5673,7 +5752,7 @@ type RemoteConfigIndexReq struct { func (x *RemoteConfigIndexReq) Reset() { *x = RemoteConfigIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[81] + mi := &file_proto_dm_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5686,7 +5765,7 @@ func (x *RemoteConfigIndexReq) String() string { func (*RemoteConfigIndexReq) ProtoMessage() {} func (x *RemoteConfigIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[81] + mi := &file_proto_dm_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5699,7 +5778,7 @@ func (x *RemoteConfigIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoteConfigIndexReq.ProtoReflect.Descriptor instead. func (*RemoteConfigIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{81} + return file_proto_dm_proto_rawDescGZIP(), []int{82} } func (x *RemoteConfigIndexReq) GetPage() *PageInfo { @@ -5728,7 +5807,7 @@ type RemoteConfigIndexResp struct { func (x *RemoteConfigIndexResp) Reset() { *x = RemoteConfigIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[82] + mi := &file_proto_dm_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5741,7 +5820,7 @@ func (x *RemoteConfigIndexResp) String() string { func (*RemoteConfigIndexResp) ProtoMessage() {} func (x *RemoteConfigIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[82] + mi := &file_proto_dm_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5754,7 +5833,7 @@ func (x *RemoteConfigIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoteConfigIndexResp.ProtoReflect.Descriptor instead. func (*RemoteConfigIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{82} + return file_proto_dm_proto_rawDescGZIP(), []int{83} } func (x *RemoteConfigIndexResp) GetList() []*ProductRemoteConfig { @@ -5782,7 +5861,7 @@ type RemoteConfigPushAllReq struct { func (x *RemoteConfigPushAllReq) Reset() { *x = RemoteConfigPushAllReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[83] + mi := &file_proto_dm_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5795,7 +5874,7 @@ func (x *RemoteConfigPushAllReq) String() string { func (*RemoteConfigPushAllReq) ProtoMessage() {} func (x *RemoteConfigPushAllReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[83] + mi := &file_proto_dm_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5808,7 +5887,7 @@ func (x *RemoteConfigPushAllReq) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoteConfigPushAllReq.ProtoReflect.Descriptor instead. func (*RemoteConfigPushAllReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{83} + return file_proto_dm_proto_rawDescGZIP(), []int{84} } func (x *RemoteConfigPushAllReq) GetProductID() string { @@ -5829,7 +5908,7 @@ type RemoteConfigLastReadReq struct { func (x *RemoteConfigLastReadReq) Reset() { *x = RemoteConfigLastReadReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[84] + mi := &file_proto_dm_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5842,7 +5921,7 @@ func (x *RemoteConfigLastReadReq) String() string { func (*RemoteConfigLastReadReq) ProtoMessage() {} func (x *RemoteConfigLastReadReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[84] + mi := &file_proto_dm_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5855,7 +5934,7 @@ func (x *RemoteConfigLastReadReq) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoteConfigLastReadReq.ProtoReflect.Descriptor instead. func (*RemoteConfigLastReadReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{84} + return file_proto_dm_proto_rawDescGZIP(), []int{85} } func (x *RemoteConfigLastReadReq) GetProductID() string { @@ -5876,7 +5955,7 @@ type RemoteConfigLastReadResp struct { func (x *RemoteConfigLastReadResp) Reset() { *x = RemoteConfigLastReadResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[85] + mi := &file_proto_dm_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5889,7 +5968,7 @@ func (x *RemoteConfigLastReadResp) String() string { func (*RemoteConfigLastReadResp) ProtoMessage() {} func (x *RemoteConfigLastReadResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[85] + mi := &file_proto_dm_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5902,7 +5981,7 @@ func (x *RemoteConfigLastReadResp) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoteConfigLastReadResp.ProtoReflect.Descriptor instead. func (*RemoteConfigLastReadResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{85} + return file_proto_dm_proto_rawDescGZIP(), []int{86} } func (x *RemoteConfigLastReadResp) GetInfo() *ProductRemoteConfig { @@ -5923,7 +6002,7 @@ type ProductCustomReadReq struct { func (x *ProductCustomReadReq) Reset() { *x = ProductCustomReadReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[86] + mi := &file_proto_dm_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5936,7 +6015,7 @@ func (x *ProductCustomReadReq) String() string { func (*ProductCustomReadReq) ProtoMessage() {} func (x *ProductCustomReadReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[86] + mi := &file_proto_dm_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5949,7 +6028,7 @@ func (x *ProductCustomReadReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductCustomReadReq.ProtoReflect.Descriptor instead. func (*ProductCustomReadReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{86} + return file_proto_dm_proto_rawDescGZIP(), []int{87} } func (x *ProductCustomReadReq) GetProductID() string { @@ -5974,7 +6053,7 @@ type ProductCustom struct { func (x *ProductCustom) Reset() { *x = ProductCustom{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[87] + mi := &file_proto_dm_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5987,7 +6066,7 @@ func (x *ProductCustom) String() string { func (*ProductCustom) ProtoMessage() {} func (x *ProductCustom) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[87] + mi := &file_proto_dm_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6000,7 +6079,7 @@ func (x *ProductCustom) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductCustom.ProtoReflect.Descriptor instead. func (*ProductCustom) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{87} + return file_proto_dm_proto_rawDescGZIP(), []int{88} } func (x *ProductCustom) GetProductID() string { @@ -6050,7 +6129,7 @@ type CustomTopic struct { func (x *CustomTopic) Reset() { *x = CustomTopic{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[88] + mi := &file_proto_dm_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6063,7 +6142,7 @@ func (x *CustomTopic) String() string { func (*CustomTopic) ProtoMessage() {} func (x *CustomTopic) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[88] + mi := &file_proto_dm_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6076,7 +6155,7 @@ func (x *CustomTopic) ProtoReflect() protoreflect.Message { // Deprecated: Use CustomTopic.ProtoReflect.Descriptor instead. func (*CustomTopic) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{88} + return file_proto_dm_proto_rawDescGZIP(), []int{89} } func (x *CustomTopic) GetTopic() string { @@ -6106,7 +6185,7 @@ type DeviceGatewayBindDevice struct { func (x *DeviceGatewayBindDevice) Reset() { *x = DeviceGatewayBindDevice{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[89] + mi := &file_proto_dm_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6119,7 +6198,7 @@ func (x *DeviceGatewayBindDevice) String() string { func (*DeviceGatewayBindDevice) ProtoMessage() {} func (x *DeviceGatewayBindDevice) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[89] + mi := &file_proto_dm_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6132,7 +6211,7 @@ func (x *DeviceGatewayBindDevice) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceGatewayBindDevice.ProtoReflect.Descriptor instead. func (*DeviceGatewayBindDevice) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{89} + return file_proto_dm_proto_rawDescGZIP(), []int{90} } func (x *DeviceGatewayBindDevice) GetProductID() string { @@ -6174,7 +6253,7 @@ type DeviceGatewaySign struct { func (x *DeviceGatewaySign) Reset() { *x = DeviceGatewaySign{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[90] + mi := &file_proto_dm_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6187,7 +6266,7 @@ func (x *DeviceGatewaySign) String() string { func (*DeviceGatewaySign) ProtoMessage() {} func (x *DeviceGatewaySign) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[90] + mi := &file_proto_dm_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6200,7 +6279,7 @@ func (x *DeviceGatewaySign) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceGatewaySign.ProtoReflect.Descriptor instead. func (*DeviceGatewaySign) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{90} + return file_proto_dm_proto_rawDescGZIP(), []int{91} } func (x *DeviceGatewaySign) GetSignature() string { @@ -6245,7 +6324,7 @@ type DeviceGatewayMultiCreateReq struct { func (x *DeviceGatewayMultiCreateReq) Reset() { *x = DeviceGatewayMultiCreateReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[91] + mi := &file_proto_dm_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6258,7 +6337,7 @@ func (x *DeviceGatewayMultiCreateReq) String() string { func (*DeviceGatewayMultiCreateReq) ProtoMessage() {} func (x *DeviceGatewayMultiCreateReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[91] + mi := &file_proto_dm_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6271,7 +6350,7 @@ func (x *DeviceGatewayMultiCreateReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceGatewayMultiCreateReq.ProtoReflect.Descriptor instead. func (*DeviceGatewayMultiCreateReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{91} + return file_proto_dm_proto_rawDescGZIP(), []int{92} } func (x *DeviceGatewayMultiCreateReq) GetGateway() *DeviceCore { @@ -6315,7 +6394,7 @@ type DeviceGatewayIndexReq struct { func (x *DeviceGatewayIndexReq) Reset() { *x = DeviceGatewayIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[92] + mi := &file_proto_dm_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6328,7 +6407,7 @@ func (x *DeviceGatewayIndexReq) String() string { func (*DeviceGatewayIndexReq) ProtoMessage() {} func (x *DeviceGatewayIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[92] + mi := &file_proto_dm_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6341,7 +6420,7 @@ func (x *DeviceGatewayIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceGatewayIndexReq.ProtoReflect.Descriptor instead. func (*DeviceGatewayIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{92} + return file_proto_dm_proto_rawDescGZIP(), []int{93} } func (x *DeviceGatewayIndexReq) GetPage() *PageInfo { @@ -6377,7 +6456,7 @@ type DeviceGatewayIndexResp struct { func (x *DeviceGatewayIndexResp) Reset() { *x = DeviceGatewayIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[93] + mi := &file_proto_dm_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6390,7 +6469,7 @@ func (x *DeviceGatewayIndexResp) String() string { func (*DeviceGatewayIndexResp) ProtoMessage() {} func (x *DeviceGatewayIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[93] + mi := &file_proto_dm_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6403,7 +6482,7 @@ func (x *DeviceGatewayIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceGatewayIndexResp.ProtoReflect.Descriptor instead. func (*DeviceGatewayIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{93} + return file_proto_dm_proto_rawDescGZIP(), []int{94} } func (x *DeviceGatewayIndexResp) GetList() []*DeviceCore { @@ -6433,7 +6512,7 @@ type DeviceGatewayMultiSaveReq struct { func (x *DeviceGatewayMultiSaveReq) Reset() { *x = DeviceGatewayMultiSaveReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[94] + mi := &file_proto_dm_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6446,7 +6525,7 @@ func (x *DeviceGatewayMultiSaveReq) String() string { func (*DeviceGatewayMultiSaveReq) ProtoMessage() {} func (x *DeviceGatewayMultiSaveReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[94] + mi := &file_proto_dm_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6459,7 +6538,7 @@ func (x *DeviceGatewayMultiSaveReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceGatewayMultiSaveReq.ProtoReflect.Descriptor instead. func (*DeviceGatewayMultiSaveReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{94} + return file_proto_dm_proto_rawDescGZIP(), []int{95} } func (x *DeviceGatewayMultiSaveReq) GetGateway() *DeviceCore { @@ -6494,7 +6573,7 @@ type GatewayCanBindIndexReq struct { func (x *GatewayCanBindIndexReq) Reset() { *x = GatewayCanBindIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[95] + mi := &file_proto_dm_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6507,7 +6586,7 @@ func (x *GatewayCanBindIndexReq) String() string { func (*GatewayCanBindIndexReq) ProtoMessage() {} func (x *GatewayCanBindIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[95] + mi := &file_proto_dm_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6520,7 +6599,7 @@ func (x *GatewayCanBindIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GatewayCanBindIndexReq.ProtoReflect.Descriptor instead. func (*GatewayCanBindIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{95} + return file_proto_dm_proto_rawDescGZIP(), []int{96} } func (x *GatewayCanBindIndexReq) GetGateway() *DeviceCore { @@ -6542,7 +6621,7 @@ type GatewayCanBindIndexResp struct { func (x *GatewayCanBindIndexResp) Reset() { *x = GatewayCanBindIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[96] + mi := &file_proto_dm_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6555,7 +6634,7 @@ func (x *GatewayCanBindIndexResp) String() string { func (*GatewayCanBindIndexResp) ProtoMessage() {} func (x *GatewayCanBindIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[96] + mi := &file_proto_dm_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6568,7 +6647,7 @@ func (x *GatewayCanBindIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GatewayCanBindIndexResp.ProtoReflect.Descriptor instead. func (*GatewayCanBindIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{96} + return file_proto_dm_proto_rawDescGZIP(), []int{97} } func (x *GatewayCanBindIndexResp) GetSubDevices() []*DeviceCore { @@ -6609,7 +6688,7 @@ type GroupInfo struct { func (x *GroupInfo) Reset() { *x = GroupInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[97] + mi := &file_proto_dm_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6622,7 +6701,7 @@ func (x *GroupInfo) String() string { func (*GroupInfo) ProtoMessage() {} func (x *GroupInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[97] + mi := &file_proto_dm_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6635,7 +6714,7 @@ func (x *GroupInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupInfo.ProtoReflect.Descriptor instead. func (*GroupInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{97} + return file_proto_dm_proto_rawDescGZIP(), []int{98} } func (x *GroupInfo) GetAreaID() int64 { @@ -6751,7 +6830,7 @@ type GroupInfoCreateReq struct { func (x *GroupInfoCreateReq) Reset() { *x = GroupInfoCreateReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[98] + mi := &file_proto_dm_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6764,7 +6843,7 @@ func (x *GroupInfoCreateReq) String() string { func (*GroupInfoCreateReq) ProtoMessage() {} func (x *GroupInfoCreateReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[98] + mi := &file_proto_dm_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6777,7 +6856,7 @@ func (x *GroupInfoCreateReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupInfoCreateReq.ProtoReflect.Descriptor instead. func (*GroupInfoCreateReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{98} + return file_proto_dm_proto_rawDescGZIP(), []int{99} } func (x *GroupInfoCreateReq) GetAreaID() int64 { @@ -6830,7 +6909,7 @@ type GroupInfoIndexReq struct { func (x *GroupInfoIndexReq) Reset() { *x = GroupInfoIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[99] + mi := &file_proto_dm_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6843,7 +6922,7 @@ func (x *GroupInfoIndexReq) String() string { func (*GroupInfoIndexReq) ProtoMessage() {} func (x *GroupInfoIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[99] + mi := &file_proto_dm_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6856,7 +6935,7 @@ func (x *GroupInfoIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupInfoIndexReq.ProtoReflect.Descriptor instead. func (*GroupInfoIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{99} + return file_proto_dm_proto_rawDescGZIP(), []int{100} } func (x *GroupInfoIndexReq) GetAreaID() int64 { @@ -6906,7 +6985,7 @@ type GroupInfoIndexResp struct { func (x *GroupInfoIndexResp) Reset() { *x = GroupInfoIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[100] + mi := &file_proto_dm_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6919,7 +6998,7 @@ func (x *GroupInfoIndexResp) String() string { func (*GroupInfoIndexResp) ProtoMessage() {} func (x *GroupInfoIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[100] + mi := &file_proto_dm_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6932,7 +7011,7 @@ func (x *GroupInfoIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupInfoIndexResp.ProtoReflect.Descriptor instead. func (*GroupInfoIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{100} + return file_proto_dm_proto_rawDescGZIP(), []int{101} } func (x *GroupInfoIndexResp) GetList() []*GroupInfo { @@ -6964,7 +7043,7 @@ type GroupInfoUpdateReq struct { func (x *GroupInfoUpdateReq) Reset() { *x = GroupInfoUpdateReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[101] + mi := &file_proto_dm_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6977,7 +7056,7 @@ func (x *GroupInfoUpdateReq) String() string { func (*GroupInfoUpdateReq) ProtoMessage() {} func (x *GroupInfoUpdateReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[101] + mi := &file_proto_dm_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6990,7 +7069,7 @@ func (x *GroupInfoUpdateReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupInfoUpdateReq.ProtoReflect.Descriptor instead. func (*GroupInfoUpdateReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{101} + return file_proto_dm_proto_rawDescGZIP(), []int{102} } func (x *GroupInfoUpdateReq) GetId() int64 { @@ -7040,7 +7119,7 @@ type GroupDeviceMultiSaveReq struct { func (x *GroupDeviceMultiSaveReq) Reset() { *x = GroupDeviceMultiSaveReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[102] + mi := &file_proto_dm_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7053,7 +7132,7 @@ func (x *GroupDeviceMultiSaveReq) String() string { func (*GroupDeviceMultiSaveReq) ProtoMessage() {} func (x *GroupDeviceMultiSaveReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[102] + mi := &file_proto_dm_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7066,7 +7145,7 @@ func (x *GroupDeviceMultiSaveReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupDeviceMultiSaveReq.ProtoReflect.Descriptor instead. func (*GroupDeviceMultiSaveReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{102} + return file_proto_dm_proto_rawDescGZIP(), []int{103} } func (x *GroupDeviceMultiSaveReq) GetGroupID() int64 { @@ -7097,7 +7176,7 @@ type GroupDeviceIndexReq struct { func (x *GroupDeviceIndexReq) Reset() { *x = GroupDeviceIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[103] + mi := &file_proto_dm_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7110,7 +7189,7 @@ func (x *GroupDeviceIndexReq) String() string { func (*GroupDeviceIndexReq) ProtoMessage() {} func (x *GroupDeviceIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[103] + mi := &file_proto_dm_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7123,7 +7202,7 @@ func (x *GroupDeviceIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupDeviceIndexReq.ProtoReflect.Descriptor instead. func (*GroupDeviceIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{103} + return file_proto_dm_proto_rawDescGZIP(), []int{104} } func (x *GroupDeviceIndexReq) GetPage() *PageInfo { @@ -7166,7 +7245,7 @@ type GroupDeviceIndexResp struct { func (x *GroupDeviceIndexResp) Reset() { *x = GroupDeviceIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[104] + mi := &file_proto_dm_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7179,7 +7258,7 @@ func (x *GroupDeviceIndexResp) String() string { func (*GroupDeviceIndexResp) ProtoMessage() {} func (x *GroupDeviceIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[104] + mi := &file_proto_dm_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7192,7 +7271,7 @@ func (x *GroupDeviceIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupDeviceIndexResp.ProtoReflect.Descriptor instead. func (*GroupDeviceIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{104} + return file_proto_dm_proto_rawDescGZIP(), []int{105} } func (x *GroupDeviceIndexResp) GetList() []*DeviceInfo { @@ -7221,7 +7300,7 @@ type GroupDeviceMultiDeleteReq struct { func (x *GroupDeviceMultiDeleteReq) Reset() { *x = GroupDeviceMultiDeleteReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[105] + mi := &file_proto_dm_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7234,7 +7313,7 @@ func (x *GroupDeviceMultiDeleteReq) String() string { func (*GroupDeviceMultiDeleteReq) ProtoMessage() {} func (x *GroupDeviceMultiDeleteReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[105] + mi := &file_proto_dm_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7247,7 +7326,7 @@ func (x *GroupDeviceMultiDeleteReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupDeviceMultiDeleteReq.ProtoReflect.Descriptor instead. func (*GroupDeviceMultiDeleteReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{105} + return file_proto_dm_proto_rawDescGZIP(), []int{106} } func (x *GroupDeviceMultiDeleteReq) GetGroupID() int64 { @@ -7276,7 +7355,7 @@ type Point struct { func (x *Point) Reset() { *x = Point{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[106] + mi := &file_proto_dm_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7289,7 +7368,7 @@ func (x *Point) String() string { func (*Point) ProtoMessage() {} func (x *Point) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[106] + mi := &file_proto_dm_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7302,7 +7381,7 @@ func (x *Point) ProtoReflect() protoreflect.Message { // Deprecated: Use Point.ProtoReflect.Descriptor instead. func (*Point) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{106} + return file_proto_dm_proto_rawDescGZIP(), []int{107} } func (x *Point) GetLongitude() float64 { @@ -7374,7 +7453,7 @@ type DeviceInfo struct { func (x *DeviceInfo) Reset() { *x = DeviceInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[107] + mi := &file_proto_dm_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7387,7 +7466,7 @@ func (x *DeviceInfo) String() string { func (*DeviceInfo) ProtoMessage() {} func (x *DeviceInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[107] + mi := &file_proto_dm_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7400,7 +7479,7 @@ func (x *DeviceInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceInfo.ProtoReflect.Descriptor instead. func (*DeviceInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{107} + return file_proto_dm_proto_rawDescGZIP(), []int{108} } func (x *DeviceInfo) GetId() int64 { @@ -7749,7 +7828,7 @@ type ProductInfo struct { func (x *ProductInfo) Reset() { *x = ProductInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[108] + mi := &file_proto_dm_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7762,7 +7841,7 @@ func (x *ProductInfo) String() string { func (*ProductInfo) ProtoMessage() {} func (x *ProductInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[108] + mi := &file_proto_dm_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7775,7 +7854,7 @@ func (x *ProductInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductInfo.ProtoReflect.Descriptor instead. func (*ProductInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{108} + return file_proto_dm_proto_rawDescGZIP(), []int{109} } func (x *ProductInfo) GetCreatedTime() int64 { @@ -7938,7 +8017,7 @@ type ProductCustomUi struct { func (x *ProductCustomUi) Reset() { *x = ProductCustomUi{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[109] + mi := &file_proto_dm_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7951,7 +8030,7 @@ func (x *ProductCustomUi) String() string { func (*ProductCustomUi) ProtoMessage() {} func (x *ProductCustomUi) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[109] + mi := &file_proto_dm_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7964,7 +8043,7 @@ func (x *ProductCustomUi) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductCustomUi.ProtoReflect.Descriptor instead. func (*ProductCustomUi) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{109} + return file_proto_dm_proto_rawDescGZIP(), []int{110} } func (x *ProductCustomUi) GetPath() string { @@ -7999,7 +8078,7 @@ type ProductInfoDeleteReq struct { func (x *ProductInfoDeleteReq) Reset() { *x = ProductInfoDeleteReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[110] + mi := &file_proto_dm_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8012,7 +8091,7 @@ func (x *ProductInfoDeleteReq) String() string { func (*ProductInfoDeleteReq) ProtoMessage() {} func (x *ProductInfoDeleteReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[110] + mi := &file_proto_dm_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8025,7 +8104,7 @@ func (x *ProductInfoDeleteReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductInfoDeleteReq.ProtoReflect.Descriptor instead. func (*ProductInfoDeleteReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{110} + return file_proto_dm_proto_rawDescGZIP(), []int{111} } func (x *ProductInfoDeleteReq) GetProductID() string { @@ -8048,7 +8127,7 @@ type ProductInfoReadReq struct { func (x *ProductInfoReadReq) Reset() { *x = ProductInfoReadReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[111] + mi := &file_proto_dm_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8061,7 +8140,7 @@ func (x *ProductInfoReadReq) String() string { func (*ProductInfoReadReq) ProtoMessage() {} func (x *ProductInfoReadReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[111] + mi := &file_proto_dm_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8074,7 +8153,7 @@ func (x *ProductInfoReadReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductInfoReadReq.ProtoReflect.Descriptor instead. func (*ProductInfoReadReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{111} + return file_proto_dm_proto_rawDescGZIP(), []int{112} } func (x *ProductInfoReadReq) GetProductID() string { @@ -8126,7 +8205,7 @@ type ProductInfoIndexReq struct { func (x *ProductInfoIndexReq) Reset() { *x = ProductInfoIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[112] + mi := &file_proto_dm_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8139,7 +8218,7 @@ func (x *ProductInfoIndexReq) String() string { func (*ProductInfoIndexReq) ProtoMessage() {} func (x *ProductInfoIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[112] + mi := &file_proto_dm_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8152,7 +8231,7 @@ func (x *ProductInfoIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductInfoIndexReq.ProtoReflect.Descriptor instead. func (*ProductInfoIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{112} + return file_proto_dm_proto_rawDescGZIP(), []int{113} } func (x *ProductInfoIndexReq) GetPage() *PageInfo { @@ -8293,7 +8372,7 @@ type ProductInfoIndexResp struct { func (x *ProductInfoIndexResp) Reset() { *x = ProductInfoIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[113] + mi := &file_proto_dm_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8306,7 +8385,7 @@ func (x *ProductInfoIndexResp) String() string { func (*ProductInfoIndexResp) ProtoMessage() {} func (x *ProductInfoIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[113] + mi := &file_proto_dm_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8319,7 +8398,7 @@ func (x *ProductInfoIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductInfoIndexResp.ProtoReflect.Descriptor instead. func (*ProductInfoIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{113} + return file_proto_dm_proto_rawDescGZIP(), []int{114} } func (x *ProductInfoIndexResp) GetList() []*ProductInfo { @@ -8347,7 +8426,7 @@ type DeviceOnlineMultiFixReq struct { func (x *DeviceOnlineMultiFixReq) Reset() { *x = DeviceOnlineMultiFixReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[114] + mi := &file_proto_dm_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8360,7 +8439,7 @@ func (x *DeviceOnlineMultiFixReq) String() string { func (*DeviceOnlineMultiFixReq) ProtoMessage() {} func (x *DeviceOnlineMultiFixReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[114] + mi := &file_proto_dm_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8373,7 +8452,7 @@ func (x *DeviceOnlineMultiFixReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceOnlineMultiFixReq.ProtoReflect.Descriptor instead. func (*DeviceOnlineMultiFixReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{114} + return file_proto_dm_proto_rawDescGZIP(), []int{115} } func (x *DeviceOnlineMultiFixReq) GetDevices() []*DeviceOnlineMultiFix { @@ -8396,7 +8475,7 @@ type DeviceOnlineMultiFix struct { func (x *DeviceOnlineMultiFix) Reset() { *x = DeviceOnlineMultiFix{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[115] + mi := &file_proto_dm_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8409,7 +8488,7 @@ func (x *DeviceOnlineMultiFix) String() string { func (*DeviceOnlineMultiFix) ProtoMessage() {} func (x *DeviceOnlineMultiFix) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[115] + mi := &file_proto_dm_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8422,7 +8501,7 @@ func (x *DeviceOnlineMultiFix) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceOnlineMultiFix.ProtoReflect.Descriptor instead. func (*DeviceOnlineMultiFix) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{115} + return file_proto_dm_proto_rawDescGZIP(), []int{116} } func (x *DeviceOnlineMultiFix) GetDevice() *DeviceCore { @@ -8458,7 +8537,7 @@ type DeviceInfoDeleteReq struct { func (x *DeviceInfoDeleteReq) Reset() { *x = DeviceInfoDeleteReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[116] + mi := &file_proto_dm_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8471,7 +8550,7 @@ func (x *DeviceInfoDeleteReq) String() string { func (*DeviceInfoDeleteReq) ProtoMessage() {} func (x *DeviceInfoDeleteReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[116] + mi := &file_proto_dm_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8484,7 +8563,7 @@ func (x *DeviceInfoDeleteReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceInfoDeleteReq.ProtoReflect.Descriptor instead. func (*DeviceInfoDeleteReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{116} + return file_proto_dm_proto_rawDescGZIP(), []int{117} } func (x *DeviceInfoDeleteReq) GetProductID() string { @@ -8513,7 +8592,7 @@ type DeviceCore struct { func (x *DeviceCore) Reset() { *x = DeviceCore{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[117] + mi := &file_proto_dm_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8526,7 +8605,7 @@ func (x *DeviceCore) String() string { func (*DeviceCore) ProtoMessage() {} func (x *DeviceCore) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[117] + mi := &file_proto_dm_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8539,7 +8618,7 @@ func (x *DeviceCore) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceCore.ProtoReflect.Descriptor instead. func (*DeviceCore) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{117} + return file_proto_dm_proto_rawDescGZIP(), []int{118} } func (x *DeviceCore) GetProductID() string { @@ -8570,7 +8649,7 @@ type DeviceError struct { func (x *DeviceError) Reset() { *x = DeviceError{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[118] + mi := &file_proto_dm_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8583,7 +8662,7 @@ func (x *DeviceError) String() string { func (*DeviceError) ProtoMessage() {} func (x *DeviceError) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[118] + mi := &file_proto_dm_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8596,7 +8675,7 @@ func (x *DeviceError) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceError.ProtoReflect.Descriptor instead. func (*DeviceError) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{118} + return file_proto_dm_proto_rawDescGZIP(), []int{119} } func (x *DeviceError) GetProductID() string { @@ -8640,7 +8719,7 @@ type DeviceInfoReadReq struct { func (x *DeviceInfoReadReq) Reset() { *x = DeviceInfoReadReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[119] + mi := &file_proto_dm_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8653,7 +8732,7 @@ func (x *DeviceInfoReadReq) String() string { func (*DeviceInfoReadReq) ProtoMessage() {} func (x *DeviceInfoReadReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[119] + mi := &file_proto_dm_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8666,7 +8745,7 @@ func (x *DeviceInfoReadReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceInfoReadReq.ProtoReflect.Descriptor instead. func (*DeviceInfoReadReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{119} + return file_proto_dm_proto_rawDescGZIP(), []int{120} } func (x *DeviceInfoReadReq) GetProductID() string { @@ -8705,7 +8784,7 @@ type DeviceInfoMultiUpdateReq struct { func (x *DeviceInfoMultiUpdateReq) Reset() { *x = DeviceInfoMultiUpdateReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[120] + mi := &file_proto_dm_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8718,7 +8797,7 @@ func (x *DeviceInfoMultiUpdateReq) String() string { func (*DeviceInfoMultiUpdateReq) ProtoMessage() {} func (x *DeviceInfoMultiUpdateReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[120] + mi := &file_proto_dm_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8731,7 +8810,7 @@ func (x *DeviceInfoMultiUpdateReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceInfoMultiUpdateReq.ProtoReflect.Descriptor instead. func (*DeviceInfoMultiUpdateReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{120} + return file_proto_dm_proto_rawDescGZIP(), []int{121} } func (x *DeviceInfoMultiUpdateReq) GetDevices() []*DeviceCore { @@ -8811,7 +8890,7 @@ type DeviceInfoIndexReq struct { func (x *DeviceInfoIndexReq) Reset() { *x = DeviceInfoIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[121] + mi := &file_proto_dm_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8824,7 +8903,7 @@ func (x *DeviceInfoIndexReq) String() string { func (*DeviceInfoIndexReq) ProtoMessage() {} func (x *DeviceInfoIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[121] + mi := &file_proto_dm_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8837,7 +8916,7 @@ func (x *DeviceInfoIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceInfoIndexReq.ProtoReflect.Descriptor instead. func (*DeviceInfoIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{121} + return file_proto_dm_proto_rawDescGZIP(), []int{122} } func (x *DeviceInfoIndexReq) GetPage() *PageInfo { @@ -9076,7 +9155,7 @@ type DeviceInfoIndexResp struct { func (x *DeviceInfoIndexResp) Reset() { *x = DeviceInfoIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[122] + mi := &file_proto_dm_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9089,7 +9168,7 @@ func (x *DeviceInfoIndexResp) String() string { func (*DeviceInfoIndexResp) ProtoMessage() {} func (x *DeviceInfoIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[122] + mi := &file_proto_dm_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9102,7 +9181,7 @@ func (x *DeviceInfoIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceInfoIndexResp.ProtoReflect.Descriptor instead. func (*DeviceInfoIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{122} + return file_proto_dm_proto_rawDescGZIP(), []int{123} } func (x *DeviceInfoIndexResp) GetList() []*DeviceInfo { @@ -9134,7 +9213,7 @@ type RootCheckReq struct { func (x *RootCheckReq) Reset() { *x = RootCheckReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[123] + mi := &file_proto_dm_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9147,7 +9226,7 @@ func (x *RootCheckReq) String() string { func (*RootCheckReq) ProtoMessage() {} func (x *RootCheckReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[123] + mi := &file_proto_dm_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9160,7 +9239,7 @@ func (x *RootCheckReq) ProtoReflect() protoreflect.Message { // Deprecated: Use RootCheckReq.ProtoReflect.Descriptor instead. func (*RootCheckReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{123} + return file_proto_dm_proto_rawDescGZIP(), []int{124} } func (x *RootCheckReq) GetUsername() string { @@ -9209,7 +9288,7 @@ type CommonSchemaUpdateReq struct { func (x *CommonSchemaUpdateReq) Reset() { *x = CommonSchemaUpdateReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[124] + mi := &file_proto_dm_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9222,7 +9301,7 @@ func (x *CommonSchemaUpdateReq) String() string { func (*CommonSchemaUpdateReq) ProtoMessage() {} func (x *CommonSchemaUpdateReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[124] + mi := &file_proto_dm_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9235,7 +9314,7 @@ func (x *CommonSchemaUpdateReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CommonSchemaUpdateReq.ProtoReflect.Descriptor instead. func (*CommonSchemaUpdateReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{124} + return file_proto_dm_proto_rawDescGZIP(), []int{125} } func (x *CommonSchemaUpdateReq) GetInfo() *CommonSchemaInfo { @@ -9256,7 +9335,7 @@ type CommonSchemaCreateReq struct { func (x *CommonSchemaCreateReq) Reset() { *x = CommonSchemaCreateReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[125] + mi := &file_proto_dm_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9269,7 +9348,7 @@ func (x *CommonSchemaCreateReq) String() string { func (*CommonSchemaCreateReq) ProtoMessage() {} func (x *CommonSchemaCreateReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[125] + mi := &file_proto_dm_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9282,7 +9361,7 @@ func (x *CommonSchemaCreateReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CommonSchemaCreateReq.ProtoReflect.Descriptor instead. func (*CommonSchemaCreateReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{125} + return file_proto_dm_proto_rawDescGZIP(), []int{126} } func (x *CommonSchemaCreateReq) GetInfo() *CommonSchemaInfo { @@ -9320,7 +9399,7 @@ type CommonSchemaIndexReq struct { func (x *CommonSchemaIndexReq) Reset() { *x = CommonSchemaIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[126] + mi := &file_proto_dm_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9333,7 +9412,7 @@ func (x *CommonSchemaIndexReq) String() string { func (*CommonSchemaIndexReq) ProtoMessage() {} func (x *CommonSchemaIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[126] + mi := &file_proto_dm_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9346,7 +9425,7 @@ func (x *CommonSchemaIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CommonSchemaIndexReq.ProtoReflect.Descriptor instead. func (*CommonSchemaIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{126} + return file_proto_dm_proto_rawDescGZIP(), []int{127} } func (x *CommonSchemaIndexReq) GetPage() *PageInfo { @@ -9487,7 +9566,7 @@ type CommonSchemaIndexResp struct { func (x *CommonSchemaIndexResp) Reset() { *x = CommonSchemaIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[127] + mi := &file_proto_dm_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9500,7 +9579,7 @@ func (x *CommonSchemaIndexResp) String() string { func (*CommonSchemaIndexResp) ProtoMessage() {} func (x *CommonSchemaIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[127] + mi := &file_proto_dm_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9513,7 +9592,7 @@ func (x *CommonSchemaIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use CommonSchemaIndexResp.ProtoReflect.Descriptor instead. func (*CommonSchemaIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{127} + return file_proto_dm_proto_rawDescGZIP(), []int{128} } func (x *CommonSchemaIndexResp) GetList() []*CommonSchemaInfo { @@ -9555,7 +9634,7 @@ type CommonSchemaInfo struct { func (x *CommonSchemaInfo) Reset() { *x = CommonSchemaInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[128] + mi := &file_proto_dm_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9568,7 +9647,7 @@ func (x *CommonSchemaInfo) String() string { func (*CommonSchemaInfo) ProtoMessage() {} func (x *CommonSchemaInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[128] + mi := &file_proto_dm_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9581,7 +9660,7 @@ func (x *CommonSchemaInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use CommonSchemaInfo.ProtoReflect.Descriptor instead. func (*CommonSchemaInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{128} + return file_proto_dm_proto_rawDescGZIP(), []int{129} } func (x *CommonSchemaInfo) GetId() int64 { @@ -9700,7 +9779,7 @@ type ProductSchemaUpdateReq struct { func (x *ProductSchemaUpdateReq) Reset() { *x = ProductSchemaUpdateReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[129] + mi := &file_proto_dm_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9713,7 +9792,7 @@ func (x *ProductSchemaUpdateReq) String() string { func (*ProductSchemaUpdateReq) ProtoMessage() {} func (x *ProductSchemaUpdateReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[129] + mi := &file_proto_dm_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9726,7 +9805,7 @@ func (x *ProductSchemaUpdateReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductSchemaUpdateReq.ProtoReflect.Descriptor instead. func (*ProductSchemaUpdateReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{129} + return file_proto_dm_proto_rawDescGZIP(), []int{130} } func (x *ProductSchemaUpdateReq) GetInfo() *ProductSchemaInfo { @@ -9748,7 +9827,7 @@ type ProductSchemaMultiCreateReq struct { func (x *ProductSchemaMultiCreateReq) Reset() { *x = ProductSchemaMultiCreateReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[130] + mi := &file_proto_dm_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9761,7 +9840,7 @@ func (x *ProductSchemaMultiCreateReq) String() string { func (*ProductSchemaMultiCreateReq) ProtoMessage() {} func (x *ProductSchemaMultiCreateReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[130] + mi := &file_proto_dm_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9774,7 +9853,7 @@ func (x *ProductSchemaMultiCreateReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductSchemaMultiCreateReq.ProtoReflect.Descriptor instead. func (*ProductSchemaMultiCreateReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{130} + return file_proto_dm_proto_rawDescGZIP(), []int{131} } func (x *ProductSchemaMultiCreateReq) GetProductID() string { @@ -9802,7 +9881,7 @@ type ProductSchemaCreateReq struct { func (x *ProductSchemaCreateReq) Reset() { *x = ProductSchemaCreateReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[131] + mi := &file_proto_dm_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9815,7 +9894,7 @@ func (x *ProductSchemaCreateReq) String() string { func (*ProductSchemaCreateReq) ProtoMessage() {} func (x *ProductSchemaCreateReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[131] + mi := &file_proto_dm_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9828,7 +9907,7 @@ func (x *ProductSchemaCreateReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductSchemaCreateReq.ProtoReflect.Descriptor instead. func (*ProductSchemaCreateReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{131} + return file_proto_dm_proto_rawDescGZIP(), []int{132} } func (x *ProductSchemaCreateReq) GetInfo() *ProductSchemaInfo { @@ -9850,7 +9929,7 @@ type ProductSchemaDeleteReq struct { func (x *ProductSchemaDeleteReq) Reset() { *x = ProductSchemaDeleteReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[132] + mi := &file_proto_dm_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9863,7 +9942,7 @@ func (x *ProductSchemaDeleteReq) String() string { func (*ProductSchemaDeleteReq) ProtoMessage() {} func (x *ProductSchemaDeleteReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[132] + mi := &file_proto_dm_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9876,7 +9955,7 @@ func (x *ProductSchemaDeleteReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductSchemaDeleteReq.ProtoReflect.Descriptor instead. func (*ProductSchemaDeleteReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{132} + return file_proto_dm_proto_rawDescGZIP(), []int{133} } func (x *ProductSchemaDeleteReq) GetProductID() string { @@ -9915,7 +9994,7 @@ type ProductSchemaIndexReq struct { func (x *ProductSchemaIndexReq) Reset() { *x = ProductSchemaIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[133] + mi := &file_proto_dm_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9928,7 +10007,7 @@ func (x *ProductSchemaIndexReq) String() string { func (*ProductSchemaIndexReq) ProtoMessage() {} func (x *ProductSchemaIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[133] + mi := &file_proto_dm_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9941,7 +10020,7 @@ func (x *ProductSchemaIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductSchemaIndexReq.ProtoReflect.Descriptor instead. func (*ProductSchemaIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{133} + return file_proto_dm_proto_rawDescGZIP(), []int{134} } func (x *ProductSchemaIndexReq) GetPage() *PageInfo { @@ -10040,7 +10119,7 @@ type ProductSchemaIndexResp struct { func (x *ProductSchemaIndexResp) Reset() { *x = ProductSchemaIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[134] + mi := &file_proto_dm_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10053,7 +10132,7 @@ func (x *ProductSchemaIndexResp) String() string { func (*ProductSchemaIndexResp) ProtoMessage() {} func (x *ProductSchemaIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[134] + mi := &file_proto_dm_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10066,7 +10145,7 @@ func (x *ProductSchemaIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductSchemaIndexResp.ProtoReflect.Descriptor instead. func (*ProductSchemaIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{134} + return file_proto_dm_proto_rawDescGZIP(), []int{135} } func (x *ProductSchemaIndexResp) GetList() []*ProductSchemaInfo { @@ -10108,7 +10187,7 @@ type ProductSchemaInfo struct { func (x *ProductSchemaInfo) Reset() { *x = ProductSchemaInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[135] + mi := &file_proto_dm_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10121,7 +10200,7 @@ func (x *ProductSchemaInfo) String() string { func (*ProductSchemaInfo) ProtoMessage() {} func (x *ProductSchemaInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[135] + mi := &file_proto_dm_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10134,7 +10213,7 @@ func (x *ProductSchemaInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductSchemaInfo.ProtoReflect.Descriptor instead. func (*ProductSchemaInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{135} + return file_proto_dm_proto_rawDescGZIP(), []int{136} } func (x *ProductSchemaInfo) GetProductID() string { @@ -10254,7 +10333,7 @@ type ProductSchemaTslImportReq struct { func (x *ProductSchemaTslImportReq) Reset() { *x = ProductSchemaTslImportReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[136] + mi := &file_proto_dm_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10267,7 +10346,7 @@ func (x *ProductSchemaTslImportReq) String() string { func (*ProductSchemaTslImportReq) ProtoMessage() {} func (x *ProductSchemaTslImportReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[136] + mi := &file_proto_dm_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10280,7 +10359,7 @@ func (x *ProductSchemaTslImportReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductSchemaTslImportReq.ProtoReflect.Descriptor instead. func (*ProductSchemaTslImportReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{136} + return file_proto_dm_proto_rawDescGZIP(), []int{137} } func (x *ProductSchemaTslImportReq) GetProductID() string { @@ -10308,7 +10387,7 @@ type ProductSchemaTslReadReq struct { func (x *ProductSchemaTslReadReq) Reset() { *x = ProductSchemaTslReadReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[137] + mi := &file_proto_dm_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10321,7 +10400,7 @@ func (x *ProductSchemaTslReadReq) String() string { func (*ProductSchemaTslReadReq) ProtoMessage() {} func (x *ProductSchemaTslReadReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[137] + mi := &file_proto_dm_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10334,7 +10413,7 @@ func (x *ProductSchemaTslReadReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductSchemaTslReadReq.ProtoReflect.Descriptor instead. func (*ProductSchemaTslReadReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{137} + return file_proto_dm_proto_rawDescGZIP(), []int{138} } func (x *ProductSchemaTslReadReq) GetProductID() string { @@ -10355,7 +10434,7 @@ type ProductSchemaTslReadResp struct { func (x *ProductSchemaTslReadResp) Reset() { *x = ProductSchemaTslReadResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[138] + mi := &file_proto_dm_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10368,7 +10447,7 @@ func (x *ProductSchemaTslReadResp) String() string { func (*ProductSchemaTslReadResp) ProtoMessage() {} func (x *ProductSchemaTslReadResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[138] + mi := &file_proto_dm_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10381,7 +10460,7 @@ func (x *ProductSchemaTslReadResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ProductSchemaTslReadResp.ProtoReflect.Descriptor instead. func (*ProductSchemaTslReadResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{138} + return file_proto_dm_proto_rawDescGZIP(), []int{139} } func (x *ProductSchemaTslReadResp) GetTsl() string { @@ -10404,7 +10483,7 @@ type DeviceProfile struct { func (x *DeviceProfile) Reset() { *x = DeviceProfile{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[139] + mi := &file_proto_dm_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10417,7 +10496,7 @@ func (x *DeviceProfile) String() string { func (*DeviceProfile) ProtoMessage() {} func (x *DeviceProfile) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[139] + mi := &file_proto_dm_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10430,7 +10509,7 @@ func (x *DeviceProfile) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceProfile.ProtoReflect.Descriptor instead. func (*DeviceProfile) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{139} + return file_proto_dm_proto_rawDescGZIP(), []int{140} } func (x *DeviceProfile) GetDevice() *DeviceCore { @@ -10466,7 +10545,7 @@ type DeviceProfileReadReq struct { func (x *DeviceProfileReadReq) Reset() { *x = DeviceProfileReadReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[140] + mi := &file_proto_dm_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10479,7 +10558,7 @@ func (x *DeviceProfileReadReq) String() string { func (*DeviceProfileReadReq) ProtoMessage() {} func (x *DeviceProfileReadReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[140] + mi := &file_proto_dm_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10492,7 +10571,7 @@ func (x *DeviceProfileReadReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceProfileReadReq.ProtoReflect.Descriptor instead. func (*DeviceProfileReadReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{140} + return file_proto_dm_proto_rawDescGZIP(), []int{141} } func (x *DeviceProfileReadReq) GetDevice() *DeviceCore { @@ -10520,7 +10599,7 @@ type DeviceInfoCanBindReq struct { func (x *DeviceInfoCanBindReq) Reset() { *x = DeviceInfoCanBindReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[141] + mi := &file_proto_dm_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10533,7 +10612,7 @@ func (x *DeviceInfoCanBindReq) String() string { func (*DeviceInfoCanBindReq) ProtoMessage() {} func (x *DeviceInfoCanBindReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[141] + mi := &file_proto_dm_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10546,7 +10625,7 @@ func (x *DeviceInfoCanBindReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceInfoCanBindReq.ProtoReflect.Descriptor instead. func (*DeviceInfoCanBindReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{141} + return file_proto_dm_proto_rawDescGZIP(), []int{142} } func (x *DeviceInfoCanBindReq) GetDevice() *DeviceCore { @@ -10568,7 +10647,7 @@ type DeviceInfoMultiBindReq struct { func (x *DeviceInfoMultiBindReq) Reset() { *x = DeviceInfoMultiBindReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[142] + mi := &file_proto_dm_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10581,7 +10660,7 @@ func (x *DeviceInfoMultiBindReq) String() string { func (*DeviceInfoMultiBindReq) ProtoMessage() {} func (x *DeviceInfoMultiBindReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[142] + mi := &file_proto_dm_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10594,7 +10673,7 @@ func (x *DeviceInfoMultiBindReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceInfoMultiBindReq.ProtoReflect.Descriptor instead. func (*DeviceInfoMultiBindReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{142} + return file_proto_dm_proto_rawDescGZIP(), []int{143} } func (x *DeviceInfoMultiBindReq) GetDevices() []*DeviceCore { @@ -10622,7 +10701,7 @@ type DeviceInfoMultiBindResp struct { func (x *DeviceInfoMultiBindResp) Reset() { *x = DeviceInfoMultiBindResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[143] + mi := &file_proto_dm_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10635,7 +10714,7 @@ func (x *DeviceInfoMultiBindResp) String() string { func (*DeviceInfoMultiBindResp) ProtoMessage() {} func (x *DeviceInfoMultiBindResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[143] + mi := &file_proto_dm_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10648,7 +10727,7 @@ func (x *DeviceInfoMultiBindResp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceInfoMultiBindResp.ProtoReflect.Descriptor instead. func (*DeviceInfoMultiBindResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{143} + return file_proto_dm_proto_rawDescGZIP(), []int{144} } func (x *DeviceInfoMultiBindResp) GetErrs() []*DeviceError { @@ -10671,7 +10750,7 @@ type DeviceInfoBindReq struct { func (x *DeviceInfoBindReq) Reset() { *x = DeviceInfoBindReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[144] + mi := &file_proto_dm_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10684,7 +10763,7 @@ func (x *DeviceInfoBindReq) String() string { func (*DeviceInfoBindReq) ProtoMessage() {} func (x *DeviceInfoBindReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[144] + mi := &file_proto_dm_proto_msgTypes[145] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10697,7 +10776,7 @@ func (x *DeviceInfoBindReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceInfoBindReq.ProtoReflect.Descriptor instead. func (*DeviceInfoBindReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{144} + return file_proto_dm_proto_rawDescGZIP(), []int{145} } func (x *DeviceInfoBindReq) GetDevice() *DeviceCore { @@ -10733,7 +10812,7 @@ type DeviceProfileIndexReq struct { func (x *DeviceProfileIndexReq) Reset() { *x = DeviceProfileIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[145] + mi := &file_proto_dm_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10746,7 +10825,7 @@ func (x *DeviceProfileIndexReq) String() string { func (*DeviceProfileIndexReq) ProtoMessage() {} func (x *DeviceProfileIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[145] + mi := &file_proto_dm_proto_msgTypes[146] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10759,7 +10838,7 @@ func (x *DeviceProfileIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceProfileIndexReq.ProtoReflect.Descriptor instead. func (*DeviceProfileIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{145} + return file_proto_dm_proto_rawDescGZIP(), []int{146} } func (x *DeviceProfileIndexReq) GetDevice() *DeviceCore { @@ -10787,7 +10866,7 @@ type DeviceProfileIndexResp struct { func (x *DeviceProfileIndexResp) Reset() { *x = DeviceProfileIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[146] + mi := &file_proto_dm_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10800,7 +10879,7 @@ func (x *DeviceProfileIndexResp) String() string { func (*DeviceProfileIndexResp) ProtoMessage() {} func (x *DeviceProfileIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[146] + mi := &file_proto_dm_proto_msgTypes[147] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10813,7 +10892,7 @@ func (x *DeviceProfileIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceProfileIndexResp.ProtoReflect.Descriptor instead. func (*DeviceProfileIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{146} + return file_proto_dm_proto_rawDescGZIP(), []int{147} } func (x *DeviceProfileIndexResp) GetProfiles() []*DeviceProfile { @@ -10836,7 +10915,7 @@ type DeviceCountReq struct { func (x *DeviceCountReq) Reset() { *x = DeviceCountReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[147] + mi := &file_proto_dm_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10849,7 +10928,7 @@ func (x *DeviceCountReq) String() string { func (*DeviceCountReq) ProtoMessage() {} func (x *DeviceCountReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[147] + mi := &file_proto_dm_proto_msgTypes[148] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10862,7 +10941,7 @@ func (x *DeviceCountReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceCountReq.ProtoReflect.Descriptor instead. func (*DeviceCountReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{147} + return file_proto_dm_proto_rawDescGZIP(), []int{148} } func (x *DeviceCountReq) GetCountTypes() []string { @@ -10897,7 +10976,7 @@ type DeviceCountResp struct { func (x *DeviceCountResp) Reset() { *x = DeviceCountResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[148] + mi := &file_proto_dm_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10910,7 +10989,7 @@ func (x *DeviceCountResp) String() string { func (*DeviceCountResp) ProtoMessage() {} func (x *DeviceCountResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[148] + mi := &file_proto_dm_proto_msgTypes[149] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10923,7 +11002,7 @@ func (x *DeviceCountResp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceCountResp.ProtoReflect.Descriptor instead. func (*DeviceCountResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{148} + return file_proto_dm_proto_rawDescGZIP(), []int{149} } func (x *DeviceCountResp) GetList() []*DeviceCountInfo { @@ -10945,7 +11024,7 @@ type DeviceCountInfo struct { func (x *DeviceCountInfo) Reset() { *x = DeviceCountInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[149] + mi := &file_proto_dm_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10958,7 +11037,7 @@ func (x *DeviceCountInfo) String() string { func (*DeviceCountInfo) ProtoMessage() {} func (x *DeviceCountInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[149] + mi := &file_proto_dm_proto_msgTypes[150] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10971,7 +11050,7 @@ func (x *DeviceCountInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceCountInfo.ProtoReflect.Descriptor instead. func (*DeviceCountInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{149} + return file_proto_dm_proto_rawDescGZIP(), []int{150} } func (x *DeviceCountInfo) GetRangeID() int64 { @@ -11001,7 +11080,7 @@ type DeviceInfoCountReq struct { func (x *DeviceInfoCountReq) Reset() { *x = DeviceInfoCountReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[150] + mi := &file_proto_dm_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11014,7 +11093,7 @@ func (x *DeviceInfoCountReq) String() string { func (*DeviceInfoCountReq) ProtoMessage() {} func (x *DeviceInfoCountReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[150] + mi := &file_proto_dm_proto_msgTypes[151] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11027,7 +11106,7 @@ func (x *DeviceInfoCountReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceInfoCountReq.ProtoReflect.Descriptor instead. func (*DeviceInfoCountReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{150} + return file_proto_dm_proto_rawDescGZIP(), []int{151} } func (x *DeviceInfoCountReq) GetTimeRange() *TimeRange { @@ -11064,7 +11143,7 @@ type DeviceTypeCountReq struct { func (x *DeviceTypeCountReq) Reset() { *x = DeviceTypeCountReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[151] + mi := &file_proto_dm_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11077,7 +11156,7 @@ func (x *DeviceTypeCountReq) String() string { func (*DeviceTypeCountReq) ProtoMessage() {} func (x *DeviceTypeCountReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[151] + mi := &file_proto_dm_proto_msgTypes[152] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11090,7 +11169,7 @@ func (x *DeviceTypeCountReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceTypeCountReq.ProtoReflect.Descriptor instead. func (*DeviceTypeCountReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{151} + return file_proto_dm_proto_rawDescGZIP(), []int{152} } func (x *DeviceTypeCountReq) GetTimeRange() *TimeRange { @@ -11129,7 +11208,7 @@ type DeviceInfoCount struct { func (x *DeviceInfoCount) Reset() { *x = DeviceInfoCount{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[152] + mi := &file_proto_dm_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11142,7 +11221,7 @@ func (x *DeviceInfoCount) String() string { func (*DeviceInfoCount) ProtoMessage() {} func (x *DeviceInfoCount) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[152] + mi := &file_proto_dm_proto_msgTypes[153] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11155,7 +11234,7 @@ func (x *DeviceInfoCount) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceInfoCount.ProtoReflect.Descriptor instead. func (*DeviceInfoCount) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{152} + return file_proto_dm_proto_rawDescGZIP(), []int{153} } func (x *DeviceInfoCount) GetOnline() int64 { @@ -11207,7 +11286,7 @@ type DeviceTypeCountResp struct { func (x *DeviceTypeCountResp) Reset() { *x = DeviceTypeCountResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[153] + mi := &file_proto_dm_proto_msgTypes[154] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11220,7 +11299,7 @@ func (x *DeviceTypeCountResp) String() string { func (*DeviceTypeCountResp) ProtoMessage() {} func (x *DeviceTypeCountResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[153] + mi := &file_proto_dm_proto_msgTypes[154] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11233,7 +11312,7 @@ func (x *DeviceTypeCountResp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeviceTypeCountResp.ProtoReflect.Descriptor instead. func (*DeviceTypeCountResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{153} + return file_proto_dm_proto_rawDescGZIP(), []int{154} } func (x *DeviceTypeCountResp) GetDevice() int64 { @@ -11286,7 +11365,7 @@ type Firmware struct { func (x *Firmware) Reset() { *x = Firmware{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[154] + mi := &file_proto_dm_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11299,7 +11378,7 @@ func (x *Firmware) String() string { func (*Firmware) ProtoMessage() {} func (x *Firmware) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[154] + mi := &file_proto_dm_proto_msgTypes[155] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11312,7 +11391,7 @@ func (x *Firmware) ProtoReflect() protoreflect.Message { // Deprecated: Use Firmware.ProtoReflect.Descriptor instead. func (*Firmware) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{154} + return file_proto_dm_proto_rawDescGZIP(), []int{155} } func (x *Firmware) GetCreatedTime() int64 { @@ -11396,7 +11475,7 @@ type FirmwareResp struct { func (x *FirmwareResp) Reset() { *x = FirmwareResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[155] + mi := &file_proto_dm_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11409,7 +11488,7 @@ func (x *FirmwareResp) String() string { func (*FirmwareResp) ProtoMessage() {} func (x *FirmwareResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[155] + mi := &file_proto_dm_proto_msgTypes[156] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11422,7 +11501,7 @@ func (x *FirmwareResp) ProtoReflect() protoreflect.Message { // Deprecated: Use FirmwareResp.ProtoReflect.Descriptor instead. func (*FirmwareResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{155} + return file_proto_dm_proto_rawDescGZIP(), []int{156} } func (x *FirmwareResp) GetFirmwareID() int64 { @@ -11453,7 +11532,7 @@ type FirmwareInfo struct { func (x *FirmwareInfo) Reset() { *x = FirmwareInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[156] + mi := &file_proto_dm_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11466,7 +11545,7 @@ func (x *FirmwareInfo) String() string { func (*FirmwareInfo) ProtoMessage() {} func (x *FirmwareInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[156] + mi := &file_proto_dm_proto_msgTypes[157] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11479,7 +11558,7 @@ func (x *FirmwareInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use FirmwareInfo.ProtoReflect.Descriptor instead. func (*FirmwareInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{156} + return file_proto_dm_proto_rawDescGZIP(), []int{157} } func (x *FirmwareInfo) GetCreatedTime() int64 { @@ -11571,7 +11650,7 @@ type OtaFirmwareFile struct { func (x *OtaFirmwareFile) Reset() { *x = OtaFirmwareFile{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[157] + mi := &file_proto_dm_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11584,7 +11663,7 @@ func (x *OtaFirmwareFile) String() string { func (*OtaFirmwareFile) ProtoMessage() {} func (x *OtaFirmwareFile) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[157] + mi := &file_proto_dm_proto_msgTypes[158] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11597,7 +11676,7 @@ func (x *OtaFirmwareFile) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaFirmwareFile.ProtoReflect.Descriptor instead. func (*OtaFirmwareFile) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{157} + return file_proto_dm_proto_rawDescGZIP(), []int{158} } func (x *OtaFirmwareFile) GetFilePath() string { @@ -11625,7 +11704,7 @@ type FirmwareInfoDeleteReq struct { func (x *FirmwareInfoDeleteReq) Reset() { *x = FirmwareInfoDeleteReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[158] + mi := &file_proto_dm_proto_msgTypes[159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11638,7 +11717,7 @@ func (x *FirmwareInfoDeleteReq) String() string { func (*FirmwareInfoDeleteReq) ProtoMessage() {} func (x *FirmwareInfoDeleteReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[158] + mi := &file_proto_dm_proto_msgTypes[159] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11651,7 +11730,7 @@ func (x *FirmwareInfoDeleteReq) ProtoReflect() protoreflect.Message { // Deprecated: Use FirmwareInfoDeleteReq.ProtoReflect.Descriptor instead. func (*FirmwareInfoDeleteReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{158} + return file_proto_dm_proto_rawDescGZIP(), []int{159} } func (x *FirmwareInfoDeleteReq) GetFirmwareID() int64 { @@ -11672,7 +11751,7 @@ type FirmwareInfoDeleteResp struct { func (x *FirmwareInfoDeleteResp) Reset() { *x = FirmwareInfoDeleteResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[159] + mi := &file_proto_dm_proto_msgTypes[160] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11685,7 +11764,7 @@ func (x *FirmwareInfoDeleteResp) String() string { func (*FirmwareInfoDeleteResp) ProtoMessage() {} func (x *FirmwareInfoDeleteResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[159] + mi := &file_proto_dm_proto_msgTypes[160] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11698,7 +11777,7 @@ func (x *FirmwareInfoDeleteResp) ProtoReflect() protoreflect.Message { // Deprecated: Use FirmwareInfoDeleteResp.ProtoReflect.Descriptor instead. func (*FirmwareInfoDeleteResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{159} + return file_proto_dm_proto_rawDescGZIP(), []int{160} } func (x *FirmwareInfoDeleteResp) GetPaths() []string { @@ -11721,7 +11800,7 @@ type FirmwareInfoIndexReq struct { func (x *FirmwareInfoIndexReq) Reset() { *x = FirmwareInfoIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[160] + mi := &file_proto_dm_proto_msgTypes[161] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11734,7 +11813,7 @@ func (x *FirmwareInfoIndexReq) String() string { func (*FirmwareInfoIndexReq) ProtoMessage() {} func (x *FirmwareInfoIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[160] + mi := &file_proto_dm_proto_msgTypes[161] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11747,7 +11826,7 @@ func (x *FirmwareInfoIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use FirmwareInfoIndexReq.ProtoReflect.Descriptor instead. func (*FirmwareInfoIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{160} + return file_proto_dm_proto_rawDescGZIP(), []int{161} } func (x *FirmwareInfoIndexReq) GetPage() *PageInfo { @@ -11783,7 +11862,7 @@ type FirmwareInfoIndexResp struct { func (x *FirmwareInfoIndexResp) Reset() { *x = FirmwareInfoIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[161] + mi := &file_proto_dm_proto_msgTypes[162] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11796,7 +11875,7 @@ func (x *FirmwareInfoIndexResp) String() string { func (*FirmwareInfoIndexResp) ProtoMessage() {} func (x *FirmwareInfoIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[161] + mi := &file_proto_dm_proto_msgTypes[162] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11809,7 +11888,7 @@ func (x *FirmwareInfoIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use FirmwareInfoIndexResp.ProtoReflect.Descriptor instead. func (*FirmwareInfoIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{161} + return file_proto_dm_proto_rawDescGZIP(), []int{162} } func (x *FirmwareInfoIndexResp) GetList() []*FirmwareInfo { @@ -11837,7 +11916,7 @@ type FirmwareInfoReadReq struct { func (x *FirmwareInfoReadReq) Reset() { *x = FirmwareInfoReadReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[162] + mi := &file_proto_dm_proto_msgTypes[163] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11850,7 +11929,7 @@ func (x *FirmwareInfoReadReq) String() string { func (*FirmwareInfoReadReq) ProtoMessage() {} func (x *FirmwareInfoReadReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[162] + mi := &file_proto_dm_proto_msgTypes[163] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11863,7 +11942,7 @@ func (x *FirmwareInfoReadReq) ProtoReflect() protoreflect.Message { // Deprecated: Use FirmwareInfoReadReq.ProtoReflect.Descriptor instead. func (*FirmwareInfoReadReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{162} + return file_proto_dm_proto_rawDescGZIP(), []int{163} } func (x *FirmwareInfoReadReq) GetFirmwareID() int64 { @@ -11891,7 +11970,7 @@ type OtaFirmwareFileReq struct { func (x *OtaFirmwareFileReq) Reset() { *x = OtaFirmwareFileReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[163] + mi := &file_proto_dm_proto_msgTypes[164] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11904,7 +11983,7 @@ func (x *OtaFirmwareFileReq) String() string { func (*OtaFirmwareFileReq) ProtoMessage() {} func (x *OtaFirmwareFileReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[163] + mi := &file_proto_dm_proto_msgTypes[164] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11917,7 +11996,7 @@ func (x *OtaFirmwareFileReq) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaFirmwareFileReq.ProtoReflect.Descriptor instead. func (*OtaFirmwareFileReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{163} + return file_proto_dm_proto_rawDescGZIP(), []int{164} } func (x *OtaFirmwareFileReq) GetFileID() int64 { @@ -11995,7 +12074,7 @@ type OtaFirmwareFileInfo struct { func (x *OtaFirmwareFileInfo) Reset() { *x = OtaFirmwareFileInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[164] + mi := &file_proto_dm_proto_msgTypes[165] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12008,7 +12087,7 @@ func (x *OtaFirmwareFileInfo) String() string { func (*OtaFirmwareFileInfo) ProtoMessage() {} func (x *OtaFirmwareFileInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[164] + mi := &file_proto_dm_proto_msgTypes[165] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12021,7 +12100,7 @@ func (x *OtaFirmwareFileInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaFirmwareFileInfo.ProtoReflect.Descriptor instead. func (*OtaFirmwareFileInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{164} + return file_proto_dm_proto_rawDescGZIP(), []int{165} } func (x *OtaFirmwareFileInfo) GetFileID() int64 { @@ -12105,7 +12184,7 @@ type OtaFirmwareFileResp struct { func (x *OtaFirmwareFileResp) Reset() { *x = OtaFirmwareFileResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[165] + mi := &file_proto_dm_proto_msgTypes[166] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12118,7 +12197,7 @@ func (x *OtaFirmwareFileResp) String() string { func (*OtaFirmwareFileResp) ProtoMessage() {} func (x *OtaFirmwareFileResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[165] + mi := &file_proto_dm_proto_msgTypes[166] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12131,7 +12210,7 @@ func (x *OtaFirmwareFileResp) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaFirmwareFileResp.ProtoReflect.Descriptor instead. func (*OtaFirmwareFileResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{165} + return file_proto_dm_proto_rawDescGZIP(), []int{166} } func (x *OtaFirmwareFileResp) GetFileID() int64 { @@ -12196,7 +12275,7 @@ type OtaFirmwareFileIndexReq struct { func (x *OtaFirmwareFileIndexReq) Reset() { *x = OtaFirmwareFileIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[166] + mi := &file_proto_dm_proto_msgTypes[167] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12209,7 +12288,7 @@ func (x *OtaFirmwareFileIndexReq) String() string { func (*OtaFirmwareFileIndexReq) ProtoMessage() {} func (x *OtaFirmwareFileIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[166] + mi := &file_proto_dm_proto_msgTypes[167] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12222,7 +12301,7 @@ func (x *OtaFirmwareFileIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaFirmwareFileIndexReq.ProtoReflect.Descriptor instead. func (*OtaFirmwareFileIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{166} + return file_proto_dm_proto_rawDescGZIP(), []int{167} } func (x *OtaFirmwareFileIndexReq) GetPage() *PageInfo { @@ -12258,7 +12337,7 @@ type OtaFirmwareFileIndexResp struct { func (x *OtaFirmwareFileIndexResp) Reset() { *x = OtaFirmwareFileIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[167] + mi := &file_proto_dm_proto_msgTypes[168] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12271,7 +12350,7 @@ func (x *OtaFirmwareFileIndexResp) String() string { func (*OtaFirmwareFileIndexResp) ProtoMessage() {} func (x *OtaFirmwareFileIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[167] + mi := &file_proto_dm_proto_msgTypes[168] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12284,7 +12363,7 @@ func (x *OtaFirmwareFileIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaFirmwareFileIndexResp.ProtoReflect.Descriptor instead. func (*OtaFirmwareFileIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{167} + return file_proto_dm_proto_rawDescGZIP(), []int{168} } func (x *OtaFirmwareFileIndexResp) GetList() []*OtaFirmwareFileInfo { @@ -12322,7 +12401,7 @@ type FirmwareInfoReadResp struct { func (x *FirmwareInfoReadResp) Reset() { *x = FirmwareInfoReadResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[168] + mi := &file_proto_dm_proto_msgTypes[169] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12335,7 +12414,7 @@ func (x *FirmwareInfoReadResp) String() string { func (*FirmwareInfoReadResp) ProtoMessage() {} func (x *FirmwareInfoReadResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[168] + mi := &file_proto_dm_proto_msgTypes[169] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12348,7 +12427,7 @@ func (x *FirmwareInfoReadResp) ProtoReflect() protoreflect.Message { // Deprecated: Use FirmwareInfoReadResp.ProtoReflect.Descriptor instead. func (*FirmwareInfoReadResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{168} + return file_proto_dm_proto_rawDescGZIP(), []int{169} } func (x *FirmwareInfoReadResp) GetCreatedTime() int64 { @@ -12443,7 +12522,7 @@ type FirmwareFile struct { func (x *FirmwareFile) Reset() { *x = FirmwareFile{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[169] + mi := &file_proto_dm_proto_msgTypes[170] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12456,7 +12535,7 @@ func (x *FirmwareFile) String() string { func (*FirmwareFile) ProtoMessage() {} func (x *FirmwareFile) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[169] + mi := &file_proto_dm_proto_msgTypes[170] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12469,7 +12548,7 @@ func (x *FirmwareFile) ProtoReflect() protoreflect.Message { // Deprecated: Use FirmwareFile.ProtoReflect.Descriptor instead. func (*FirmwareFile) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{169} + return file_proto_dm_proto_rawDescGZIP(), []int{170} } func (x *FirmwareFile) GetName() string { @@ -12539,7 +12618,7 @@ type OtaFirmwareInfoCreateReq struct { func (x *OtaFirmwareInfoCreateReq) Reset() { *x = OtaFirmwareInfoCreateReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[170] + mi := &file_proto_dm_proto_msgTypes[171] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12552,7 +12631,7 @@ func (x *OtaFirmwareInfoCreateReq) String() string { func (*OtaFirmwareInfoCreateReq) ProtoMessage() {} func (x *OtaFirmwareInfoCreateReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[170] + mi := &file_proto_dm_proto_msgTypes[171] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12565,7 +12644,7 @@ func (x *OtaFirmwareInfoCreateReq) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaFirmwareInfoCreateReq.ProtoReflect.Descriptor instead. func (*OtaFirmwareInfoCreateReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{170} + return file_proto_dm_proto_rawDescGZIP(), []int{171} } func (x *OtaFirmwareInfoCreateReq) GetProductID() string { @@ -12659,7 +12738,7 @@ type OtaFirmwareInfoUpdateReq struct { func (x *OtaFirmwareInfoUpdateReq) Reset() { *x = OtaFirmwareInfoUpdateReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[171] + mi := &file_proto_dm_proto_msgTypes[172] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12672,7 +12751,7 @@ func (x *OtaFirmwareInfoUpdateReq) String() string { func (*OtaFirmwareInfoUpdateReq) ProtoMessage() {} func (x *OtaFirmwareInfoUpdateReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[171] + mi := &file_proto_dm_proto_msgTypes[172] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12685,7 +12764,7 @@ func (x *OtaFirmwareInfoUpdateReq) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaFirmwareInfoUpdateReq.ProtoReflect.Descriptor instead. func (*OtaFirmwareInfoUpdateReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{171} + return file_proto_dm_proto_rawDescGZIP(), []int{172} } func (x *OtaFirmwareInfoUpdateReq) GetId() int64 { @@ -12729,7 +12808,7 @@ type OtaFirmwareInfoIndexReq struct { func (x *OtaFirmwareInfoIndexReq) Reset() { *x = OtaFirmwareInfoIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[172] + mi := &file_proto_dm_proto_msgTypes[173] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12742,7 +12821,7 @@ func (x *OtaFirmwareInfoIndexReq) String() string { func (*OtaFirmwareInfoIndexReq) ProtoMessage() {} func (x *OtaFirmwareInfoIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[172] + mi := &file_proto_dm_proto_msgTypes[173] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12755,7 +12834,7 @@ func (x *OtaFirmwareInfoIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaFirmwareInfoIndexReq.ProtoReflect.Descriptor instead. func (*OtaFirmwareInfoIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{172} + return file_proto_dm_proto_rawDescGZIP(), []int{173} } func (x *OtaFirmwareInfoIndexReq) GetPage() *PageInfo { @@ -12791,7 +12870,7 @@ type OtaFirmwareInfoIndexResp struct { func (x *OtaFirmwareInfoIndexResp) Reset() { *x = OtaFirmwareInfoIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[173] + mi := &file_proto_dm_proto_msgTypes[174] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12804,7 +12883,7 @@ func (x *OtaFirmwareInfoIndexResp) String() string { func (*OtaFirmwareInfoIndexResp) ProtoMessage() {} func (x *OtaFirmwareInfoIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[173] + mi := &file_proto_dm_proto_msgTypes[174] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12817,7 +12896,7 @@ func (x *OtaFirmwareInfoIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaFirmwareInfoIndexResp.ProtoReflect.Descriptor instead. func (*OtaFirmwareInfoIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{173} + return file_proto_dm_proto_rawDescGZIP(), []int{174} } func (x *OtaFirmwareInfoIndexResp) GetList() []*OtaFirmwareInfo { @@ -12858,7 +12937,7 @@ type OtaFirmwareInfo struct { func (x *OtaFirmwareInfo) Reset() { *x = OtaFirmwareInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[174] + mi := &file_proto_dm_proto_msgTypes[175] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12871,7 +12950,7 @@ func (x *OtaFirmwareInfo) String() string { func (*OtaFirmwareInfo) ProtoMessage() {} func (x *OtaFirmwareInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[174] + mi := &file_proto_dm_proto_msgTypes[175] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12884,7 +12963,7 @@ func (x *OtaFirmwareInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaFirmwareInfo.ProtoReflect.Descriptor instead. func (*OtaFirmwareInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{174} + return file_proto_dm_proto_rawDescGZIP(), []int{175} } func (x *OtaFirmwareInfo) GetId() int64 { @@ -13038,7 +13117,7 @@ type OtaFirmwareJobInfo struct { func (x *OtaFirmwareJobInfo) Reset() { *x = OtaFirmwareJobInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[175] + mi := &file_proto_dm_proto_msgTypes[176] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13051,7 +13130,7 @@ func (x *OtaFirmwareJobInfo) String() string { func (*OtaFirmwareJobInfo) ProtoMessage() {} func (x *OtaFirmwareJobInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[175] + mi := &file_proto_dm_proto_msgTypes[176] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13064,7 +13143,7 @@ func (x *OtaFirmwareJobInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaFirmwareJobInfo.ProtoReflect.Descriptor instead. func (*OtaFirmwareJobInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{175} + return file_proto_dm_proto_rawDescGZIP(), []int{176} } func (x *OtaFirmwareJobInfo) GetId() int64 { @@ -13216,7 +13295,7 @@ type OtaJobDynamicInfo struct { func (x *OtaJobDynamicInfo) Reset() { *x = OtaJobDynamicInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[176] + mi := &file_proto_dm_proto_msgTypes[177] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13229,7 +13308,7 @@ func (x *OtaJobDynamicInfo) String() string { func (*OtaJobDynamicInfo) ProtoMessage() {} func (x *OtaJobDynamicInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[176] + mi := &file_proto_dm_proto_msgTypes[177] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13242,7 +13321,7 @@ func (x *OtaJobDynamicInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaJobDynamicInfo.ProtoReflect.Descriptor instead. func (*OtaJobDynamicInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{176} + return file_proto_dm_proto_rawDescGZIP(), []int{177} } func (x *OtaJobDynamicInfo) GetDynamicMode() int64 { @@ -13284,7 +13363,7 @@ type OtaJobStaticInfo struct { func (x *OtaJobStaticInfo) Reset() { *x = OtaJobStaticInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[177] + mi := &file_proto_dm_proto_msgTypes[178] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13297,7 +13376,7 @@ func (x *OtaJobStaticInfo) String() string { func (*OtaJobStaticInfo) ProtoMessage() {} func (x *OtaJobStaticInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[177] + mi := &file_proto_dm_proto_msgTypes[178] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13310,7 +13389,7 @@ func (x *OtaJobStaticInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaJobStaticInfo.ProtoReflect.Descriptor instead. func (*OtaJobStaticInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{177} + return file_proto_dm_proto_rawDescGZIP(), []int{178} } func (x *OtaJobStaticInfo) GetTargetDeviceNames() []string { @@ -13355,7 +13434,7 @@ type OtaFirmwareJobIndexReq struct { func (x *OtaFirmwareJobIndexReq) Reset() { *x = OtaFirmwareJobIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[178] + mi := &file_proto_dm_proto_msgTypes[179] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13368,7 +13447,7 @@ func (x *OtaFirmwareJobIndexReq) String() string { func (*OtaFirmwareJobIndexReq) ProtoMessage() {} func (x *OtaFirmwareJobIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[178] + mi := &file_proto_dm_proto_msgTypes[179] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13381,7 +13460,7 @@ func (x *OtaFirmwareJobIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaFirmwareJobIndexReq.ProtoReflect.Descriptor instead. func (*OtaFirmwareJobIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{178} + return file_proto_dm_proto_rawDescGZIP(), []int{179} } func (x *OtaFirmwareJobIndexReq) GetPage() *PageInfo { @@ -13424,7 +13503,7 @@ type OtaFirmwareJobIndexResp struct { func (x *OtaFirmwareJobIndexResp) Reset() { *x = OtaFirmwareJobIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[179] + mi := &file_proto_dm_proto_msgTypes[180] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13437,7 +13516,7 @@ func (x *OtaFirmwareJobIndexResp) String() string { func (*OtaFirmwareJobIndexResp) ProtoMessage() {} func (x *OtaFirmwareJobIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[179] + mi := &file_proto_dm_proto_msgTypes[180] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13450,7 +13529,7 @@ func (x *OtaFirmwareJobIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaFirmwareJobIndexResp.ProtoReflect.Descriptor instead. func (*OtaFirmwareJobIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{179} + return file_proto_dm_proto_rawDescGZIP(), []int{180} } func (x *OtaFirmwareJobIndexResp) GetList() []*OtaFirmwareJobInfo { @@ -13481,7 +13560,7 @@ type OtaJobByDeviceIndexReq struct { func (x *OtaJobByDeviceIndexReq) Reset() { *x = OtaJobByDeviceIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[180] + mi := &file_proto_dm_proto_msgTypes[181] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13494,7 +13573,7 @@ func (x *OtaJobByDeviceIndexReq) String() string { func (*OtaJobByDeviceIndexReq) ProtoMessage() {} func (x *OtaJobByDeviceIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[180] + mi := &file_proto_dm_proto_msgTypes[181] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13507,7 +13586,7 @@ func (x *OtaJobByDeviceIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaJobByDeviceIndexReq.ProtoReflect.Descriptor instead. func (*OtaJobByDeviceIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{180} + return file_proto_dm_proto_rawDescGZIP(), []int{181} } func (x *OtaJobByDeviceIndexReq) GetPageInfo() *PageInfo { @@ -13552,7 +13631,7 @@ type OtaFirmwareDeviceIndexReq struct { func (x *OtaFirmwareDeviceIndexReq) Reset() { *x = OtaFirmwareDeviceIndexReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[181] + mi := &file_proto_dm_proto_msgTypes[182] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13565,7 +13644,7 @@ func (x *OtaFirmwareDeviceIndexReq) String() string { func (*OtaFirmwareDeviceIndexReq) ProtoMessage() {} func (x *OtaFirmwareDeviceIndexReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[181] + mi := &file_proto_dm_proto_msgTypes[182] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13578,7 +13657,7 @@ func (x *OtaFirmwareDeviceIndexReq) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaFirmwareDeviceIndexReq.ProtoReflect.Descriptor instead. func (*OtaFirmwareDeviceIndexReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{181} + return file_proto_dm_proto_rawDescGZIP(), []int{182} } func (x *OtaFirmwareDeviceIndexReq) GetPage() *PageInfo { @@ -13632,7 +13711,7 @@ type OtaFirmwareDeviceInfo struct { func (x *OtaFirmwareDeviceInfo) Reset() { *x = OtaFirmwareDeviceInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[182] + mi := &file_proto_dm_proto_msgTypes[183] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13645,7 +13724,7 @@ func (x *OtaFirmwareDeviceInfo) String() string { func (*OtaFirmwareDeviceInfo) ProtoMessage() {} func (x *OtaFirmwareDeviceInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[182] + mi := &file_proto_dm_proto_msgTypes[183] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13658,7 +13737,7 @@ func (x *OtaFirmwareDeviceInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaFirmwareDeviceInfo.ProtoReflect.Descriptor instead. func (*OtaFirmwareDeviceInfo) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{182} + return file_proto_dm_proto_rawDescGZIP(), []int{183} } func (x *OtaFirmwareDeviceInfo) GetId() int64 { @@ -13764,7 +13843,7 @@ type OtaFirmwareDeviceIndexResp struct { func (x *OtaFirmwareDeviceIndexResp) Reset() { *x = OtaFirmwareDeviceIndexResp{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[183] + mi := &file_proto_dm_proto_msgTypes[184] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13777,7 +13856,7 @@ func (x *OtaFirmwareDeviceIndexResp) String() string { func (*OtaFirmwareDeviceIndexResp) ProtoMessage() {} func (x *OtaFirmwareDeviceIndexResp) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[183] + mi := &file_proto_dm_proto_msgTypes[184] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13790,7 +13869,7 @@ func (x *OtaFirmwareDeviceIndexResp) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaFirmwareDeviceIndexResp.ProtoReflect.Descriptor instead. func (*OtaFirmwareDeviceIndexResp) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{183} + return file_proto_dm_proto_rawDescGZIP(), []int{184} } func (x *OtaFirmwareDeviceIndexResp) GetList() []*OtaFirmwareDeviceInfo { @@ -13820,7 +13899,7 @@ type OtaFirmwareDeviceCancelReq struct { func (x *OtaFirmwareDeviceCancelReq) Reset() { *x = OtaFirmwareDeviceCancelReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[184] + mi := &file_proto_dm_proto_msgTypes[185] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13833,7 +13912,7 @@ func (x *OtaFirmwareDeviceCancelReq) String() string { func (*OtaFirmwareDeviceCancelReq) ProtoMessage() {} func (x *OtaFirmwareDeviceCancelReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[184] + mi := &file_proto_dm_proto_msgTypes[185] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13846,7 +13925,7 @@ func (x *OtaFirmwareDeviceCancelReq) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaFirmwareDeviceCancelReq.ProtoReflect.Descriptor instead. func (*OtaFirmwareDeviceCancelReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{184} + return file_proto_dm_proto_rawDescGZIP(), []int{185} } func (x *OtaFirmwareDeviceCancelReq) GetFirmwareID() int64 { @@ -13883,7 +13962,7 @@ type OtaFirmwareDeviceRetryReq struct { func (x *OtaFirmwareDeviceRetryReq) Reset() { *x = OtaFirmwareDeviceRetryReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[185] + mi := &file_proto_dm_proto_msgTypes[186] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13896,7 +13975,7 @@ func (x *OtaFirmwareDeviceRetryReq) String() string { func (*OtaFirmwareDeviceRetryReq) ProtoMessage() {} func (x *OtaFirmwareDeviceRetryReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[185] + mi := &file_proto_dm_proto_msgTypes[186] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13909,7 +13988,7 @@ func (x *OtaFirmwareDeviceRetryReq) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaFirmwareDeviceRetryReq.ProtoReflect.Descriptor instead. func (*OtaFirmwareDeviceRetryReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{185} + return file_proto_dm_proto_rawDescGZIP(), []int{186} } func (x *OtaFirmwareDeviceRetryReq) GetFirmwareID() int64 { @@ -13945,7 +14024,7 @@ type OtaFirmwareDeviceConfirmReq struct { func (x *OtaFirmwareDeviceConfirmReq) Reset() { *x = OtaFirmwareDeviceConfirmReq{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[186] + mi := &file_proto_dm_proto_msgTypes[187] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13958,7 +14037,7 @@ func (x *OtaFirmwareDeviceConfirmReq) String() string { func (*OtaFirmwareDeviceConfirmReq) ProtoMessage() {} func (x *OtaFirmwareDeviceConfirmReq) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[186] + mi := &file_proto_dm_proto_msgTypes[187] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13971,7 +14050,7 @@ func (x *OtaFirmwareDeviceConfirmReq) ProtoReflect() protoreflect.Message { // Deprecated: Use OtaFirmwareDeviceConfirmReq.ProtoReflect.Descriptor instead. func (*OtaFirmwareDeviceConfirmReq) Descriptor() ([]byte, []int) { - return file_proto_dm_proto_rawDescGZIP(), []int{186} + return file_proto_dm_proto_rawDescGZIP(), []int{187} } func (x *OtaFirmwareDeviceConfirmReq) GetProductID() string { @@ -14002,7 +14081,7 @@ type PageInfo_OrderBy struct { func (x *PageInfo_OrderBy) Reset() { *x = PageInfo_OrderBy{} if protoimpl.UnsafeEnabled { - mi := &file_proto_dm_proto_msgTypes[187] + mi := &file_proto_dm_proto_msgTypes[188] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14015,7 +14094,7 @@ func (x *PageInfo_OrderBy) String() string { func (*PageInfo_OrderBy) ProtoMessage() {} func (x *PageInfo_OrderBy) ProtoReflect() protoreflect.Message { - mi := &file_proto_dm_proto_msgTypes[187] + mi := &file_proto_dm_proto_msgTypes[188] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14249,2297 +14328,2311 @@ var file_proto_dm_proto_rawDesc = []byte{ 0x50, 0x65, 0x72, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1f, 0x0a, 0x09, 0x53, 0x68, 0x61, 0x72, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x65, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x65, 0x72, 0x6d, - 0x22, 0x8a, 0x04, 0x0a, 0x18, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, - 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, - 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, - 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x07, - 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x50, 0x65, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x64, 0x6d, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x50, 0x65, 0x72, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x50, 0x65, 0x72, 0x6d, 0x12, 0x4c, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x50, - 0x65, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x64, 0x6d, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x50, 0x65, - 0x72, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x50, - 0x65, 0x72, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, - 0x07, 0x65, 0x78, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, - 0x65, 0x78, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x1a, 0x4c, 0x0a, 0x0f, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x50, 0x65, 0x72, 0x6d, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x64, 0x6d, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, - 0x50, 0x65, 0x72, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x4c, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x64, 0x6d, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x50, 0x65, - 0x72, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3b, 0x0a, - 0x19, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xbb, 0x01, 0x0a, 0x1d, 0x55, - 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x68, 0x61, 0x72, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x22, 0x0a, 0x0c, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, - 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, - 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0x41, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x61, 0x76, - 0x65, 0x12, 0x28, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, - 0x72, 0x65, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0xca, 0x02, 0x0a, 0x0f, - 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, + 0x22, 0xd1, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x6d, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x49, 0x6d, 0x67, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x6c, + 0x69, 0x61, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, + 0x6c, 0x69, 0x61, 0x73, 0x22, 0x8f, 0x04, 0x0a, 0x18, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x2d, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, + 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x12, 0x4c, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x50, 0x65, 0x72, 0x6d, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, + 0x66, 0x6f, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x50, 0x65, 0x72, 0x6d, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x50, 0x65, 0x72, 0x6d, 0x12, 0x4c, + 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x66, 0x6f, + 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x12, 0x1a, 0x0a, 0x08, + 0x61, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, + 0x61, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x78, 0x70, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x1a, 0x4c, 0x0a, 0x0f, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x50, 0x65, 0x72, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x64, 0x6d, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4c, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x64, + 0x6d, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3b, 0x0a, 0x19, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x61, 0x72, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x68, 0x61, 0x72, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x22, 0xbb, 0x01, 0x0a, 0x1d, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x41, 0x63, 0x63, 0x65, + 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x61, 0x72, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x22, 0x41, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x61, 0x76, 0x65, 0x12, 0x28, 0x0a, 0x07, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x07, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x73, 0x22, 0xca, 0x02, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, + 0x49, 0x6d, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x49, + 0x6d, 0x67, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x65, + 0x61, 0x64, 0x49, 0x6d, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x65, 0x61, 0x64, 0x49, 0x6d, 0x67, 0x12, 0x30, 0x0a, 0x04, + 0x64, 0x65, 0x73, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x16, + 0x0a, 0x06, 0x69, 0x64, 0x50, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, + 0x69, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x4c, 0x65, 0x61, 0x66, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x69, 0x73, 0x4c, 0x65, 0x61, 0x66, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x2f, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, + 0x6e, 0x22, 0x42, 0x0a, 0x1e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x73, 0x22, 0x6d, 0x0a, 0x1d, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x79, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x46, 0x61, 0x74, 0x68, + 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x46, 0x61, + 0x74, 0x68, 0x65, 0x72, 0x22, 0x73, 0x0a, 0x21, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x22, 0x9b, 0x01, 0x0a, 0x17, 0x50, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x69, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x22, 0x59, 0x0a, 0x18, 0x50, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x22, 0xa2, 0x01, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, + 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6e, + 0x6f, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6e, + 0x6f, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x53, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x24, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xaf, 0x02, 0x0a, + 0x0c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 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, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x64, + 0x65, 0x73, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, + 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x65, 0x74, 0x63, 0x64, 0x4b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x65, 0x74, 0x63, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x3b, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, + 0x66, 0x6f, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x64, 0x6d, 0x2e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x97, + 0x01, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x69, 0x72, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x22, 0xaf, 0x01, 0x0a, 0x12, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x49, 0x6d, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x49, 0x6d, 0x67, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x73, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x65, 0x61, 0x64, 0x49, 0x6d, 0x67, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x65, 0x61, 0x64, - 0x49, 0x6d, 0x67, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x64, 0x50, 0x61, 0x74, 0x68, 0x18, - 0x09, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x69, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, - 0x06, 0x69, 0x73, 0x4c, 0x65, 0x61, 0x66, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x69, - 0x73, 0x4c, 0x65, 0x61, 0x66, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x72, 0x65, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x50, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x08, - 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x22, 0x42, 0x0a, 0x1e, 0x50, 0x72, 0x6f, 0x64, - 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x22, 0x6d, 0x0a, 0x1d, - 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x2c, 0x0a, - 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x77, - 0x69, 0x74, 0x68, 0x46, 0x61, 0x74, 0x68, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0a, 0x77, 0x69, 0x74, 0x68, 0x46, 0x61, 0x74, 0x68, 0x65, 0x72, 0x22, 0x73, 0x0a, 0x21, 0x50, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x71, - 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, - 0x6f, 0x72, 0x79, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x70, 0x72, 0x6f, - 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x12, 0x20, - 0x0a, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, - 0x22, 0x9b, 0x01, 0x0a, 0x17, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, - 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, - 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, - 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x10, - 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x69, 0x64, 0x73, - 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x22, 0x59, - 0x0a, 0x18, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, - 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x04, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x04, 0x6c, - 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xa2, 0x01, 0x0a, 0x14, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, - 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, - 0x70, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x6f, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x53, - 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x22, 0xaf, 0x02, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 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, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x74, 0x63, 0x64, 0x4b, 0x65, 0x79, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x74, 0x63, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x3b, - 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0c, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x97, 0x01, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x69, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0a, 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, - 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x22, - 0xaf, 0x01, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x1a, 0x39, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x36, 0x0a, 0x0f, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x64, 0x6d, 0x2e, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x69, 0x0a, 0x0b, 0x53, 0x68, 0x61, - 0x64, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x61, 0x74, 0x61, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, + 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x64, + 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x1a, + 0x39, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x22, 0x72, 0x0a, 0x18, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x36, 0x0a, 0x0f, 0x53, 0x68, + 0x61, 0x64, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, + 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x64, 0x6d, + 0x2e, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x04, 0x6c, 0x69, + 0x73, 0x74, 0x22, 0x69, 0x0a, 0x0b, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x2c, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x72, 0x0a, + 0x18, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x61, 0x74, 0x61, 0x49, + 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, + 0x73, 0x22, 0x93, 0x01, 0x0a, 0x19, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, + 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xa7, 0x02, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, + 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x44, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, + 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x72, 0x67, 0x46, 0x75, 0x6e, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x72, 0x67, 0x46, 0x75, 0x6e, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x6c, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x22, 0x73, 0x0a, 0x19, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4c, 0x6f, 0x67, + 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x1c, + 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x64, + 0x61, 0x74, 0x61, 0x49, 0x44, 0x73, 0x22, 0x5d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x61, 0x74, 0x61, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x55, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x12, 0x27, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4c, + 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0xda, 0x01, 0x0a, + 0x10, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, + 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, + 0x65, 0x45, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, + 0x45, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0x70, 0x0a, 0x0c, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, + 0x61, 0x74, 0x61, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x61, 0x74, + 0x61, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x4f, 0x0a, 0x11, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x24, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, + 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x92, 0x02, 0x0a, + 0x0e, 0x48, 0x75, 0x62, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, + 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, + 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, + 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x44, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, + 0x44, 0x22, 0x4b, 0x0a, 0x0f, 0x48, 0x75, 0x62, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x69, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x48, 0x75, + 0x62, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0xec, + 0x01, 0x0a, 0x0a, 0x48, 0x75, 0x62, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, + 0x44, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, + 0x63, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, + 0x65, 0x73, 0x70, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x72, 0x65, 0x73, 0x70, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xc3, 0x01, + 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x51, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x6f, 0x67, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, + 0x25, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x64, 0x6d, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xfb, 0x01, 0x0a, + 0x0f, 0x53, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x07, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, 0x73, 0x22, 0x93, 0x01, 0x0a, 0x19, 0x50, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, - 0x6d, 0x73, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6d, 0x73, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xa7, - 0x02, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, + 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x61, 0x74, 0x61, - 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, - 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x72, 0x67, 0x46, 0x75, 0x6e, 0x63, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x72, 0x67, 0x46, 0x75, 0x6e, 0x63, 0x12, 0x12, - 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, - 0x6c, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x73, 0x0a, 0x19, 0x50, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, 0x73, 0x22, 0x5d, 0x0a, - 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, - 0x0a, 0x06, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x55, 0x0a, 0x14, - 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x27, 0x0a, 0x04, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, - 0x69, 0x73, 0x74, 0x22, 0xda, 0x01, 0x0a, 0x10, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x61, - 0x74, 0x61, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x61, 0x74, 0x61, - 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x22, 0x70, 0x0a, 0x0c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x22, 0x4f, 0x0a, 0x11, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x24, 0x0a, - 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6d, - 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, - 0x69, 0x73, 0x74, 0x22, 0x92, 0x02, 0x0a, 0x0e, 0x48, 0x75, 0x62, 0x4c, 0x6f, 0x67, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x04, - 0x70, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, - 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, - 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x44, 0x22, 0x4b, 0x0a, 0x0f, 0x48, 0x75, 0x62, 0x4c, - 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x48, 0x75, 0x62, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0xec, 0x01, 0x0a, 0x0a, 0x48, 0x75, 0x62, 0x4c, 0x6f, 0x67, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, - 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x70, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x70, 0x50, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xc3, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, - 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, - 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x4d, 0x0a, 0x10, 0x53, 0x65, + 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x23, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x64, 0x6d, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x9f, 0x02, 0x0a, 0x0b, 0x53, 0x65, + 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x16, 0x0a, 0x06, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, + 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, + 0x44, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xc4, 0x01, 0x0a, 0x0e, + 0x53, 0x64, 0x6b, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x1c, + 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, + 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, + 0x65, 0x45, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, - 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x51, 0x0a, 0x12, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x25, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x64, 0x6d, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x83, 0x01, - 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0xfb, 0x01, 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, - 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x20, 0x0a, - 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, - 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x22, 0x4d, 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, + 0x67, 0x65, 0x22, 0x4b, 0x0a, 0x0f, 0x53, 0x64, 0x6b, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x23, 0x0a, 0x04, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x64, 0x6d, 0x2e, 0x53, - 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, - 0x22, 0x9f, 0x02, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, - 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, - 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x61, 0x74, 0x61, 0x49, 0x44, 0x12, 0x18, - 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x22, 0xc4, 0x01, 0x0a, 0x0e, 0x53, 0x64, 0x6b, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, - 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, - 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0x4b, 0x0a, 0x0f, 0x53, 0x64, 0x6b, - 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x53, 0x64, 0x6b, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x60, 0x0a, 0x0a, 0x53, 0x64, 0x6b, 0x4c, 0x6f, 0x67, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, - 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0xcd, 0x01, 0x0a, 0x0d, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x41, 0x73, 0x79, 0x6e, - 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x73, 0x79, 0x6e, 0x63, - 0x12, 0x26, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x76, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x73, - 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x73, - 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x22, 0x67, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x70, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, - 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, - 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x6d, 0x73, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6d, 0x73, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xff, 0x01, 0x0a, 0x16, 0x50, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x65, 0x6e, - 0x64, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, - 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, - 0x68, 0x61, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, - 0x69, 0x73, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, - 0x73, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x31, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x64, 0x6d, - 0x2e, 0x57, 0x69, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x0b, 0x77, 0x69, - 0x74, 0x68, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x79, 0x6e, - 0x63, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, - 0x73, 0x79, 0x6e, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x39, 0x0a, 0x0b, 0x57, - 0x69, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xb3, 0x01, 0x0a, 0x0d, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x22, 0x0a, 0x04, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x53, + 0x64, 0x6b, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, + 0x60, 0x0a, 0x0a, 0x53, 0x64, 0x6b, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x6c, + 0x6f, 0x67, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, + 0x6f, 0x67, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x22, 0xcd, 0x01, 0x0a, 0x0d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x64, + 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x18, 0x0a, 0x07, 0x69, 0x73, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x69, 0x73, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x26, 0x0a, 0x06, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x53, + 0x65, 0x6e, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x76, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x22, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x67, 0x0a, 0x0b, 0x52, 0x65, 0x73, + 0x70, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x5b, 0x0a, 0x17, - 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, - 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1a, 0x0a, - 0x08, 0x6d, 0x73, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6d, 0x73, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x52, 0x0a, 0x12, 0x47, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, - 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, - 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x74, 0x0a, - 0x18, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x42, 0x69, - 0x6e, 0x64, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x07, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x12, 0x2e, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x22, 0x3c, 0x0a, 0x0a, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, - 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x22, 0x0d, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, - 0x22, 0xaf, 0x02, 0x0a, 0x1b, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, - 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x20, - 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x12, 0x28, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, - 0x65, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x68, - 0x61, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x16, - 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, - 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x79, 0x6e, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x79, 0x6e, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x6f, - 0x75, 0x74, 0x22, 0xca, 0x01, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, + 0x65, 0x6e, 0x22, 0xff, 0x01, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x79, 0x73, 0x4d, 0x73, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x79, 0x73, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x79, 0x73, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x79, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x22, - 0x4e, 0x0a, 0x1c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x2e, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, - 0x7f, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x20, - 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x22, 0x4f, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, + 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x24, 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x41, 0x73, 0x79, 0x6e, 0x63, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x12, + 0x31, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x79, 0x6e, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x79, 0x6e, 0x63, 0x54, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x22, 0x39, 0x0a, 0x0b, 0x57, 0x69, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, + 0xb3, 0x01, 0x0a, 0x0d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x65, + 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x5b, 0x0a, 0x17, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x22, 0x52, 0x0a, 0x12, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x47, 0x65, 0x74, + 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x74, 0x0a, 0x18, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x71, 0x12, 0x28, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, + 0x6f, 0x72, 0x65, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x2e, 0x0a, 0x0a, + 0x73, 0x75, 0x62, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, + 0x52, 0x0a, 0x73, 0x75, 0x62, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0x3c, 0x0a, 0x0a, + 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x0d, 0x0a, 0x0b, 0x53, 0x65, + 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x22, 0xaf, 0x02, 0x0a, 0x1b, 0x50, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x22, 0x56, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x22, 0x5a, 0x0a, 0x15, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x36, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x12, - 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x22, 0x37, 0x0a, - 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x61, 0x73, - 0x74, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x07, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x64, + 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, + 0x07, 0x69, 0x73, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x69, 0x73, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, + 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x12, + 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x79, 0x6e, + 0x63, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, + 0x73, 0x79, 0x6e, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0xca, 0x01, 0x0a, 0x16, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, + 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x73, + 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x73, + 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x73, 0x4d, 0x73, 0x67, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x73, 0x4d, 0x73, 0x67, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x79, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x07, 0x73, 0x79, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x4e, 0x0a, 0x1c, 0x50, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x4d, + 0x73, 0x67, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x7f, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x4f, 0x0a, 0x15, 0x52, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x56, 0x0a, 0x14, 0x52, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, + 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x49, 0x44, 0x22, 0x5a, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x50, + 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x36, + 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x75, + 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, - 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x22, 0x47, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x22, 0x37, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, - 0x34, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, - 0x75, 0x63, 0x74, 0x49, 0x44, 0x22, 0x92, 0x02, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, - 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x4c, - 0x61, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x46, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, - 0x72, 0x6d, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x46, 0x0a, - 0x0f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x53, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x33, 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x64, 0x6d, - 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x0c, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x22, 0x41, 0x0a, 0x0b, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, - 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x82, 0x01, - 0x0a, 0x17, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x42, - 0x69, 0x6e, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, - 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x04, 0x73, 0x69, - 0x67, 0x6e, 0x22, 0x87, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, - 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0xba, 0x01, 0x0a, - 0x1b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x07, - 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x07, 0x67, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x4e, 0x6f, 0x74, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x4e, - 0x6f, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x41, 0x75, - 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, - 0x41, 0x75, 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x2f, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x15, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x22, + 0x47, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, + 0x61, 0x73, 0x74, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x50, + 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x34, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, + 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x22, 0x92, + 0x02, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x4c, 0x61, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0a, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x4c, 0x61, 0x6e, 0x67, 0x12, 0x46, + 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x53, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, + 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x46, 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x41, + 0x75, 0x74, 0x68, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x6c, + 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x33, + 0x0a, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x64, 0x6d, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x73, 0x22, 0x41, 0x0a, 0x0b, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x82, 0x01, 0x0a, 0x17, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x29, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x22, 0x87, 0x01, 0x0a, 0x11, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x69, 0x67, + 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0xba, 0x01, 0x0a, 0x1b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, - 0x2c, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, - 0x72, 0x65, 0x52, 0x09, 0x73, 0x75, 0x62, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x52, 0x0a, - 0x16, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x22, 0x8b, 0x01, 0x0a, 0x19, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, - 0x28, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, - 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x4e, - 0x6f, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x69, 0x73, 0x4e, 0x6f, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x22, 0x0a, 0x04, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, - 0x42, 0x0a, 0x16, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x61, 0x6e, 0x42, 0x69, 0x6e, - 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x07, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x22, 0x6b, 0x0a, 0x17, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x61, - 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, - 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x4e, 0x6f, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x4e, 0x6f, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x53, 0x69, 0x67, + 0x6e, 0x12, 0x2f, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x04, 0x6c, 0x69, + 0x73, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, + 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x28, + 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, + 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x2c, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x09, 0x73, 0x75, 0x62, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x52, 0x0a, 0x16, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x04, + 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x8b, 0x01, 0x0a, 0x19, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x4e, 0x6f, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x4e, 0x6f, 0x74, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x79, 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, - 0x72, 0x65, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x20, - 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x22, 0xec, 0x03, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, - 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x74, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, - 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, - 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x4c, 0x65, 0x61, 0x66, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x06, 0x69, 0x73, 0x4c, 0x65, 0x61, 0x66, 0x12, 0x29, 0x0a, 0x08, 0x63, - 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x68, - 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0x8e, 0x01, 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x1c, - 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, - 0x64, 0x65, 0x73, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, - 0x22, 0xeb, 0x01, 0x0a, 0x11, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x12, 0x20, - 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, - 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, - 0x12, 0x33, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x52, 0x65, 0x71, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4d, - 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x21, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xd9, 0x01, - 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 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, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x34, 0x0a, 0x04, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6d, 0x2e, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, - 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, - 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x57, 0x0a, 0x17, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x61, 0x76, - 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x22, - 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, - 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x04, 0x6c, 0x69, - 0x73, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, - 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, - 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x14, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x04, - 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x59, 0x0a, 0x19, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x22, 0x0a, - 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, - 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, - 0x74, 0x22, 0x41, 0x0a, 0x05, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, - 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, - 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, - 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, - 0x74, 0x75, 0x64, 0x65, 0x22, 0xcc, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x22, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, - 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, - 0x16, 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x65, 0x61, 0x49, - 0x44, 0x50, 0x61, 0x74, 0x68, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x65, - 0x61, 0x49, 0x44, 0x50, 0x61, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x63, 0x65, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6d, 0x65, 0x69, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6d, 0x65, 0x69, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x61, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x36, 0x0a, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, - 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6f, 0x66, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6f, 0x66, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, - 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x06, - 0x61, 0x64, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x61, 0x64, 0x63, 0x6f, - 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x72, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x42, 0x0a, 0x16, 0x47, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x43, 0x61, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, + 0x65, 0x71, 0x12, 0x28, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, + 0x6f, 0x72, 0x65, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x22, 0x6b, 0x0a, 0x17, + 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x61, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x0a, 0x73, 0x75, 0x62, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xec, 0x03, 0x0a, 0x09, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, + 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x12, + 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, + 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x66, 0x69, 0x72, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, - 0x66, 0x69, 0x72, 0x73, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x18, 0x25, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x61, - 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6c, - 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x6c, - 0x69, 0x61, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, - 0x6c, 0x69, 0x61, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x6f, - 0x62, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x32, 0x0a, 0x05, - 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, - 0x12, 0x32, 0x0a, 0x05, 0x69, 0x63, 0x63, 0x69, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x69, - 0x63, 0x63, 0x69, 0x64, 0x12, 0x41, 0x0a, 0x0b, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x6c, - 0x69, 0x61, 0x73, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x64, 0x6d, 0x2e, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x41, 0x6c, 0x69, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x73, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x2f, 0x0a, 0x04, 0x72, 0x73, 0x73, 0x69, 0x18, - 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x04, 0x72, 0x73, 0x73, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x21, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x23, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x0b, - 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x18, 0x24, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6d, 0x2e, 0x49, 0x44, 0x50, 0x61, 0x74, 0x68, 0x57, 0x69, 0x74, - 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x6f, 0x72, 0x12, 0x35, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x07, 0x65, 0x78, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x4e, - 0x65, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x4a, 0x6f, 0x62, 0x49, 0x44, 0x18, - 0x27, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x4e, 0x65, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x72, 0x6d, 0x4a, 0x6f, 0x62, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x12, 0x4e, 0x65, 0x65, 0x64, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x28, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x12, 0x4e, 0x65, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x18, 0x29, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, - 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6d, 0x67, 0x18, 0x2b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6d, 0x67, 0x12, - 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x18, 0x2c, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x12, - 0x28, 0x0a, 0x07, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x07, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x6c, 0x69, 0x61, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, - 0x6e, 0x66, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x94, 0x08, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x74, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4d, 0x6f, 0x64, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4d, 0x6f, 0x64, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, - 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x22, 0x0a, 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x64, - 0x65, 0x73, 0x63, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x2d, 0x0a, - 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x64, 0x6d, - 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, 0x61, 0x67, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, - 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6d, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6d, 0x67, 0x12, 0x2e, 0x0a, 0x12, - 0x69, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, - 0x6d, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6d, 0x67, 0x12, 0x2c, 0x0a, 0x08, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x2f, 0x0a, 0x08, 0x63, 0x61, - 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x64, - 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, - 0x79, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x45, 0x0a, 0x0c, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x18, 0x12, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, - 0x6e, 0x66, 0x12, 0x39, 0x0a, 0x09, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x09, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, - 0x09, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x08, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x55, 0x69, 0x18, - 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x55, 0x69, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x55, 0x69, 0x1a, 0x37, + 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x20, + 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x28, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, + 0x65, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x69, 0x73, 0x4c, 0x65, 0x61, 0x66, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x69, 0x73, + 0x4c, 0x65, 0x61, 0x66, 0x12, 0x29, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, + 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x1a, + 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8e, 0x01, 0x0a, 0x12, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x22, 0xeb, 0x01, 0x0a, 0x11, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x2e, 0x54, + 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x50, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x55, 0x69, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x64, 0x6d, 0x2e, - 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x55, 0x69, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5f, 0x0a, 0x0f, 0x50, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x55, 0x69, 0x12, 0x12, 0x0a, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x69, - 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0a, 0x69, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x69, 0x22, 0x34, 0x0a, 0x14, 0x50, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, - 0x44, 0x22, 0x7a, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, - 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x77, 0x69, 0x74, - 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x69, 0x74, - 0x68, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0c, 0x77, 0x69, 0x74, 0x68, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x22, 0x8b, 0x06, - 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, - 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x73, 0x12, 0x35, 0x0a, 0x04, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x64, 0x6d, 0x2e, 0x50, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, - 0x65, 0x71, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, - 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, - 0x6e, 0x66, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, - 0x71, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, - 0x66, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x77, 0x69, 0x74, - 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x69, 0x74, - 0x68, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0c, 0x77, 0x69, 0x74, 0x68, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1c, 0x0a, - 0x09, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, - 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, - 0x15, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, - 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x07, 0x6e, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, - 0x44, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x12, - 0x20, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x73, 0x18, 0x17, - 0x20, 0x03, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, - 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4d, 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x21, 0x0a, + 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x64, 0x6d, + 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xd9, 0x01, 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 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, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, + 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x2e, 0x54, 0x61, 0x67, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, + 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x57, 0x0a, 0x17, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, + 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x13, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, + 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x50, 0x0a, + 0x14, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, + 0x59, 0x0a, 0x19, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x43, 0x6f, 0x72, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x41, 0x0a, 0x05, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x22, 0xcc, 0x0e, + 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x22, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x50, 0x61, 0x74, 0x68, 0x18, 0x2a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x50, 0x61, 0x74, 0x68, + 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x63, 0x65, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x65, 0x72, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6d, 0x65, 0x69, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x69, 0x6d, 0x65, 0x69, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x36, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, + 0x0a, 0x08, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6f, + 0x66, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6f, + 0x66, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x52, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x06, 0x61, 0x64, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x06, 0x61, 0x64, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x4f, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x73, 0x4f, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4c, 0x6f, + 0x67, 0x69, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x42, 0x69, + 0x6e, 0x64, 0x18, 0x25, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x42, + 0x69, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x3e, 0x0a, + 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x26, 0x0a, + 0x0e, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x69, 0x63, 0x63, + 0x69, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x69, 0x63, 0x63, 0x69, 0x64, 0x12, 0x41, 0x0a, + 0x0b, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x19, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0b, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x6c, 0x69, 0x61, 0x73, + 0x12, 0x2f, 0x0a, 0x04, 0x72, 0x73, 0x73, 0x69, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x72, 0x73, 0x73, + 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x61, 0x74, 0x65, 0x64, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x18, + 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x61, 0x74, 0x65, 0x64, 0x50, 0x6f, 0x77, 0x65, + 0x72, 0x12, 0x44, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, + 0x66, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x43, 0x6f, 0x6e, 0x66, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x08, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, + 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6e, 0x65, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x6f, 0x72, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6d, 0x2e, + 0x49, 0x44, 0x50, 0x61, 0x74, 0x68, 0x57, 0x69, 0x74, 0x68, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x0b, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x12, 0x35, 0x0a, + 0x07, 0x65, 0x78, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x78, 0x70, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x4e, 0x65, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x72, 0x6d, 0x4a, 0x6f, 0x62, 0x49, 0x44, 0x18, 0x27, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, + 0x4e, 0x65, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x4a, 0x6f, 0x62, 0x49, 0x44, + 0x12, 0x2e, 0x0a, 0x12, 0x4e, 0x65, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x4e, 0x65, + 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x29, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x74, 0x49, 0x6d, 0x67, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6d, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x07, 0x47, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x47, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x51, 0x0a, 0x14, 0x50, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x4d, - 0x0a, 0x17, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x46, 0x69, 0x78, 0x52, 0x65, 0x71, 0x12, 0x32, 0x0a, 0x07, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x64, 0x6d, 0x2e, - 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x46, 0x69, 0x78, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0x78, 0x0a, - 0x14, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x46, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x22, 0x53, 0x0a, 0x13, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, - 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, - 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x4a, 0x0a, 0x0a, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x71, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x94, 0x08, 0x0a, + 0x0b, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, + 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, + 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6e, 0x65, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x75, 0x74, 0x6f, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, + 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0d, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x49, 0x6d, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x49, 0x6d, 0x67, 0x12, 0x2e, 0x0a, 0x12, 0x69, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6d, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x12, 0x69, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x49, 0x6d, 0x67, 0x12, 0x2c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x12, 0x2f, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x12, 0x45, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x43, 0x6f, 0x6e, 0x66, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x64, 0x6d, 0x2e, + 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x12, 0x39, 0x0a, 0x09, 0x74, + 0x72, 0x69, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x74, 0x72, 0x69, + 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x4d, + 0x6f, 0x64, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x65, + 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x08, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x55, 0x69, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x55, 0x69, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x55, 0x69, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x3f, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x50, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x55, 0x69, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x55, 0x69, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0x5f, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x55, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x55, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x55, 0x69, 0x22, 0x34, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, + 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x22, 0x7a, 0x0a, 0x12, 0x50, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, + 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x22, + 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x22, 0x8b, 0x06, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x20, + 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, + 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x18, + 0x0a, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x44, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x49, 0x44, 0x73, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x2e, 0x54, 0x61, 0x67, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x0c, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, + 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x4d, + 0x6f, 0x64, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x65, + 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x4d, + 0x6f, 0x64, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, + 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0b, 0x63, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, + 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, + 0x6f, 0x6e, 0x66, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x51, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x04, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x64, 0x6d, 0x2e, + 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x4d, 0x0a, 0x17, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, 0x69, 0x78, 0x52, + 0x65, 0x71, 0x12, 0x32, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4f, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, 0x69, 0x78, 0x52, 0x07, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0x78, 0x0a, 0x14, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, 0x69, 0x78, 0x12, 0x26, + 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x06, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, + 0x22, 0x53, 0x0a, 0x13, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x73, 0x0a, 0x11, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x4a, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, + 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x71, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x22, 0xee, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, - 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, - 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x07, - 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x13, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6d, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, - 0x65, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x13, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x61, - 0x72, 0x65, 0x61, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x72, 0x65, - 0x61, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x6f, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x49, 0x44, - 0x50, 0x61, 0x74, 0x68, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, - 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x61, 0x74, 0x65, 0x64, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x18, - 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x61, 0x74, 0x65, 0x64, 0x50, 0x6f, 0x77, 0x65, - 0x72, 0x22, 0xfc, 0x08, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, - 0x75, 0x63, 0x74, 0x49, 0x44, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, - 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x6f, - 0x69, 0x6e, 0x74, 0x52, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, - 0x07, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, - 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x4f, - 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x73, 0x4f, - 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, - 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, - 0x79, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x0c, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x43, 0x6f, 0x72, 0x65, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x1e, 0x0a, - 0x0a, 0x77, 0x69, 0x74, 0x68, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x77, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x18, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x07, 0x6e, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x65, 0x6e, - 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, - 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x74, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, - 0x79, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, - 0x6f, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0a, 0x6e, 0x6f, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x6e, - 0x6f, 0x74, 0x41, 0x72, 0x65, 0x61, 0x49, 0x44, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, - 0x6e, 0x6f, 0x74, 0x41, 0x72, 0x65, 0x61, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x0b, 0x64, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, - 0x2e, 0x64, 0x6d, 0x2e, 0x49, 0x44, 0x50, 0x61, 0x74, 0x68, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x30, 0x0a, 0x0a, 0x72, 0x61, 0x74, 0x65, 0x64, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x1c, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6d, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x0a, 0x72, 0x61, 0x74, 0x65, 0x64, 0x50, 0x6f, 0x77, 0x65, - 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x1e, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x08, 0x68, 0x61, 0x73, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x16, 0x0a, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6d, 0x2e, 0x43, 0x6f, 0x6d, 0x70, - 0x61, 0x72, 0x65, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x07, 0x65, 0x78, 0x70, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x63, 0x63, 0x69, 0x64, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x69, 0x63, 0x63, 0x69, 0x64, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x4f, 0x0a, 0x13, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x22, 0x94, 0x01, 0x0a, 0x0c, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, - 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x65, 0x72, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, 0x15, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x12, 0x28, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x22, 0x73, 0x0a, 0x11, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x47, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x77, 0x69, + 0x74, 0x68, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x22, 0xee, 0x01, 0x0a, 0x18, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x12, 0x42, 0x0a, 0x13, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x64, 0x6d, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, + 0x13, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x6f, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x0b, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x49, 0x44, 0x50, 0x61, 0x74, 0x68, 0x52, 0x0b, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x22, 0xfc, 0x08, 0x0a, 0x12, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, + 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x73, 0x18, + 0x17, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, + 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, + 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, + 0x25, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x73, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x6c, 0x69, + 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x2c, + 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, + 0x79, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x07, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x07, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x53, 0x68, + 0x61, 0x72, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x77, 0x69, 0x74, 0x68, + 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x77, 0x69, 0x74, + 0x68, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0f, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, + 0x0a, 0x0a, 0x6e, 0x6f, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x27, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, + 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x18, 0x15, 0x20, + 0x03, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x12, 0x28, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, + 0x65, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x44, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x6f, 0x74, 0x41, 0x72, 0x65, 0x61, 0x49, + 0x44, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6e, 0x6f, 0x74, 0x41, 0x72, 0x65, 0x61, + 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, + 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x49, 0x44, 0x50, + 0x61, 0x74, 0x68, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x0a, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, + 0x6d, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x0a, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x61, + 0x73, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x68, 0x61, + 0x73, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x1f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2a, + 0x0a, 0x07, 0x65, 0x78, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x64, 0x6d, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x52, 0x07, 0x65, 0x78, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x63, + 0x63, 0x69, 0x64, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x63, 0x63, 0x69, 0x64, + 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4f, 0x0a, 0x13, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x94, 0x01, 0x0a, 0x0c, 0x52, + 0x6f, 0x6f, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, + 0x20, 0x0a, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x22, 0x41, 0x0a, 0x15, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x04, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6d, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x41, 0x0a, 0x15, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, + 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6d, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0xfe, 0x04, 0x0a, 0x14, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, + 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, + 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x44, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, + 0x14, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x77, 0x69, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x13, 0x77, 0x69, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x49, 0x44, 0x12, 0x3c, 0x0a, 0x19, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x57, 0x69, 0x74, 0x68, 0x46, 0x61, 0x74, 0x68, 0x65, 0x72, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x57, 0x69, 0x74, 0x68, 0x46, 0x61, 0x74, 0x68, 0x65, 0x72, + 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x73, 0x43, 0x61, 0x6e, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4c, 0x69, + 0x6e, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x69, 0x73, 0x43, + 0x61, 0x6e, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x66, 0x75, 0x6e, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x66, 0x75, 0x6e, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1a, 0x0a, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x50, 0x65, 0x72, 0x6d, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x50, 0x65, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, + 0x49, 0x44, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, + 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x44, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x44, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x10, + 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, 0x65, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, + 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x57, 0x0a, 0x15, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x28, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6d, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x41, 0x0a, 0x15, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6d, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0xfe, - 0x04, 0x0a, 0x14, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, - 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x77, 0x69, 0x74, - 0x68, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x77, 0x69, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x64, - 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x2c, 0x0a, 0x11, 0x70, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, - 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x12, 0x3c, 0x0a, 0x19, 0x70, 0x72, 0x6f, - 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x57, 0x69, 0x74, 0x68, - 0x46, 0x61, 0x74, 0x68, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x70, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x57, 0x69, 0x74, - 0x68, 0x46, 0x61, 0x74, 0x68, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x73, 0x43, 0x61, 0x6e, - 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x11, 0x69, 0x73, 0x43, 0x61, 0x6e, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4c, 0x69, - 0x6e, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x75, 0x6e, 0x63, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x75, 0x6e, 0x63, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x50, 0x65, 0x72, 0x6d, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x50, 0x65, 0x72, 0x6d, 0x12, - 0x16, 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x44, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x73, 0x18, 0x12, 0x20, - 0x03, 0x28, 0x03, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x73, 0x12, 0x22, 0x0a, - 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4d, 0x6f, 0x64, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, - 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, - 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, - 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x22, - 0x57, 0x0a, 0x15, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x28, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6d, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, - 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xb9, 0x04, 0x0a, 0x10, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x12, 0x30, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x73, 0x43, 0x61, 0x6e, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4c, - 0x69, 0x6e, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x69, 0x73, - 0x43, 0x61, 0x6e, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x61, 0x67, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x66, 0x75, 0x6e, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x09, 0x66, 0x75, 0x6e, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1a, 0x0a, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x50, 0x65, 0x72, 0x6d, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x50, 0x65, 0x72, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x69, 0x73, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x3c, 0x0a, 0x0a, 0x61, 0x66, 0x66, 0x6f, 0x72, - 0x64, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x61, 0x66, 0x66, 0x6f, 0x72, - 0x64, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, - 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, - 0x65, 0x12, 0x41, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, - 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x64, - 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, - 0x79, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x69, 0x65, 0x73, 0x22, 0x43, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x29, - 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x64, - 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x66, 0x0a, 0x1b, 0x50, 0x72, 0x6f, - 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, - 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, - 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, - 0x74, 0x22, 0x43, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x04, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x64, 0x6d, 0x2e, 0x50, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x56, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, - 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0xf7, - 0x02, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x03, 0x74, 0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x73, + 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x22, 0xb9, 0x04, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x04, + 0x64, 0x65, 0x73, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x1a, + 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x73, 0x43, 0x61, 0x6e, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x69, 0x73, 0x43, 0x61, 0x6e, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x75, 0x6e, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x75, 0x6e, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x50, 0x65, 0x72, 0x6d, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x50, 0x65, - 0x72, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4d, 0x6f, - 0x64, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x59, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x64, - 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x22, 0x97, 0x04, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, + 0x72, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x69, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x12, 0x3c, 0x0a, 0x0a, 0x61, 0x66, 0x66, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x0a, 0x61, 0x66, 0x66, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x22, + 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x41, 0x0a, 0x11, 0x70, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0x43, 0x0a, + 0x16, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, + 0x66, 0x6f, 0x22, 0x66, 0x0a, 0x1b, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, + 0x29, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x43, 0x0a, 0x16, 0x50, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, + 0x56, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, - 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x1e, 0x0a, - 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x30, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x30, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x64, 0x65, 0x73, - 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x2c, 0x0a, - 0x11, 0x69, 0x73, 0x43, 0x61, 0x6e, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x61, - 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x69, 0x73, 0x43, 0x61, 0x6e, 0x53, - 0x63, 0x65, 0x6e, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, - 0x75, 0x6e, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, - 0x66, 0x75, 0x6e, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, - 0x72, 0x50, 0x65, 0x72, 0x6d, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x75, 0x73, 0x65, - 0x72, 0x50, 0x65, 0x72, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x69, 0x73, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x3c, 0x0a, 0x0a, 0x61, 0x66, 0x66, 0x6f, 0x72, 0x64, 0x61, - 0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x61, 0x66, 0x66, 0x6f, 0x72, 0x64, 0x61, - 0x6e, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x4b, 0x0a, - 0x19, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x73, - 0x6c, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x73, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x73, 0x6c, 0x22, 0x37, 0x0a, 0x17, 0x50, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x73, 0x6c, 0x52, 0x65, - 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x74, 0x49, 0x44, 0x22, 0x2c, 0x0a, 0x18, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x54, 0x73, 0x6c, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x10, 0x0a, 0x03, 0x74, 0x73, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x73, - 0x6c, 0x22, 0x63, 0x0a, 0x0d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, - 0x72, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, - 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x52, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x26, - 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, - 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x06, - 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3e, 0x0a, 0x14, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x61, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x52, - 0x65, 0x71, 0x12, 0x26, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, - 0x72, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x5a, 0x0a, 0x16, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x42, 0x69, 0x6e, - 0x64, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x16, - 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x22, 0x3e, 0x0a, 0x17, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x23, 0x0a, 0x04, 0x65, 0x72, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0f, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x52, 0x04, 0x65, 0x72, 0x72, 0x73, 0x22, 0x77, 0x0a, 0x11, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x06, 0x64, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0xf7, 0x02, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, + 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, + 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x44, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x11, + 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x74, + 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x20, 0x0a, + 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x73, 0x43, 0x61, 0x6e, 0x53, 0x63, 0x65, 0x6e, + 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, + 0x69, 0x73, 0x43, 0x61, 0x6e, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x61, 0x67, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x75, 0x6e, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x75, 0x6e, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x50, 0x65, 0x72, 0x6d, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x50, 0x65, 0x72, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, + 0x65, 0x22, 0x59, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x04, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x64, 0x6d, 0x2e, 0x50, + 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x97, 0x04, 0x0a, + 0x11, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x72, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x73, 0x43, 0x61, 0x6e, 0x53, + 0x63, 0x65, 0x6e, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x11, 0x69, 0x73, 0x43, 0x61, 0x6e, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4c, 0x69, 0x6e, + 0x6b, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x75, 0x6e, 0x63, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x75, 0x6e, 0x63, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x50, 0x65, 0x72, 0x6d, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x50, 0x65, 0x72, 0x6d, 0x12, 0x20, + 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x69, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x3c, + 0x0a, 0x0a, 0x61, 0x66, 0x66, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x0a, 0x61, 0x66, 0x66, 0x6f, 0x72, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x4b, 0x0a, 0x19, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x73, 0x6c, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x44, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x73, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x74, 0x73, 0x6c, 0x22, 0x37, 0x0a, 0x17, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x54, 0x73, 0x6c, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1c, + 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x22, 0x2c, 0x0a, 0x18, + 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x73, 0x6c, + 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x73, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x73, 0x6c, 0x22, 0x63, 0x0a, 0x0d, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, + 0x52, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x22, 0x3e, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x43, 0x61, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x22, - 0x55, 0x0a, 0x15, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x05, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x47, 0x0a, 0x16, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x2d, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, - 0x6a, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x03, 0x52, 0x08, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x44, 0x73, 0x22, 0x3a, 0x0a, 0x0f, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, - 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x64, - 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x72, - 0x61, 0x6e, 0x67, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x49, 0x44, 0x12, 0x34, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x38, 0x0a, 0x0a, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x77, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x2b, 0x0a, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x64, 0x6d, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x72, 0x65, 0x61, - 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x61, 0x72, 0x65, 0x61, 0x49, - 0x44, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x73, 0x22, 0x77, - 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x69, 0x63, 0x65, 0x22, 0x5a, 0x0a, 0x16, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, + 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x07, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x22, + 0x3e, 0x0a, 0x17, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x04, 0x65, 0x72, + 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x04, 0x65, 0x72, 0x72, 0x73, 0x22, + 0x77, 0x0a, 0x11, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x69, 0x6e, + 0x64, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x43, 0x6f, 0x72, 0x65, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x61, 0x72, + 0x65, 0x61, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x55, 0x0a, 0x15, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, + 0x71, 0x12, 0x26, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, + 0x65, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x64, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x22, + 0x47, 0x0a, 0x16, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x08, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x64, 0x6d, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x08, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x6a, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x49, 0x44, 0x73, 0x22, 0x3a, 0x0a, 0x0f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, + 0x22, 0x9b, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x44, 0x12, 0x34, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x38, 0x0a, 0x0a, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x77, + 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x2b, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x64, 0x6d, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, - 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x6e, 0x6c, - 0x69, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x08, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x6e, 0x6b, - 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x75, 0x6e, 0x6b, 0x6e, - 0x6f, 0x77, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x79, 0x0a, 0x13, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x06, 0x73, 0x75, 0x62, 0x73, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x6e, - 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x75, 0x6e, 0x6b, - 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0xe5, 0x02, 0x0a, 0x08, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, - 0x65, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, - 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x16, 0x0a, 0x06, 0x69, 0x73, 0x44, 0x69, 0x66, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x69, 0x73, 0x44, 0x69, 0x66, 0x66, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, - 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x36, 0x0a, 0x07, 0x65, 0x78, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x78, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x29, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, - 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x2e, 0x0a, 0x0c, - 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x0a, - 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x22, 0x8b, 0x03, 0x0a, - 0x0c, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, - 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x12, - 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x20, 0x0a, - 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, - 0x06, 0x69, 0x73, 0x44, 0x69, 0x66, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, - 0x73, 0x44, 0x69, 0x66, 0x66, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x09, 0x20, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x73, 0x22, 0x77, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x2b, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x64, 0x6d, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x72, + 0x65, 0x61, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x61, 0x72, 0x65, + 0x61, 0x49, 0x44, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x73, + 0x22, 0x8f, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6f, + 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x22, 0x79, 0x0a, 0x13, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x75, 0x62, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x75, 0x62, + 0x73, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0xe5, 0x02, + 0x0a, 0x08, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, + 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x44, 0x69, + 0x66, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x73, 0x44, 0x69, 0x66, 0x66, + 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x12, 0x30, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x64, 0x65, + 0x73, 0x63, 0x12, 0x36, 0x0a, 0x07, 0x65, 0x78, 0x74, 0x44, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x36, 0x0a, 0x07, 0x65, 0x78, 0x74, 0x44, 0x61, - 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x78, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x29, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x46, - 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x41, 0x0a, 0x0f, 0x4f, 0x74, - 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x37, 0x0a, - 0x15, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, - 0x72, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x6d, - 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x22, 0x2e, 0x0a, 0x16, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, - 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x22, 0x76, 0x0a, 0x14, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, - 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x20, + 0x65, 0x52, 0x07, 0x65, 0x78, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x05, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, + 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x2e, 0x0a, 0x0c, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, + 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, + 0x61, 0x72, 0x65, 0x49, 0x44, 0x22, 0x8b, 0x03, 0x0a, 0x0c, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, + 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x6d, + 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, + 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x44, 0x69, 0x66, 0x66, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x73, 0x44, 0x69, 0x66, 0x66, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x30, + 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, + 0x12, 0x36, 0x0a, 0x07, 0x65, 0x78, 0x74, 0x44, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x07, 0x65, 0x78, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, + 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x22, 0x41, 0x0a, 0x0f, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, + 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, + 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, + 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x37, 0x0a, 0x15, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, + 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, + 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x22, + 0x2e, 0x0a, 0x16, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, + 0x68, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x22, + 0x76, 0x0a, 0x14, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, + 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, + 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x22, 0x53, 0x0a, 0x15, 0x46, 0x69, 0x72, 0x6d, 0x77, + 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x24, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x64, 0x6d, 0x2e, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x35, 0x0a, 0x13, + 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x61, 0x64, + 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, + 0x65, 0x49, 0x44, 0x22, 0xdc, 0x01, 0x0a, 0x12, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, + 0x61, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, + 0x6c, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, + 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, + 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, + 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x22, 0xfd, 0x01, 0x0a, 0x13, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, + 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, + 0x6c, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, + 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, + 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, + 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x22, 0xbd, 0x01, 0x0a, 0x13, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, + 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, + 0x6c, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, + 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, + 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, + 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x17, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, + 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, - 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x22, 0x53, - 0x0a, 0x15, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6d, 0x2e, 0x46, 0x69, 0x72, 0x6d, 0x77, - 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x22, 0x35, 0x0a, 0x13, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, - 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, - 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x22, 0xdc, 0x01, 0x0a, 0x12, 0x4f, - 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, - 0x71, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, - 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, - 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xfd, 0x01, 0x0a, 0x13, 0x4f, 0x74, - 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, - 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, - 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, - 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, - 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xbd, 0x01, 0x0a, 0x13, 0x4f, 0x74, - 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, - 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x17, 0x4f, 0x74, - 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, - 0x61, 0x72, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x72, - 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x12, 0x2f, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x5d, 0x0a, 0x18, 0x4f, 0x74, 0x61, 0x46, - 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, - 0x61, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x97, 0x03, 0x0a, 0x14, 0x46, 0x69, 0x72, 0x6d, - 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, - 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, - 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x44, 0x69, 0x66, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x69, 0x73, 0x44, 0x69, 0x66, 0x66, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, - 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, - 0x67, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x36, 0x0a, 0x07, 0x65, 0x78, - 0x74, 0x44, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x78, 0x74, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x2d, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, - 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x46, 0x69, - 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, - 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, - 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x22, 0xec, - 0x02, 0x0a, 0x18, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, - 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x69, - 0x73, 0x44, 0x69, 0x66, 0x66, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x69, 0x73, 0x44, - 0x69, 0x66, 0x66, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x72, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x72, 0x63, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x54, 0x6f, 0x56, - 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x69, 0x73, 0x4e, - 0x65, 0x65, 0x64, 0x54, 0x6f, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x65, - 0x78, 0x74, 0x72, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x12, - 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x18, 0x0f, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x1e, 0x0a, - 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x86, 0x01, - 0x0a, 0x18, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 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, 0x12, - 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, - 0x73, 0x63, 0x12, 0x32, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, 0x6d, 0x0a, 0x17, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, - 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, - 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, - 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, - 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x59, 0x0a, 0x18, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, - 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x27, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, + 0x12, 0x2f, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x73, 0x69, 0x7a, + 0x65, 0x22, 0x5d, 0x0a, 0x18, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, + 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, + 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x6d, + 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x22, 0xa1, 0x03, 0x0a, 0x0f, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 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, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, - 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x64, 0x65, 0x73, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, - 0x12, 0x14, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x12, 0x2c, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6d, 0x2e, 0x46, 0x69, - 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x44, 0x69, 0x66, 0x66, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x69, 0x73, 0x44, 0x69, 0x66, 0x66, 0x12, 0x26, 0x0a, 0x0e, - 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x54, 0x6f, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x54, 0x6f, 0x56, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x43, 0x6f, 0x64, 0x65, 0x22, 0xa7, 0x05, 0x0a, 0x12, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, - 0x77, 0x61, 0x72, 0x65, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x66, - 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x70, 0x67, 0x72, 0x61, - 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x75, 0x70, - 0x67, 0x72, 0x61, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x72, 0x63, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, - 0x73, 0x72, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x72, - 0x65, 0x74, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x74, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, - 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x49, 0x6e, 0x4d, 0x69, - 0x6e, 0x75, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x49, 0x6e, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2a, 0x0a, - 0x10, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x75, 0x74, - 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, - 0x50, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x73, 0x4f, - 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0f, 0x69, 0x73, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x4d, - 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x50, 0x75, 0x73, - 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x50, - 0x75, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x69, 0x73, 0x4e, 0x65, - 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x07, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x4a, 0x6f, 0x62, - 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x64, 0x79, 0x6e, - 0x61, 0x6d, 0x69, 0x63, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x4a, 0x6f, 0x62, - 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, - 0x6e, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x35, - 0x0a, 0x11, 0x4f, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, - 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xb6, 0x01, 0x0a, 0x10, 0x4f, 0x74, 0x61, 0x4a, 0x6f, 0x62, - 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x11, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x46, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, - 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x67, 0x72, 0x61, 0x79, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x67, 0x72, 0x61, 0x79, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x22, 0x98, - 0x01, 0x0a, 0x16, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4a, 0x6f, - 0x62, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, - 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x70, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x5b, 0x0a, 0x17, 0x4f, 0x74, 0x61, - 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, - 0x61, 0x72, 0x65, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xa0, 0x01, 0x0a, 0x16, 0x4f, 0x74, 0x61, 0x4a, 0x6f, - 0x62, 0x42, 0x79, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, - 0x71, 0x12, 0x28, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x66, + 0x22, 0x97, 0x03, 0x0a, 0x14, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x19, 0x4f, 0x74, - 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, - 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, - 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x12, - 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x87, 0x03, 0x0a, 0x15, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, - 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, - 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x12, - 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x20, 0x0a, - 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x73, 0x72, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x72, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x61, 0x0a, 0x1a, 0x4f, 0x74, 0x61, + 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x44, + 0x69, 0x66, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x73, 0x44, 0x69, 0x66, + 0x66, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x64, + 0x65, 0x73, 0x63, 0x12, 0x36, 0x0a, 0x07, 0x65, 0x78, 0x74, 0x44, 0x61, 0x74, 0x61, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x07, 0x65, 0x78, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2d, 0x0a, 0x05, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x6d, 0x2e, + 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x0c, 0x46, + 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, + 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, + 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x22, 0xec, 0x02, 0x0a, 0x18, 0x4f, 0x74, 0x61, 0x46, + 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x64, 0x65, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x44, 0x69, 0x66, 0x66, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x69, 0x73, 0x44, 0x69, 0x66, 0x66, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x72, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x72, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, + 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x54, 0x6f, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x54, 0x6f, 0x56, 0x65, + 0x72, 0x69, 0x66, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, + 0x50, 0x61, 0x74, 0x68, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x6c, + 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x18, 0x4f, 0x74, 0x61, 0x46, 0x69, + 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 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, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x32, 0x0a, 0x05, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, + 0x6d, 0x0a, 0x17, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, + 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, + 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x59, + 0x0a, 0x18, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x04, 0x6c, 0x69, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, + 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, + 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xa1, 0x03, 0x0a, 0x0f, 0x4f, 0x74, + 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 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, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, + 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x12, + 0x2c, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x64, 0x6d, 0x2e, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x46, + 0x69, 0x6c, 0x65, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x69, 0x73, 0x44, 0x69, 0x66, 0x66, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x69, + 0x73, 0x44, 0x69, 0x66, 0x66, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x54, + 0x6f, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x69, + 0x73, 0x4e, 0x65, 0x65, 0x64, 0x54, 0x6f, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x1e, 0x0a, + 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xa7, 0x05, + 0x0a, 0x12, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4a, 0x6f, 0x62, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, + 0x72, 0x65, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x72, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x72, 0x63, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x74, 0x72, 0x79, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x74, + 0x72, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, + 0x74, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, + 0x72, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x49, 0x6e, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x49, 0x6e, 0x4d, + 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x50, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x10, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x75, + 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x73, 0x4f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x69, 0x73, 0x4f, + 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x50, 0x75, 0x73, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0a, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, + 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0d, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x07, + 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x12, 0x2c, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x35, 0x0a, 0x11, 0x4f, 0x74, 0x61, 0x4a, 0x6f, + 0x62, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, + 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0b, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xb6, + 0x01, 0x0a, 0x10, 0x4f, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x11, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x46, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x72, 0x61, 0x79, 0x50, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x67, 0x72, 0x61, 0x79, + 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x16, 0x4f, 0x74, 0x61, 0x46, + 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, + 0x65, 0x71, 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, + 0x72, 0x65, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x22, 0x5b, 0x0a, 0x17, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, + 0x65, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, + 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x64, 0x6d, + 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4a, 0x6f, 0x62, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, + 0xa0, 0x01, 0x0a, 0x16, 0x4f, 0x74, 0x61, 0x4a, 0x6f, 0x62, 0x42, 0x79, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x08, 0x70, 0x61, + 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x64, + 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, + 0x72, 0x65, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x19, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, + 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, + 0x12, 0x20, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x70, 0x61, + 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, + 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x87, 0x03, 0x0a, 0x15, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, - 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x74, 0x0a, 0x1a, - 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, - 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, - 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, - 0x62, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, - 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x22, 0x73, 0x0a, 0x19, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, - 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, - 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x12, - 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x5b, 0x0a, 0x1b, 0x4f, 0x74, 0x61, 0x46, 0x69, - 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x32, 0xaa, 0x0d, 0x0a, 0x0c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, - 0x61, 0x6e, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x12, 0x10, 0x2e, 0x64, 0x6d, 0x2e, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, - 0x2d, 0x0a, 0x10, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x12, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2d, - 0x0a, 0x10, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x12, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, 0x0a, - 0x14, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x46, 0x69, 0x78, 0x12, 0x1b, 0x2e, 0x64, 0x6d, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, 0x69, 0x78, 0x52, - 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x36, 0x0a, - 0x10, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x12, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, - 0x1a, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x15, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x37, 0x0a, 0x0e, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x61, 0x64, 0x12, 0x15, 0x2e, - 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x61, - 0x64, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x15, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, - 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4e, 0x0a, 0x13, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x42, 0x69, 0x6e, 0x64, 0x12, - 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x64, 0x6d, + 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, + 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x72, 0x63, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x72, + 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x12, 0x16, + 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, + 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x22, 0x61, 0x0a, 0x1a, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, + 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x2d, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x74, 0x0a, 0x1a, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, + 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, + 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, + 0x65, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x73, 0x0a, 0x19, 0x4f, + 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x52, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x6d, + 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, + 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x22, 0x5b, 0x0a, 0x1b, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x12, + 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x32, 0xaa, 0x0d, + 0x0a, 0x0c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x12, 0x28, + 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x10, 0x2e, 0x64, 0x6d, + 0x2e, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, + 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2d, 0x0a, 0x10, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x2e, 0x64, + 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x09, 0x2e, 0x64, + 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2d, 0x0a, 0x10, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x2e, 0x64, 0x6d, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x09, 0x2e, 0x64, 0x6d, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x14, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, 0x69, 0x78, 0x12, 0x1b, + 0x2e, 0x64, 0x6d, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, 0x69, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x10, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x64, 0x6d, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x42, + 0x0a, 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x16, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x40, 0x0a, 0x15, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x11, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x61, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x18, 0x2e, - 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x61, 0x6e, - 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x2d, 0x0a, 0x10, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x12, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x12, 0x32, 0x0a, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x66, 0x65, 0x72, 0x12, 0x15, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, - 0x6f, 0x76, 0x65, 0x12, 0x11, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, - 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x12, 0x52, 0x0a, 0x17, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x12, 0x1e, 0x2e, 0x64, - 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x64, - 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x5d, 0x0a, 0x18, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x1f, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, - 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, - 0x64, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x18, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, - 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x12, 0x1f, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x44, 0x0a, 0x18, - 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x12, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x44, 0x0a, 0x18, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x64, 0x6d, - 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x0b, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x64, - 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x40, 0x0a, 0x11, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x52, 0x65, 0x61, 0x64, 0x12, 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, - 0x1a, 0x11, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x12, 0x3a, 0x0a, 0x13, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x64, 0x6d, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x61, - 0x64, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, - 0x33, 0x0a, 0x13, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x12, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x19, 0x2e, 0x64, 0x6d, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, - 0x70, 0x32, 0xd6, 0x0c, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, - 0x69, 0x74, 0x12, 0x12, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, - 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x12, 0x2f, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, - 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x2f, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, - 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x12, 0x38, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x45, 0x0a, - 0x10, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x64, 0x6d, 0x2e, - 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x61, 0x64, 0x12, 0x16, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, - 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x37, 0x0a, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x61, 0x64, 0x12, 0x15, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, + 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, + 0x0e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x69, 0x6e, 0x64, 0x12, + 0x15, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, + 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x12, 0x4e, 0x0a, 0x13, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x42, 0x69, 0x6e, + 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x38, 0x0a, 0x11, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x43, + 0x61, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x61, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, + 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2d, 0x0a, 0x10, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x6e, 0x62, 0x69, 0x6e, 0x64, 0x12, + 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x72, 0x65, 0x1a, + 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x32, 0x0a, 0x0e, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x15, 0x2e, 0x64, + 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2a, + 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x76, 0x65, 0x12, 0x11, 0x2e, 0x64, + 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x52, 0x0a, 0x17, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x61, 0x64, 0x12, 0x1e, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x5d, + 0x0a, 0x18, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x2e, 0x64, 0x6d, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x64, 0x6d, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, + 0x18, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x2e, 0x64, 0x6d, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x44, 0x0a, 0x18, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x12, 0x1d, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x71, + 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x12, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x64, + 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, 0x18, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x61, 0x76, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, + 0x0a, 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x16, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x42, + 0x0a, 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x16, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x36, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x12, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x11, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x61, 0x64, 0x12, + 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x64, 0x6d, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x3a, 0x0a, 0x13, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, + 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x13, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, + 0x11, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4b, 0x0a, + 0x12, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x1a, + 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x32, 0xd6, 0x0c, 0x0a, 0x0d, 0x50, + 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x0b, + 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x12, 0x2e, 0x64, 0x6d, + 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2f, 0x0a, 0x11, 0x70, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x3c, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, + 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2f, 0x0a, 0x11, 0x70, + 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x12, 0x0f, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x38, 0x0a, 0x11, + 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x12, 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x17, 0x2e, 0x64, 0x6d, 0x2e, + 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, + 0x0f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x61, 0x64, + 0x12, 0x16, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3c, - 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x18, - 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x64, 0x6d, - 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, - 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x42, 0x0a, 0x16, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x54, 0x73, 0x6c, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1d, 0x2e, 0x64, 0x6d, 0x2e, 0x50, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x73, 0x6c, 0x49, - 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x12, 0x51, 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x54, 0x73, 0x6c, 0x52, 0x65, 0x61, 0x64, 0x12, 0x1b, 0x2e, 0x64, 0x6d, - 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x73, - 0x6c, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x73, 0x6c, 0x52, 0x65, - 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x61, 0x64, 0x12, 0x18, 0x2e, 0x64, 0x6d, - 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, - 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x33, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x64, - 0x75, 0x63, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, - 0x11, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x38, 0x0a, - 0x15, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, - 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x1a, 0x0a, 0x2e, 0x64, 0x6d, - 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x12, 0x37, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x12, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, - 0x65, 0x67, 0x6f, 0x72, 0x79, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x12, 0x2e, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, - 0x6f, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, - 0x69, 0x74, 0x68, 0x49, 0x44, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x12, 0x51, 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, - 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, - 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x3e, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, - 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x61, 0x64, 0x12, 0x12, 0x2e, 0x64, 0x6d, 0x2e, - 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x1a, 0x13, + 0x12, 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, + 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1a, + 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x18, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x12, 0x1f, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3c, 0x0a, + 0x13, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x12, 0x70, + 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x64, + 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x16, 0x70, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x73, 0x6c, 0x49, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x12, 0x1d, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x73, 0x6c, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x51, 0x0a, 0x14, + 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x73, 0x6c, + 0x52, 0x65, 0x61, 0x64, 0x12, 0x1b, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x73, 0x6c, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, + 0x71, 0x1a, 0x1c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x54, 0x73, 0x6c, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x40, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x52, 0x65, 0x61, 0x64, 0x12, 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x11, + 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x12, 0x33, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x1a, 0x09, 0x2e, 0x64, 0x6d, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x38, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, + 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x1a, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, + 0x12, 0x37, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, + 0x6f, 0x72, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x50, + 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x1a, 0x09, + 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x15, 0x70, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x12, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x1a, 0x09, + 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x51, 0x0a, 0x14, 0x70, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x1b, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, - 0x6f, 0x72, 0x79, 0x12, 0x63, 0x0a, 0x1a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, - 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x21, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, - 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x20, 0x70, 0x72, 0x6f, 0x64, - 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x25, 0x2e, 0x64, - 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, - 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x61, 0x76, 0x65, - 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x54, - 0x0a, 0x20, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, - 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x12, 0x25, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, - 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x54, 0x0a, 0x20, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, - 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x25, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x32, 0xa7, 0x02, 0x0a, 0x0c, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x69, 0x74, 0x12, - 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x64, 0x6d, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x12, 0x3a, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2b, 0x0a, - 0x12, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x12, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x1a, - 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x48, 0x0a, 0x11, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, - 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x52, 0x65, 0x73, 0x70, 0x32, 0xa4, 0x02, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x12, 0x48, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x2e, 0x64, - 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x34, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x61, 0x64, 0x12, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, - 0x44, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x10, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x10, 0x2e, - 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x1a, - 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x12, 0x31, 0x0a, 0x12, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x12, 0x10, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, - 0x6e, 0x66, 0x6f, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2b, - 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x12, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, - 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x32, 0x96, 0x04, 0x0a, 0x0b, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2c, 0x0a, 0x0f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x0d, - 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0a, 0x2e, - 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x12, 0x3f, 0x0a, 0x0e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x15, 0x2e, 0x64, 0x6d, - 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, - 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x32, 0x0a, 0x0d, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x61, 0x64, 0x12, 0x12, 0x2e, 0x64, 0x6d, - 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x1a, - 0x0d, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, - 0x0a, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x12, 0x0d, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, - 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x0a, - 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x40, 0x0a, 0x16, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, - 0x1b, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3e, 0x0a, 0x13, + 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x61, 0x64, 0x12, 0x12, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x43, + 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x1a, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x63, 0x0a, 0x1a, + 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x21, 0x2e, 0x64, 0x6d, 0x2e, + 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, + 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x54, 0x0a, 0x20, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x25, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, - 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x40, 0x0a, 0x16, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x12, 0x1b, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, - 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x10, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x17, 0x2e, - 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x42, 0x0a, 0x16, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x64, 0x6d, 0x2e, + 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x54, 0x0a, 0x20, 0x70, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x25, 0x2e, 0x64, 0x6d, + 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x61, 0x76, 0x65, 0x52, + 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x54, 0x0a, + 0x20, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x12, 0x25, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x32, 0xa7, 0x02, 0x0a, 0x0c, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3a, + 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x12, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x12, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x0a, 0x2e, 0x64, + 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x12, 0x48, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, + 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x32, 0xa4, 0x02, + 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x12, 0x48, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, + 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, + 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x10, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x61, 0x64, 0x12, 0x0e, + 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x10, + 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x32, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x10, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, + 0x74, 0x68, 0x49, 0x44, 0x12, 0x31, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x10, 0x2e, 0x64, 0x6d, 0x2e, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x09, 0x2e, 0x64, + 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x0a, 0x2e, + 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x32, 0x96, 0x04, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2c, 0x0a, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x0d, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, + 0x49, 0x44, 0x12, 0x3f, 0x0a, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x15, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x64, 0x6d, + 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x32, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x61, 0x64, 0x12, 0x12, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, + 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x1a, 0x0d, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x0d, 0x2e, 0x64, 0x6d, 0x2e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, + 0x68, 0x49, 0x44, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x40, + 0x0a, 0x16, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x61, + 0x76, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x12, 0x40, 0x0a, 0x16, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x32, 0xa5, 0x02, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x64, 0x6d, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x12, 0x48, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x52, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, - 0x1a, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x13, 0x52, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x75, 0x73, 0x68, 0x41, - 0x6c, 0x6c, 0x12, 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x50, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x09, - 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x51, 0x0a, 0x14, 0x52, 0x65, 0x6d, + 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x45, 0x0a, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, + 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x16, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x32, 0xa5, 0x02, + 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a, + 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x48, 0x0a, 0x11, 0x52, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x50, 0x75, 0x73, 0x68, 0x41, 0x6c, 0x6c, 0x12, 0x1a, 0x2e, 0x64, 0x6d, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x75, 0x73, + 0x68, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x51, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x61, 0x64, 0x12, 0x1b, 0x2e, 0x64, 0x6d, 0x2e, + 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x61, 0x73, 0x74, + 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x64, 0x6d, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x61, - 0x64, 0x12, 0x1b, 0x2e, 0x64, 0x6d, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1c, - 0x2e, 0x64, 0x6d, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x32, 0xe2, 0x04, 0x0a, - 0x09, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x36, 0x0a, 0x0b, 0x73, 0x64, - 0x6b, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x2e, 0x64, 0x6d, 0x2e, 0x53, - 0x64, 0x6b, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, - 0x64, 0x6d, 0x2e, 0x53, 0x64, 0x6b, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x36, 0x0a, 0x0b, 0x68, 0x75, 0x62, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x12, 0x2e, 0x64, 0x6d, 0x2e, 0x48, 0x75, 0x62, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x48, 0x75, 0x62, 0x4c, 0x6f, - 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0c, 0x73, 0x65, - 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x13, 0x2e, 0x64, 0x6d, 0x2e, - 0x53, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, - 0x14, 0x2e, 0x64, 0x6d, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, - 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x15, 0x2e, 0x64, 0x6d, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x16, - 0x2e, 0x64, 0x6d, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x16, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x1d, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4c, 0x6f, - 0x67, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x32, 0xe2, 0x04, 0x0a, 0x09, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x4d, 0x73, 0x67, 0x12, 0x36, 0x0a, 0x0b, 0x73, 0x64, 0x6b, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x12, 0x12, 0x2e, 0x64, 0x6d, 0x2e, 0x53, 0x64, 0x6b, 0x4c, 0x6f, 0x67, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x53, 0x64, 0x6b, 0x4c, + 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x0b, 0x68, + 0x75, 0x62, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x2e, 0x64, 0x6d, 0x2e, + 0x48, 0x75, 0x62, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x13, + 0x2e, 0x64, 0x6d, 0x2e, 0x48, 0x75, 0x62, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x64, 0x6d, 0x2e, 0x53, 0x65, + 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, + 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x15, 0x2e, 0x64, 0x6d, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x6f, 0x67, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x64, 0x6d, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x51, 0x0a, 0x16, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x4c, 0x61, + 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x2e, 0x64, 0x6d, 0x2e, 0x50, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x45, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4c, 0x6f, + 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4c, 0x6f, 0x67, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x10, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x17, 0x2e, - 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x3c, 0x0a, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x14, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x41, - 0x0a, 0x0b, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x2e, - 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x4c, 0x61, - 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x64, - 0x6d, 0x2e, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x4e, 0x0a, 0x13, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x61, 0x6e, 0x42, - 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x61, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0d, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x2e, 0x64, 0x6d, 0x2e, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, + 0x1a, 0x15, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x41, 0x0a, 0x0b, 0x73, 0x68, 0x61, 0x64, 0x6f, + 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x53, 0x68, 0x61, 0x64, 0x6f, + 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x13, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x61, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, - 0x79, 0x43, 0x61, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, - 0x70, 0x32, 0x96, 0x05, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x61, 0x63, 0x74, 0x12, 0x33, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x6e, 0x64, 0x12, 0x11, 0x2e, 0x64, 0x6d, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x64, 0x6d, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0a, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x12, 0x0f, 0x2e, 0x64, 0x6d, 0x2e, 0x52, 0x65, 0x73, - 0x70, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x64, 0x6d, 0x2e, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x0a, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x11, 0x2e, 0x64, 0x6d, 0x2e, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, - 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x54, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x6e, - 0x64, 0x12, 0x1c, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, - 0x1d, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, - 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, - 0x71, 0x1a, 0x1b, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5d, - 0x0a, 0x18, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x1f, 0x2e, 0x64, 0x6d, 0x2e, - 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x64, 0x6d, - 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, - 0x13, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x52, 0x65, 0x61, 0x64, 0x12, 0x0f, 0x2e, 0x64, 0x6d, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x65, - 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x2e, - 0x64, 0x6d, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, - 0x64, 0x6d, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, - 0x0a, 0x13, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x75, 0x6e, - 0x64, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, - 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x40, 0x0a, 0x15, 0x67, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x6e, - 0x64, 0x12, 0x1c, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, - 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x32, 0x96, 0x09, 0x0a, 0x09, 0x4f, - 0x74, 0x61, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x12, 0x41, 0x0a, 0x15, 0x6f, 0x74, 0x61, 0x46, - 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x12, 0x1c, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, - 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x12, 0x41, 0x0a, 0x15, 0x6f, - 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, - 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x12, 0x2e, - 0x0a, 0x15, 0x6f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, - 0x68, 0x49, 0x44, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x51, - 0x0a, 0x14, 0x6f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, - 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, - 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x36, 0x0a, 0x13, 0x6f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x61, 0x64, 0x12, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, - 0x74, 0x68, 0x49, 0x44, 0x1a, 0x13, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, - 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x14, 0x6f, 0x74, 0x61, - 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4a, 0x6f, 0x62, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x12, 0x16, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, - 0x72, 0x65, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, - 0x69, 0x74, 0x68, 0x49, 0x44, 0x12, 0x4e, 0x0a, 0x13, 0x6f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, - 0x77, 0x61, 0x72, 0x65, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x2e, 0x64, - 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4a, 0x6f, 0x62, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, - 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x12, 0x6f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, - 0x77, 0x61, 0x72, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x61, 0x64, 0x12, 0x0a, 0x2e, 0x64, 0x6d, - 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x1a, 0x16, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, - 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x39, 0x0a, 0x14, 0x6f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4a, 0x6f, - 0x62, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, - 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x1a, - 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x57, 0x0a, 0x16, 0x6f, 0x74, - 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, - 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, - 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, 0x17, 0x6f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, - 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x1e, - 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x09, - 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x16, 0x6f, 0x74, 0x61, - 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, - 0x74, 0x72, 0x79, 0x12, 0x1d, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, - 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x74, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x46, 0x0a, - 0x18, 0x6f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x12, 0x1f, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, - 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x13, 0x6f, 0x74, 0x61, 0x4d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x64, - 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, - 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x12, 0x33, 0x0a, 0x13, 0x6f, - 0x74, 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x12, 0x11, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x12, 0x2c, 0x0a, 0x13, 0x6f, 0x74, 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, - 0x68, 0x49, 0x44, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4b, - 0x0a, 0x12, 0x6f, 0x74, 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x4d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, - 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x11, 0x6f, - 0x74, 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x61, 0x64, - 0x12, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x43, 0x6f, 0x64, 0x65, - 0x1a, 0x11, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x32, 0xb7, 0x07, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x44, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x12, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x61, 0x76, 0x65, 0x1a, 0x09, 0x2e, - 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x44, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x53, - 0x61, 0x76, 0x65, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, - 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x61, 0x76, 0x65, 0x12, 0x3c, - 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, - 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x1a, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x12, 0x3b, 0x0a, 0x15, - 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x09, - 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x15, 0x75, 0x73, 0x65, - 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x09, - 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x1a, 0x75, 0x73, 0x65, - 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x21, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x51, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x2e, - 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, - 0x72, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x64, 0x6d, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4a, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x61, 0x64, 0x12, - 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, - 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x64, 0x6d, + 0x78, 0x12, 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x61, + 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, + 0x64, 0x6d, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x61, 0x6e, 0x42, 0x69, 0x6e, + 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x32, 0x96, 0x05, 0x0a, 0x0e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x12, 0x33, 0x0a, + 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x11, 0x2e, 0x64, 0x6d, + 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x12, + 0x2e, 0x64, 0x6d, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x64, + 0x12, 0x0f, 0x2e, 0x64, 0x6d, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, + 0x71, 0x1a, 0x12, 0x2e, 0x64, 0x6d, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x11, 0x2e, 0x64, 0x6d, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x12, 0x54, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x1c, 0x2e, 0x64, 0x6d, 0x2e, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, + 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x1a, + 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x64, 0x6d, 0x2e, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, + 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5d, 0x0a, 0x18, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, + 0x65, 0x6e, 0x64, 0x12, 0x1f, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, + 0x64, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, + 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x61, 0x64, 0x12, 0x0f, 0x2e, + 0x64, 0x6d, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1b, + 0x2e, 0x64, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x07, 0x73, + 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x53, 0x65, 0x6e, 0x64, + 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x64, 0x6d, 0x2e, 0x53, 0x65, 0x6e, 0x64, + 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x13, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x16, + 0x2e, 0x64, 0x6d, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x47, 0x65, 0x74, 0x46, 0x6f, + 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x12, 0x40, 0x0a, 0x15, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x1c, 0x2e, 0x64, 0x6d, 0x2e, + 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x42, 0x69, 0x6e, + 0x64, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x32, 0x96, 0x09, 0x0a, 0x09, 0x4f, 0x74, 0x61, 0x4d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x12, 0x41, 0x0a, 0x15, 0x6f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x64, 0x6d, 0x2e, + 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, + 0x74, 0x68, 0x49, 0x44, 0x12, 0x41, 0x0a, 0x15, 0x6f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, + 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, + 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0a, 0x2e, 0x64, 0x6d, + 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x15, 0x6f, 0x74, 0x61, 0x46, 0x69, + 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x12, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x1a, 0x09, 0x2e, 0x64, + 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x51, 0x0a, 0x14, 0x6f, 0x74, 0x61, 0x46, 0x69, + 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x1b, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x64, + 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x13, 0x6f, 0x74, + 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x61, + 0x64, 0x12, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x1a, 0x13, 0x2e, + 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x14, 0x6f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, + 0x65, 0x4a, 0x6f, 0x62, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x64, 0x6d, 0x2e, + 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4a, 0x6f, 0x62, 0x49, 0x6e, + 0x66, 0x6f, 0x1a, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x12, 0x4e, + 0x0a, 0x13, 0x6f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4a, 0x6f, 0x62, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, + 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, + 0x71, 0x1a, 0x1b, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, + 0x72, 0x65, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, + 0x0a, 0x12, 0x6f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4a, 0x6f, 0x62, + 0x52, 0x65, 0x61, 0x64, 0x12, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, + 0x1a, 0x16, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, + 0x65, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, 0x14, 0x6f, 0x74, 0x61, 0x46, + 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x4a, 0x6f, 0x62, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x12, 0x16, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, + 0x65, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x12, 0x57, 0x0a, 0x16, 0x6f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, + 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x2e, + 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x64, + 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, 0x17, + 0x6f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x1e, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, + 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x42, 0x0a, 0x16, 0x6f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, + 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x74, 0x72, 0x79, 0x12, 0x1d, 0x2e, 0x64, + 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x52, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x18, 0x6f, 0x74, 0x61, 0x46, 0x69, 0x72, + 0x6d, 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x72, 0x6d, 0x12, 0x1f, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x46, 0x69, 0x72, 0x6d, 0x77, + 0x61, 0x72, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, + 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x34, + 0x0a, 0x13, 0x6f, 0x74, 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x4d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, + 0x74, 0x68, 0x49, 0x44, 0x12, 0x33, 0x0a, 0x13, 0x6f, 0x74, 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x64, 0x6d, + 0x2e, 0x4f, 0x74, 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x09, + 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2c, 0x0a, 0x13, 0x6f, 0x74, 0x61, + 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x12, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x49, 0x44, 0x1a, 0x09, 0x2e, 0x64, + 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x12, 0x6f, 0x74, 0x61, 0x4d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x19, 0x2e, + 0x64, 0x6d, 0x2e, 0x4f, 0x74, 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, 0x74, + 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x11, 0x6f, 0x74, 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x61, 0x64, 0x12, 0x0e, 0x2e, 0x64, 0x6d, 0x2e, 0x57, + 0x69, 0x74, 0x68, 0x49, 0x44, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x11, 0x2e, 0x64, 0x6d, 0x2e, 0x4f, + 0x74, 0x61, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x32, 0xb7, 0x07, 0x0a, + 0x0a, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x44, 0x0a, 0x1c, 0x75, + 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x64, 0x6d, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x53, 0x61, 0x76, 0x65, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x12, 0x44, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x12, 0x19, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x61, 0x76, 0x65, 0x1a, 0x09, 0x2e, 0x64, + 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x64, + 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x53, 0x61, 0x76, 0x65, 0x12, 0x3c, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x12, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0a, 0x2e, 0x64, 0x6d, 0x2e, 0x57, + 0x69, 0x74, 0x68, 0x49, 0x44, 0x12, 0x3b, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, + 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, + 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x53, 0x68, 0x61, 0x72, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x15, 0x2e, 0x64, 0x6d, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x59, 0x0a, 0x1a, - 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x64, 0x6d, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x1d, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x58, 0x0a, 0x19, 0x75, 0x73, 0x65, 0x72, 0x44, - 0x65, 0x69, 0x76, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x1a, 0x1c, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, + 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x1a, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x12, 0x21, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x51, + 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, + 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x4a, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, + 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x61, 0x64, 0x12, 0x1a, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x61, + 0x64, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, + 0x12, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x12, 0x15, 0x2e, 0x64, 0x6d, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x59, 0x0a, 0x1a, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x4a, 0x0a, 0x1a, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x69, 0x76, 0x63, 0x65, 0x53, - 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x12, - 0x21, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, - 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, - 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x07, 0x5a, - 0x05, 0x70, 0x62, 0x2f, 0x64, 0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x1a, 0x1d, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x58, 0x0a, 0x19, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x69, 0x76, 0x63, 0x65, 0x53, 0x68, + 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x2e, + 0x64, 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, + 0x72, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x1c, 0x2e, 0x64, + 0x6d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, + 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4a, 0x0a, 0x1a, 0x75, 0x73, + 0x65, 0x72, 0x44, 0x65, 0x69, 0x76, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x12, 0x21, 0x2e, 0x64, 0x6d, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x09, 0x2e, 0x64, 0x6d, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x07, 0x5a, 0x05, 0x70, 0x62, 0x2f, 0x64, 0x6d, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -16554,7 +16647,7 @@ func file_proto_dm_proto_rawDescGZIP() []byte { return file_proto_dm_proto_rawDescData } -var file_proto_dm_proto_msgTypes = make([]protoimpl.MessageInfo, 206) +var file_proto_dm_proto_msgTypes = make([]protoimpl.MessageInfo, 207) var file_proto_dm_proto_goTypes = []interface{}{ (*Empty)(nil), // 0: dm.Empty (*TimeRange)(nil), // 1: dm.TimeRange @@ -16583,618 +16676,620 @@ var file_proto_dm_proto_goTypes = []interface{}{ (*UserDeviceShareMultiDeleteReq)(nil), // 24: dm.UserDeviceShareMultiDeleteReq (*UserDeviceShareInfo)(nil), // 25: dm.UserDeviceShareInfo (*SharePerm)(nil), // 26: dm.SharePerm - (*UserDeviceShareMultiInfo)(nil), // 27: dm.UserDeviceShareMultiInfo - (*UserDeviceShareMultiToken)(nil), // 28: dm.UserDeviceShareMultiToken - (*UserDeviceShareMultiAcceptReq)(nil), // 29: dm.UserDeviceShareMultiAcceptReq - (*UserDeviceCollectSave)(nil), // 30: dm.UserDeviceCollectSave - (*ProductCategory)(nil), // 31: dm.ProductCategory - (*ProductCategorySchemaIndexResp)(nil), // 32: dm.ProductCategorySchemaIndexResp - (*ProductCategorySchemaIndexReq)(nil), // 33: dm.ProductCategorySchemaIndexReq - (*ProductCategorySchemaMultiSaveReq)(nil), // 34: dm.ProductCategorySchemaMultiSaveReq - (*ProductCategoryIndexReq)(nil), // 35: dm.ProductCategoryIndexReq - (*ProductCategoryIndexResp)(nil), // 36: dm.ProductCategoryIndexResp - (*ProtocolInfoIndexReq)(nil), // 37: dm.ProtocolInfoIndexReq - (*ProtocolInfoIndexResp)(nil), // 38: dm.ProtocolInfoIndexResp - (*ProtocolInfo)(nil), // 39: dm.ProtocolInfo - (*ProtocolConfigField)(nil), // 40: dm.ProtocolConfigField - (*ProtocolConfigInfo)(nil), // 41: dm.ProtocolConfigInfo - (*ShadowIndexResp)(nil), // 42: dm.ShadowIndexResp - (*ShadowIndex)(nil), // 43: dm.ShadowIndex - (*PropertyGetReportSendReq)(nil), // 44: dm.PropertyGetReportSendReq - (*PropertyGetReportSendResp)(nil), // 45: dm.PropertyGetReportSendResp - (*PropertyLogIndexReq)(nil), // 46: dm.PropertyLogIndexReq - (*PropertyLogLatestIndexReq)(nil), // 47: dm.PropertyLogLatestIndexReq - (*PropertyLogInfo)(nil), // 48: dm.PropertyLogInfo - (*PropertyLogIndexResp)(nil), // 49: dm.PropertyLogIndexResp - (*EventLogIndexReq)(nil), // 50: dm.EventLogIndexReq - (*EventLogInfo)(nil), // 51: dm.EventLogInfo - (*EventLogIndexResp)(nil), // 52: dm.EventLogIndexResp - (*HubLogIndexReq)(nil), // 53: dm.HubLogIndexReq - (*HubLogIndexResp)(nil), // 54: dm.HubLogIndexResp - (*HubLogInfo)(nil), // 55: dm.HubLogInfo - (*StatusLogIndexReq)(nil), // 56: dm.StatusLogIndexReq - (*StatusLogIndexResp)(nil), // 57: dm.StatusLogIndexResp - (*StatusLogInfo)(nil), // 58: dm.StatusLogInfo - (*SendLogIndexReq)(nil), // 59: dm.SendLogIndexReq - (*SendLogIndexResp)(nil), // 60: dm.SendLogIndexResp - (*SendLogInfo)(nil), // 61: dm.SendLogInfo - (*SdkLogIndexReq)(nil), // 62: dm.SdkLogIndexReq - (*SdkLogIndexResp)(nil), // 63: dm.SdkLogIndexResp - (*SdkLogInfo)(nil), // 64: dm.SdkLogInfo - (*ActionSendReq)(nil), // 65: dm.ActionSendReq - (*ActionSendResp)(nil), // 66: dm.ActionSendResp - (*RespReadReq)(nil), // 67: dm.RespReadReq - (*PropertyControlSendReq)(nil), // 68: dm.PropertyControlSendReq - (*WithProfile)(nil), // 69: dm.WithProfile - (*ActionRespReq)(nil), // 70: dm.ActionRespReq - (*PropertyControlSendResp)(nil), // 71: dm.PropertyControlSendResp - (*GatewayGetFoundReq)(nil), // 72: dm.GatewayGetFoundReq - (*GatewayNotifyBindSendReq)(nil), // 73: dm.GatewayNotifyBindSendReq - (*SendMsgReq)(nil), // 74: dm.SendMsgReq - (*SendMsgResp)(nil), // 75: dm.SendMsgResp - (*PropertyControlMultiSendReq)(nil), // 76: dm.PropertyControlMultiSendReq - (*PropertyControlSendMsg)(nil), // 77: dm.PropertyControlSendMsg - (*PropertyControlMultiSendResp)(nil), // 78: dm.PropertyControlMultiSendResp - (*ProductRemoteConfig)(nil), // 79: dm.ProductRemoteConfig - (*RemoteConfigCreateReq)(nil), // 80: dm.RemoteConfigCreateReq - (*RemoteConfigIndexReq)(nil), // 81: dm.RemoteConfigIndexReq - (*RemoteConfigIndexResp)(nil), // 82: dm.RemoteConfigIndexResp - (*RemoteConfigPushAllReq)(nil), // 83: dm.RemoteConfigPushAllReq - (*RemoteConfigLastReadReq)(nil), // 84: dm.RemoteConfigLastReadReq - (*RemoteConfigLastReadResp)(nil), // 85: dm.RemoteConfigLastReadResp - (*ProductCustomReadReq)(nil), // 86: dm.ProductCustomReadReq - (*ProductCustom)(nil), // 87: dm.ProductCustom - (*CustomTopic)(nil), // 88: dm.CustomTopic - (*DeviceGatewayBindDevice)(nil), // 89: dm.DeviceGatewayBindDevice - (*DeviceGatewaySign)(nil), // 90: dm.DeviceGatewaySign - (*DeviceGatewayMultiCreateReq)(nil), // 91: dm.DeviceGatewayMultiCreateReq - (*DeviceGatewayIndexReq)(nil), // 92: dm.DeviceGatewayIndexReq - (*DeviceGatewayIndexResp)(nil), // 93: dm.DeviceGatewayIndexResp - (*DeviceGatewayMultiSaveReq)(nil), // 94: dm.DeviceGatewayMultiSaveReq - (*GatewayCanBindIndexReq)(nil), // 95: dm.GatewayCanBindIndexReq - (*GatewayCanBindIndexResp)(nil), // 96: dm.GatewayCanBindIndexResp - (*GroupInfo)(nil), // 97: dm.GroupInfo - (*GroupInfoCreateReq)(nil), // 98: dm.GroupInfoCreateReq - (*GroupInfoIndexReq)(nil), // 99: dm.GroupInfoIndexReq - (*GroupInfoIndexResp)(nil), // 100: dm.GroupInfoIndexResp - (*GroupInfoUpdateReq)(nil), // 101: dm.GroupInfoUpdateReq - (*GroupDeviceMultiSaveReq)(nil), // 102: dm.GroupDeviceMultiSaveReq - (*GroupDeviceIndexReq)(nil), // 103: dm.GroupDeviceIndexReq - (*GroupDeviceIndexResp)(nil), // 104: dm.GroupDeviceIndexResp - (*GroupDeviceMultiDeleteReq)(nil), // 105: dm.GroupDeviceMultiDeleteReq - (*Point)(nil), // 106: dm.Point - (*DeviceInfo)(nil), // 107: dm.DeviceInfo - (*ProductInfo)(nil), // 108: dm.ProductInfo - (*ProductCustomUi)(nil), // 109: dm.ProductCustomUi - (*ProductInfoDeleteReq)(nil), // 110: dm.ProductInfoDeleteReq - (*ProductInfoReadReq)(nil), // 111: dm.ProductInfoReadReq - (*ProductInfoIndexReq)(nil), // 112: dm.ProductInfoIndexReq - (*ProductInfoIndexResp)(nil), // 113: dm.ProductInfoIndexResp - (*DeviceOnlineMultiFixReq)(nil), // 114: dm.deviceOnlineMultiFixReq - (*DeviceOnlineMultiFix)(nil), // 115: dm.deviceOnlineMultiFix - (*DeviceInfoDeleteReq)(nil), // 116: dm.DeviceInfoDeleteReq - (*DeviceCore)(nil), // 117: dm.DeviceCore - (*DeviceError)(nil), // 118: dm.DeviceError - (*DeviceInfoReadReq)(nil), // 119: dm.DeviceInfoReadReq - (*DeviceInfoMultiUpdateReq)(nil), // 120: dm.DeviceInfoMultiUpdateReq - (*DeviceInfoIndexReq)(nil), // 121: dm.DeviceInfoIndexReq - (*DeviceInfoIndexResp)(nil), // 122: dm.DeviceInfoIndexResp - (*RootCheckReq)(nil), // 123: dm.RootCheckReq - (*CommonSchemaUpdateReq)(nil), // 124: dm.CommonSchemaUpdateReq - (*CommonSchemaCreateReq)(nil), // 125: dm.CommonSchemaCreateReq - (*CommonSchemaIndexReq)(nil), // 126: dm.CommonSchemaIndexReq - (*CommonSchemaIndexResp)(nil), // 127: dm.CommonSchemaIndexResp - (*CommonSchemaInfo)(nil), // 128: dm.CommonSchemaInfo - (*ProductSchemaUpdateReq)(nil), // 129: dm.ProductSchemaUpdateReq - (*ProductSchemaMultiCreateReq)(nil), // 130: dm.ProductSchemaMultiCreateReq - (*ProductSchemaCreateReq)(nil), // 131: dm.ProductSchemaCreateReq - (*ProductSchemaDeleteReq)(nil), // 132: dm.ProductSchemaDeleteReq - (*ProductSchemaIndexReq)(nil), // 133: dm.ProductSchemaIndexReq - (*ProductSchemaIndexResp)(nil), // 134: dm.ProductSchemaIndexResp - (*ProductSchemaInfo)(nil), // 135: dm.ProductSchemaInfo - (*ProductSchemaTslImportReq)(nil), // 136: dm.ProductSchemaTslImportReq - (*ProductSchemaTslReadReq)(nil), // 137: dm.ProductSchemaTslReadReq - (*ProductSchemaTslReadResp)(nil), // 138: dm.ProductSchemaTslReadResp - (*DeviceProfile)(nil), // 139: dm.DeviceProfile - (*DeviceProfileReadReq)(nil), // 140: dm.DeviceProfileReadReq - (*DeviceInfoCanBindReq)(nil), // 141: dm.DeviceInfoCanBindReq - (*DeviceInfoMultiBindReq)(nil), // 142: dm.DeviceInfoMultiBindReq - (*DeviceInfoMultiBindResp)(nil), // 143: dm.DeviceInfoMultiBindResp - (*DeviceInfoBindReq)(nil), // 144: dm.DeviceInfoBindReq - (*DeviceProfileIndexReq)(nil), // 145: dm.DeviceProfileIndexReq - (*DeviceProfileIndexResp)(nil), // 146: dm.DeviceProfileIndexResp - (*DeviceCountReq)(nil), // 147: dm.DeviceCountReq - (*DeviceCountResp)(nil), // 148: dm.DeviceCountResp - (*DeviceCountInfo)(nil), // 149: dm.DeviceCountInfo - (*DeviceInfoCountReq)(nil), // 150: dm.DeviceInfoCountReq - (*DeviceTypeCountReq)(nil), // 151: dm.DeviceTypeCountReq - (*DeviceInfoCount)(nil), // 152: dm.DeviceInfoCount - (*DeviceTypeCountResp)(nil), // 153: dm.DeviceTypeCountResp - (*Firmware)(nil), // 154: dm.Firmware - (*FirmwareResp)(nil), // 155: dm.FirmwareResp - (*FirmwareInfo)(nil), // 156: dm.FirmwareInfo - (*OtaFirmwareFile)(nil), // 157: dm.OtaFirmwareFile - (*FirmwareInfoDeleteReq)(nil), // 158: dm.FirmwareInfoDeleteReq - (*FirmwareInfoDeleteResp)(nil), // 159: dm.FirmwareInfoDeleteResp - (*FirmwareInfoIndexReq)(nil), // 160: dm.FirmwareInfoIndexReq - (*FirmwareInfoIndexResp)(nil), // 161: dm.FirmwareInfoIndexResp - (*FirmwareInfoReadReq)(nil), // 162: dm.FirmwareInfoReadReq - (*OtaFirmwareFileReq)(nil), // 163: dm.OtaFirmwareFileReq - (*OtaFirmwareFileInfo)(nil), // 164: dm.OtaFirmwareFileInfo - (*OtaFirmwareFileResp)(nil), // 165: dm.OtaFirmwareFileResp - (*OtaFirmwareFileIndexReq)(nil), // 166: dm.OtaFirmwareFileIndexReq - (*OtaFirmwareFileIndexResp)(nil), // 167: dm.OtaFirmwareFileIndexResp - (*FirmwareInfoReadResp)(nil), // 168: dm.FirmwareInfoReadResp - (*FirmwareFile)(nil), // 169: dm.FirmwareFile - (*OtaFirmwareInfoCreateReq)(nil), // 170: dm.OtaFirmwareInfoCreateReq - (*OtaFirmwareInfoUpdateReq)(nil), // 171: dm.OtaFirmwareInfoUpdateReq - (*OtaFirmwareInfoIndexReq)(nil), // 172: dm.OtaFirmwareInfoIndexReq - (*OtaFirmwareInfoIndexResp)(nil), // 173: dm.OtaFirmwareInfoIndexResp - (*OtaFirmwareInfo)(nil), // 174: dm.OtaFirmwareInfo - (*OtaFirmwareJobInfo)(nil), // 175: dm.OtaFirmwareJobInfo - (*OtaJobDynamicInfo)(nil), // 176: dm.OtaJobDynamicInfo - (*OtaJobStaticInfo)(nil), // 177: dm.OtaJobStaticInfo - (*OtaFirmwareJobIndexReq)(nil), // 178: dm.OtaFirmwareJobIndexReq - (*OtaFirmwareJobIndexResp)(nil), // 179: dm.OtaFirmwareJobIndexResp - (*OtaJobByDeviceIndexReq)(nil), // 180: dm.OtaJobByDeviceIndexReq - (*OtaFirmwareDeviceIndexReq)(nil), // 181: dm.OtaFirmwareDeviceIndexReq - (*OtaFirmwareDeviceInfo)(nil), // 182: dm.OtaFirmwareDeviceInfo - (*OtaFirmwareDeviceIndexResp)(nil), // 183: dm.OtaFirmwareDeviceIndexResp - (*OtaFirmwareDeviceCancelReq)(nil), // 184: dm.OtaFirmwareDeviceCancelReq - (*OtaFirmwareDeviceRetryReq)(nil), // 185: dm.OtaFirmwareDeviceRetryReq - (*OtaFirmwareDeviceConfirmReq)(nil), // 186: dm.OtaFirmwareDeviceConfirmReq - (*PageInfo_OrderBy)(nil), // 187: dm.PageInfo.OrderBy - nil, // 188: dm.UserDeviceShareInfo.SchemaPermEntry - nil, // 189: dm.UserDeviceShareInfo.AccessPermEntry - nil, // 190: dm.UserDeviceShareMultiInfo.SchemaPermEntry - nil, // 191: dm.UserDeviceShareMultiInfo.AccessPermEntry - nil, // 192: dm.ProtocolConfigInfo.ConfigEntry - nil, // 193: dm.GroupInfo.TagsEntry - nil, // 194: dm.GroupInfoIndexReq.TagsEntry - nil, // 195: dm.GroupInfoUpdateReq.TagsEntry - nil, // 196: dm.DeviceInfo.TagsEntry - nil, // 197: dm.DeviceInfo.SchemaAliasEntry - nil, // 198: dm.DeviceInfo.ProtocolConfEntry - nil, // 199: dm.ProductInfo.TagsEntry - nil, // 200: dm.ProductInfo.ProtocolConfEntry - nil, // 201: dm.ProductInfo.CustomUiEntry - nil, // 202: dm.ProductInfoIndexReq.TagsEntry - nil, // 203: dm.ProductInfoIndexReq.ProtocolConfEntry - nil, // 204: dm.DeviceInfoIndexReq.TagsEntry - nil, // 205: dm.DeviceCountInfo.CountEntry - (*wrapperspb.Int64Value)(nil), // 206: google.protobuf.Int64Value - (*wrapperspb.StringValue)(nil), // 207: google.protobuf.StringValue + (*DeviceShareInfo)(nil), // 27: dm.DeviceShareInfo + (*UserDeviceShareMultiInfo)(nil), // 28: dm.UserDeviceShareMultiInfo + (*UserDeviceShareMultiToken)(nil), // 29: dm.UserDeviceShareMultiToken + (*UserDeviceShareMultiAcceptReq)(nil), // 30: dm.UserDeviceShareMultiAcceptReq + (*UserDeviceCollectSave)(nil), // 31: dm.UserDeviceCollectSave + (*ProductCategory)(nil), // 32: dm.ProductCategory + (*ProductCategorySchemaIndexResp)(nil), // 33: dm.ProductCategorySchemaIndexResp + (*ProductCategorySchemaIndexReq)(nil), // 34: dm.ProductCategorySchemaIndexReq + (*ProductCategorySchemaMultiSaveReq)(nil), // 35: dm.ProductCategorySchemaMultiSaveReq + (*ProductCategoryIndexReq)(nil), // 36: dm.ProductCategoryIndexReq + (*ProductCategoryIndexResp)(nil), // 37: dm.ProductCategoryIndexResp + (*ProtocolInfoIndexReq)(nil), // 38: dm.ProtocolInfoIndexReq + (*ProtocolInfoIndexResp)(nil), // 39: dm.ProtocolInfoIndexResp + (*ProtocolInfo)(nil), // 40: dm.ProtocolInfo + (*ProtocolConfigField)(nil), // 41: dm.ProtocolConfigField + (*ProtocolConfigInfo)(nil), // 42: dm.ProtocolConfigInfo + (*ShadowIndexResp)(nil), // 43: dm.ShadowIndexResp + (*ShadowIndex)(nil), // 44: dm.ShadowIndex + (*PropertyGetReportSendReq)(nil), // 45: dm.PropertyGetReportSendReq + (*PropertyGetReportSendResp)(nil), // 46: dm.PropertyGetReportSendResp + (*PropertyLogIndexReq)(nil), // 47: dm.PropertyLogIndexReq + (*PropertyLogLatestIndexReq)(nil), // 48: dm.PropertyLogLatestIndexReq + (*PropertyLogInfo)(nil), // 49: dm.PropertyLogInfo + (*PropertyLogIndexResp)(nil), // 50: dm.PropertyLogIndexResp + (*EventLogIndexReq)(nil), // 51: dm.EventLogIndexReq + (*EventLogInfo)(nil), // 52: dm.EventLogInfo + (*EventLogIndexResp)(nil), // 53: dm.EventLogIndexResp + (*HubLogIndexReq)(nil), // 54: dm.HubLogIndexReq + (*HubLogIndexResp)(nil), // 55: dm.HubLogIndexResp + (*HubLogInfo)(nil), // 56: dm.HubLogInfo + (*StatusLogIndexReq)(nil), // 57: dm.StatusLogIndexReq + (*StatusLogIndexResp)(nil), // 58: dm.StatusLogIndexResp + (*StatusLogInfo)(nil), // 59: dm.StatusLogInfo + (*SendLogIndexReq)(nil), // 60: dm.SendLogIndexReq + (*SendLogIndexResp)(nil), // 61: dm.SendLogIndexResp + (*SendLogInfo)(nil), // 62: dm.SendLogInfo + (*SdkLogIndexReq)(nil), // 63: dm.SdkLogIndexReq + (*SdkLogIndexResp)(nil), // 64: dm.SdkLogIndexResp + (*SdkLogInfo)(nil), // 65: dm.SdkLogInfo + (*ActionSendReq)(nil), // 66: dm.ActionSendReq + (*ActionSendResp)(nil), // 67: dm.ActionSendResp + (*RespReadReq)(nil), // 68: dm.RespReadReq + (*PropertyControlSendReq)(nil), // 69: dm.PropertyControlSendReq + (*WithProfile)(nil), // 70: dm.WithProfile + (*ActionRespReq)(nil), // 71: dm.ActionRespReq + (*PropertyControlSendResp)(nil), // 72: dm.PropertyControlSendResp + (*GatewayGetFoundReq)(nil), // 73: dm.GatewayGetFoundReq + (*GatewayNotifyBindSendReq)(nil), // 74: dm.GatewayNotifyBindSendReq + (*SendMsgReq)(nil), // 75: dm.SendMsgReq + (*SendMsgResp)(nil), // 76: dm.SendMsgResp + (*PropertyControlMultiSendReq)(nil), // 77: dm.PropertyControlMultiSendReq + (*PropertyControlSendMsg)(nil), // 78: dm.PropertyControlSendMsg + (*PropertyControlMultiSendResp)(nil), // 79: dm.PropertyControlMultiSendResp + (*ProductRemoteConfig)(nil), // 80: dm.ProductRemoteConfig + (*RemoteConfigCreateReq)(nil), // 81: dm.RemoteConfigCreateReq + (*RemoteConfigIndexReq)(nil), // 82: dm.RemoteConfigIndexReq + (*RemoteConfigIndexResp)(nil), // 83: dm.RemoteConfigIndexResp + (*RemoteConfigPushAllReq)(nil), // 84: dm.RemoteConfigPushAllReq + (*RemoteConfigLastReadReq)(nil), // 85: dm.RemoteConfigLastReadReq + (*RemoteConfigLastReadResp)(nil), // 86: dm.RemoteConfigLastReadResp + (*ProductCustomReadReq)(nil), // 87: dm.ProductCustomReadReq + (*ProductCustom)(nil), // 88: dm.ProductCustom + (*CustomTopic)(nil), // 89: dm.CustomTopic + (*DeviceGatewayBindDevice)(nil), // 90: dm.DeviceGatewayBindDevice + (*DeviceGatewaySign)(nil), // 91: dm.DeviceGatewaySign + (*DeviceGatewayMultiCreateReq)(nil), // 92: dm.DeviceGatewayMultiCreateReq + (*DeviceGatewayIndexReq)(nil), // 93: dm.DeviceGatewayIndexReq + (*DeviceGatewayIndexResp)(nil), // 94: dm.DeviceGatewayIndexResp + (*DeviceGatewayMultiSaveReq)(nil), // 95: dm.DeviceGatewayMultiSaveReq + (*GatewayCanBindIndexReq)(nil), // 96: dm.GatewayCanBindIndexReq + (*GatewayCanBindIndexResp)(nil), // 97: dm.GatewayCanBindIndexResp + (*GroupInfo)(nil), // 98: dm.GroupInfo + (*GroupInfoCreateReq)(nil), // 99: dm.GroupInfoCreateReq + (*GroupInfoIndexReq)(nil), // 100: dm.GroupInfoIndexReq + (*GroupInfoIndexResp)(nil), // 101: dm.GroupInfoIndexResp + (*GroupInfoUpdateReq)(nil), // 102: dm.GroupInfoUpdateReq + (*GroupDeviceMultiSaveReq)(nil), // 103: dm.GroupDeviceMultiSaveReq + (*GroupDeviceIndexReq)(nil), // 104: dm.GroupDeviceIndexReq + (*GroupDeviceIndexResp)(nil), // 105: dm.GroupDeviceIndexResp + (*GroupDeviceMultiDeleteReq)(nil), // 106: dm.GroupDeviceMultiDeleteReq + (*Point)(nil), // 107: dm.Point + (*DeviceInfo)(nil), // 108: dm.DeviceInfo + (*ProductInfo)(nil), // 109: dm.ProductInfo + (*ProductCustomUi)(nil), // 110: dm.ProductCustomUi + (*ProductInfoDeleteReq)(nil), // 111: dm.ProductInfoDeleteReq + (*ProductInfoReadReq)(nil), // 112: dm.ProductInfoReadReq + (*ProductInfoIndexReq)(nil), // 113: dm.ProductInfoIndexReq + (*ProductInfoIndexResp)(nil), // 114: dm.ProductInfoIndexResp + (*DeviceOnlineMultiFixReq)(nil), // 115: dm.deviceOnlineMultiFixReq + (*DeviceOnlineMultiFix)(nil), // 116: dm.deviceOnlineMultiFix + (*DeviceInfoDeleteReq)(nil), // 117: dm.DeviceInfoDeleteReq + (*DeviceCore)(nil), // 118: dm.DeviceCore + (*DeviceError)(nil), // 119: dm.DeviceError + (*DeviceInfoReadReq)(nil), // 120: dm.DeviceInfoReadReq + (*DeviceInfoMultiUpdateReq)(nil), // 121: dm.DeviceInfoMultiUpdateReq + (*DeviceInfoIndexReq)(nil), // 122: dm.DeviceInfoIndexReq + (*DeviceInfoIndexResp)(nil), // 123: dm.DeviceInfoIndexResp + (*RootCheckReq)(nil), // 124: dm.RootCheckReq + (*CommonSchemaUpdateReq)(nil), // 125: dm.CommonSchemaUpdateReq + (*CommonSchemaCreateReq)(nil), // 126: dm.CommonSchemaCreateReq + (*CommonSchemaIndexReq)(nil), // 127: dm.CommonSchemaIndexReq + (*CommonSchemaIndexResp)(nil), // 128: dm.CommonSchemaIndexResp + (*CommonSchemaInfo)(nil), // 129: dm.CommonSchemaInfo + (*ProductSchemaUpdateReq)(nil), // 130: dm.ProductSchemaUpdateReq + (*ProductSchemaMultiCreateReq)(nil), // 131: dm.ProductSchemaMultiCreateReq + (*ProductSchemaCreateReq)(nil), // 132: dm.ProductSchemaCreateReq + (*ProductSchemaDeleteReq)(nil), // 133: dm.ProductSchemaDeleteReq + (*ProductSchemaIndexReq)(nil), // 134: dm.ProductSchemaIndexReq + (*ProductSchemaIndexResp)(nil), // 135: dm.ProductSchemaIndexResp + (*ProductSchemaInfo)(nil), // 136: dm.ProductSchemaInfo + (*ProductSchemaTslImportReq)(nil), // 137: dm.ProductSchemaTslImportReq + (*ProductSchemaTslReadReq)(nil), // 138: dm.ProductSchemaTslReadReq + (*ProductSchemaTslReadResp)(nil), // 139: dm.ProductSchemaTslReadResp + (*DeviceProfile)(nil), // 140: dm.DeviceProfile + (*DeviceProfileReadReq)(nil), // 141: dm.DeviceProfileReadReq + (*DeviceInfoCanBindReq)(nil), // 142: dm.DeviceInfoCanBindReq + (*DeviceInfoMultiBindReq)(nil), // 143: dm.DeviceInfoMultiBindReq + (*DeviceInfoMultiBindResp)(nil), // 144: dm.DeviceInfoMultiBindResp + (*DeviceInfoBindReq)(nil), // 145: dm.DeviceInfoBindReq + (*DeviceProfileIndexReq)(nil), // 146: dm.DeviceProfileIndexReq + (*DeviceProfileIndexResp)(nil), // 147: dm.DeviceProfileIndexResp + (*DeviceCountReq)(nil), // 148: dm.DeviceCountReq + (*DeviceCountResp)(nil), // 149: dm.DeviceCountResp + (*DeviceCountInfo)(nil), // 150: dm.DeviceCountInfo + (*DeviceInfoCountReq)(nil), // 151: dm.DeviceInfoCountReq + (*DeviceTypeCountReq)(nil), // 152: dm.DeviceTypeCountReq + (*DeviceInfoCount)(nil), // 153: dm.DeviceInfoCount + (*DeviceTypeCountResp)(nil), // 154: dm.DeviceTypeCountResp + (*Firmware)(nil), // 155: dm.Firmware + (*FirmwareResp)(nil), // 156: dm.FirmwareResp + (*FirmwareInfo)(nil), // 157: dm.FirmwareInfo + (*OtaFirmwareFile)(nil), // 158: dm.OtaFirmwareFile + (*FirmwareInfoDeleteReq)(nil), // 159: dm.FirmwareInfoDeleteReq + (*FirmwareInfoDeleteResp)(nil), // 160: dm.FirmwareInfoDeleteResp + (*FirmwareInfoIndexReq)(nil), // 161: dm.FirmwareInfoIndexReq + (*FirmwareInfoIndexResp)(nil), // 162: dm.FirmwareInfoIndexResp + (*FirmwareInfoReadReq)(nil), // 163: dm.FirmwareInfoReadReq + (*OtaFirmwareFileReq)(nil), // 164: dm.OtaFirmwareFileReq + (*OtaFirmwareFileInfo)(nil), // 165: dm.OtaFirmwareFileInfo + (*OtaFirmwareFileResp)(nil), // 166: dm.OtaFirmwareFileResp + (*OtaFirmwareFileIndexReq)(nil), // 167: dm.OtaFirmwareFileIndexReq + (*OtaFirmwareFileIndexResp)(nil), // 168: dm.OtaFirmwareFileIndexResp + (*FirmwareInfoReadResp)(nil), // 169: dm.FirmwareInfoReadResp + (*FirmwareFile)(nil), // 170: dm.FirmwareFile + (*OtaFirmwareInfoCreateReq)(nil), // 171: dm.OtaFirmwareInfoCreateReq + (*OtaFirmwareInfoUpdateReq)(nil), // 172: dm.OtaFirmwareInfoUpdateReq + (*OtaFirmwareInfoIndexReq)(nil), // 173: dm.OtaFirmwareInfoIndexReq + (*OtaFirmwareInfoIndexResp)(nil), // 174: dm.OtaFirmwareInfoIndexResp + (*OtaFirmwareInfo)(nil), // 175: dm.OtaFirmwareInfo + (*OtaFirmwareJobInfo)(nil), // 176: dm.OtaFirmwareJobInfo + (*OtaJobDynamicInfo)(nil), // 177: dm.OtaJobDynamicInfo + (*OtaJobStaticInfo)(nil), // 178: dm.OtaJobStaticInfo + (*OtaFirmwareJobIndexReq)(nil), // 179: dm.OtaFirmwareJobIndexReq + (*OtaFirmwareJobIndexResp)(nil), // 180: dm.OtaFirmwareJobIndexResp + (*OtaJobByDeviceIndexReq)(nil), // 181: dm.OtaJobByDeviceIndexReq + (*OtaFirmwareDeviceIndexReq)(nil), // 182: dm.OtaFirmwareDeviceIndexReq + (*OtaFirmwareDeviceInfo)(nil), // 183: dm.OtaFirmwareDeviceInfo + (*OtaFirmwareDeviceIndexResp)(nil), // 184: dm.OtaFirmwareDeviceIndexResp + (*OtaFirmwareDeviceCancelReq)(nil), // 185: dm.OtaFirmwareDeviceCancelReq + (*OtaFirmwareDeviceRetryReq)(nil), // 186: dm.OtaFirmwareDeviceRetryReq + (*OtaFirmwareDeviceConfirmReq)(nil), // 187: dm.OtaFirmwareDeviceConfirmReq + (*PageInfo_OrderBy)(nil), // 188: dm.PageInfo.OrderBy + nil, // 189: dm.UserDeviceShareInfo.SchemaPermEntry + nil, // 190: dm.UserDeviceShareInfo.AccessPermEntry + nil, // 191: dm.UserDeviceShareMultiInfo.SchemaPermEntry + nil, // 192: dm.UserDeviceShareMultiInfo.AccessPermEntry + nil, // 193: dm.ProtocolConfigInfo.ConfigEntry + nil, // 194: dm.GroupInfo.TagsEntry + nil, // 195: dm.GroupInfoIndexReq.TagsEntry + nil, // 196: dm.GroupInfoUpdateReq.TagsEntry + nil, // 197: dm.DeviceInfo.TagsEntry + nil, // 198: dm.DeviceInfo.SchemaAliasEntry + nil, // 199: dm.DeviceInfo.ProtocolConfEntry + nil, // 200: dm.ProductInfo.TagsEntry + nil, // 201: dm.ProductInfo.ProtocolConfEntry + nil, // 202: dm.ProductInfo.CustomUiEntry + nil, // 203: dm.ProductInfoIndexReq.TagsEntry + nil, // 204: dm.ProductInfoIndexReq.ProtocolConfEntry + nil, // 205: dm.DeviceInfoIndexReq.TagsEntry + nil, // 206: dm.DeviceCountInfo.CountEntry + (*wrapperspb.Int64Value)(nil), // 207: google.protobuf.Int64Value + (*wrapperspb.StringValue)(nil), // 208: google.protobuf.StringValue } var file_proto_dm_proto_depIdxs = []int32{ - 187, // 0: dm.PageInfo.orders:type_name -> dm.PageInfo.OrderBy + 188, // 0: dm.PageInfo.orders:type_name -> dm.PageInfo.OrderBy 2, // 1: dm.OtaModuleInfoIndexReq.page:type_name -> dm.PageInfo 13, // 2: dm.OtaModuleInfoIndexResp.list:type_name -> dm.OtaModuleInfo 2, // 3: dm.DeviceModuleVersionIndexReq.page:type_name -> dm.PageInfo 16, // 4: dm.DeviceModuleVersionIndexResp.list:type_name -> dm.DeviceModuleVersion - 117, // 5: dm.DeviceMoveReq.old:type_name -> dm.DeviceCore - 117, // 6: dm.DeviceMoveReq.new:type_name -> dm.DeviceCore - 117, // 7: dm.DeviceTransferReq.device:type_name -> dm.DeviceCore - 117, // 8: dm.DeviceTransferReq.devices:type_name -> dm.DeviceCore - 117, // 9: dm.UserDeviceShareReadReq.device:type_name -> dm.DeviceCore + 118, // 5: dm.DeviceMoveReq.old:type_name -> dm.DeviceCore + 118, // 6: dm.DeviceMoveReq.new:type_name -> dm.DeviceCore + 118, // 7: dm.DeviceTransferReq.device:type_name -> dm.DeviceCore + 118, // 8: dm.DeviceTransferReq.devices:type_name -> dm.DeviceCore + 118, // 9: dm.UserDeviceShareReadReq.device:type_name -> dm.DeviceCore 2, // 10: dm.UserDeviceShareIndexReq.page:type_name -> dm.PageInfo - 117, // 11: dm.UserDeviceShareIndexReq.device:type_name -> dm.DeviceCore + 118, // 11: dm.UserDeviceShareIndexReq.device:type_name -> dm.DeviceCore 25, // 12: dm.UserDeviceShareIndexResp.list:type_name -> dm.UserDeviceShareInfo - 117, // 13: dm.UserDeviceShareInfo.device:type_name -> dm.DeviceCore - 188, // 14: dm.UserDeviceShareInfo.schemaPerm:type_name -> dm.UserDeviceShareInfo.SchemaPermEntry - 189, // 15: dm.UserDeviceShareInfo.accessPerm:type_name -> dm.UserDeviceShareInfo.AccessPermEntry - 206, // 16: dm.UserDeviceShareInfo.expTime:type_name -> google.protobuf.Int64Value - 117, // 17: dm.UserDeviceShareMultiInfo.devices:type_name -> dm.DeviceCore - 190, // 18: dm.UserDeviceShareMultiInfo.schemaPerm:type_name -> dm.UserDeviceShareMultiInfo.SchemaPermEntry - 191, // 19: dm.UserDeviceShareMultiInfo.accessPerm:type_name -> dm.UserDeviceShareMultiInfo.AccessPermEntry - 117, // 20: dm.UserDeviceShareMultiAcceptReq.devices:type_name -> dm.DeviceCore - 117, // 21: dm.UserDeviceCollectSave.devices:type_name -> dm.DeviceCore - 207, // 22: dm.ProductCategory.desc:type_name -> google.protobuf.StringValue - 31, // 23: dm.ProductCategory.children:type_name -> dm.ProductCategory - 2, // 24: dm.ProductCategoryIndexReq.page:type_name -> dm.PageInfo - 31, // 25: dm.ProductCategoryIndexResp.list:type_name -> dm.ProductCategory - 2, // 26: dm.ProtocolInfoIndexReq.page:type_name -> dm.PageInfo - 39, // 27: dm.ProtocolInfoIndexResp.list:type_name -> dm.ProtocolInfo - 40, // 28: dm.ProtocolInfo.configFields:type_name -> dm.ProtocolConfigField - 41, // 29: dm.ProtocolInfo.configInfos:type_name -> dm.ProtocolConfigInfo - 192, // 30: dm.ProtocolConfigInfo.config:type_name -> dm.ProtocolConfigInfo.ConfigEntry - 43, // 31: dm.ShadowIndexResp.list:type_name -> dm.ShadowIndex - 2, // 32: dm.PropertyLogIndexReq.page:type_name -> dm.PageInfo - 48, // 33: dm.PropertyLogIndexResp.list:type_name -> dm.PropertyLogInfo - 2, // 34: dm.EventLogIndexReq.page:type_name -> dm.PageInfo - 51, // 35: dm.EventLogIndexResp.list:type_name -> dm.EventLogInfo - 2, // 36: dm.HubLogIndexReq.page:type_name -> dm.PageInfo - 55, // 37: dm.HubLogIndexResp.list:type_name -> dm.HubLogInfo - 2, // 38: dm.StatusLogIndexReq.page:type_name -> dm.PageInfo - 58, // 39: dm.StatusLogIndexResp.list:type_name -> dm.StatusLogInfo - 2, // 40: dm.SendLogIndexReq.page:type_name -> dm.PageInfo - 61, // 41: dm.SendLogIndexResp.list:type_name -> dm.SendLogInfo - 2, // 42: dm.SdkLogIndexReq.page:type_name -> dm.PageInfo - 64, // 43: dm.SdkLogIndexResp.list:type_name -> dm.SdkLogInfo - 5, // 44: dm.ActionSendReq.option:type_name -> dm.SendOption - 69, // 45: dm.PropertyControlSendReq.withProfile:type_name -> dm.WithProfile - 117, // 46: dm.GatewayNotifyBindSendReq.gateway:type_name -> dm.DeviceCore - 117, // 47: dm.GatewayNotifyBindSendReq.subDevices:type_name -> dm.DeviceCore - 117, // 48: dm.PropertyControlMultiSendReq.devices:type_name -> dm.DeviceCore - 77, // 49: dm.PropertyControlMultiSendResp.list:type_name -> dm.PropertyControlSendMsg - 2, // 50: dm.RemoteConfigIndexReq.page:type_name -> dm.PageInfo - 79, // 51: dm.RemoteConfigIndexResp.list:type_name -> dm.ProductRemoteConfig - 79, // 52: dm.RemoteConfigLastReadResp.info:type_name -> dm.ProductRemoteConfig - 207, // 53: dm.ProductCustom.transformScript:type_name -> google.protobuf.StringValue - 207, // 54: dm.ProductCustom.loginAuthScript:type_name -> google.protobuf.StringValue - 88, // 55: dm.ProductCustom.customTopics:type_name -> dm.CustomTopic - 90, // 56: dm.DeviceGatewayBindDevice.sign:type_name -> dm.DeviceGatewaySign - 117, // 57: dm.DeviceGatewayMultiCreateReq.gateway:type_name -> dm.DeviceCore - 89, // 58: dm.DeviceGatewayMultiCreateReq.list:type_name -> dm.DeviceGatewayBindDevice - 2, // 59: dm.DeviceGatewayIndexReq.page:type_name -> dm.PageInfo - 117, // 60: dm.DeviceGatewayIndexReq.gateway:type_name -> dm.DeviceCore - 117, // 61: dm.DeviceGatewayIndexReq.subDevice:type_name -> dm.DeviceCore - 117, // 62: dm.DeviceGatewayIndexResp.list:type_name -> dm.DeviceCore - 117, // 63: dm.DeviceGatewayMultiSaveReq.gateway:type_name -> dm.DeviceCore - 117, // 64: dm.DeviceGatewayMultiSaveReq.list:type_name -> dm.DeviceCore - 117, // 65: dm.GatewayCanBindIndexReq.gateway:type_name -> dm.DeviceCore - 117, // 66: dm.GatewayCanBindIndexResp.subDevices:type_name -> dm.DeviceCore - 193, // 67: dm.GroupInfo.tags:type_name -> dm.GroupInfo.TagsEntry - 117, // 68: dm.GroupInfo.devices:type_name -> dm.DeviceCore - 97, // 69: dm.GroupInfo.children:type_name -> dm.GroupInfo - 2, // 70: dm.GroupInfoIndexReq.page:type_name -> dm.PageInfo - 194, // 71: dm.GroupInfoIndexReq.tags:type_name -> dm.GroupInfoIndexReq.TagsEntry - 97, // 72: dm.GroupInfoIndexResp.list:type_name -> dm.GroupInfo - 195, // 73: dm.GroupInfoUpdateReq.tags:type_name -> dm.GroupInfoUpdateReq.TagsEntry - 117, // 74: dm.GroupDeviceMultiSaveReq.list:type_name -> dm.DeviceCore - 2, // 75: dm.GroupDeviceIndexReq.page:type_name -> dm.PageInfo - 107, // 76: dm.GroupDeviceIndexResp.list:type_name -> dm.DeviceInfo - 117, // 77: dm.GroupDeviceMultiDeleteReq.list:type_name -> dm.DeviceCore - 207, // 78: dm.DeviceInfo.version:type_name -> google.protobuf.StringValue - 106, // 79: dm.DeviceInfo.Position:type_name -> dm.Point - 207, // 80: dm.DeviceInfo.address:type_name -> google.protobuf.StringValue - 207, // 81: dm.DeviceInfo.adcode:type_name -> google.protobuf.StringValue - 196, // 82: dm.DeviceInfo.tags:type_name -> dm.DeviceInfo.TagsEntry - 207, // 83: dm.DeviceInfo.deviceAlias:type_name -> google.protobuf.StringValue - 207, // 84: dm.DeviceInfo.phone:type_name -> google.protobuf.StringValue - 207, // 85: dm.DeviceInfo.iccid:type_name -> google.protobuf.StringValue - 197, // 86: dm.DeviceInfo.schemaAlias:type_name -> dm.DeviceInfo.SchemaAliasEntry - 206, // 87: dm.DeviceInfo.rssi:type_name -> google.protobuf.Int64Value - 198, // 88: dm.DeviceInfo.protocolConf:type_name -> dm.DeviceInfo.ProtocolConfEntry - 10, // 89: dm.DeviceInfo.distributor:type_name -> dm.IDPathWithUpdate - 206, // 90: dm.DeviceInfo.expTime:type_name -> google.protobuf.Int64Value - 107, // 91: dm.DeviceInfo.Gateway:type_name -> dm.DeviceInfo - 207, // 92: dm.ProductInfo.desc:type_name -> google.protobuf.StringValue - 199, // 93: dm.ProductInfo.tags:type_name -> dm.ProductInfo.TagsEntry - 39, // 94: dm.ProductInfo.protocol:type_name -> dm.ProtocolInfo - 31, // 95: dm.ProductInfo.category:type_name -> dm.ProductCategory - 200, // 96: dm.ProductInfo.protocolConf:type_name -> dm.ProductInfo.ProtocolConfEntry - 206, // 97: dm.ProductInfo.trialTime:type_name -> google.protobuf.Int64Value - 201, // 98: dm.ProductInfo.customUi:type_name -> dm.ProductInfo.CustomUiEntry - 2, // 99: dm.ProductInfoIndexReq.page:type_name -> dm.PageInfo - 202, // 100: dm.ProductInfoIndexReq.tags:type_name -> dm.ProductInfoIndexReq.TagsEntry - 203, // 101: dm.ProductInfoIndexReq.protocolConf:type_name -> dm.ProductInfoIndexReq.ProtocolConfEntry - 108, // 102: dm.ProductInfoIndexResp.list:type_name -> dm.ProductInfo - 115, // 103: dm.deviceOnlineMultiFixReq.devices:type_name -> dm.deviceOnlineMultiFix - 117, // 104: dm.deviceOnlineMultiFix.device:type_name -> dm.DeviceCore - 117, // 105: dm.DeviceInfoMultiUpdateReq.devices:type_name -> dm.DeviceCore - 4, // 106: dm.DeviceInfoMultiUpdateReq.FilterDistributorID:type_name -> dm.CompareInt64 - 9, // 107: dm.DeviceInfoMultiUpdateReq.distributor:type_name -> dm.IDPath - 2, // 108: dm.DeviceInfoIndexReq.page:type_name -> dm.PageInfo - 204, // 109: dm.DeviceInfoIndexReq.tags:type_name -> dm.DeviceInfoIndexReq.TagsEntry - 106, // 110: dm.DeviceInfoIndexReq.Position:type_name -> dm.Point - 117, // 111: dm.DeviceInfoIndexReq.devices:type_name -> dm.DeviceCore - 117, // 112: dm.DeviceInfoIndexReq.gateway:type_name -> dm.DeviceCore - 9, // 113: dm.DeviceInfoIndexReq.distributor:type_name -> dm.IDPath - 4, // 114: dm.DeviceInfoIndexReq.ratedPower:type_name -> dm.CompareInt64 - 4, // 115: dm.DeviceInfoIndexReq.expTime:type_name -> dm.CompareInt64 - 107, // 116: dm.DeviceInfoIndexResp.list:type_name -> dm.DeviceInfo - 128, // 117: dm.CommonSchemaUpdateReq.info:type_name -> dm.CommonSchemaInfo - 128, // 118: dm.CommonSchemaCreateReq.info:type_name -> dm.CommonSchemaInfo - 2, // 119: dm.CommonSchemaIndexReq.page:type_name -> dm.PageInfo - 128, // 120: dm.CommonSchemaIndexResp.list:type_name -> dm.CommonSchemaInfo - 207, // 121: dm.CommonSchemaInfo.name:type_name -> google.protobuf.StringValue - 207, // 122: dm.CommonSchemaInfo.desc:type_name -> google.protobuf.StringValue - 207, // 123: dm.CommonSchemaInfo.affordance:type_name -> google.protobuf.StringValue - 31, // 124: dm.CommonSchemaInfo.productCategories:type_name -> dm.ProductCategory - 135, // 125: dm.ProductSchemaUpdateReq.info:type_name -> dm.ProductSchemaInfo - 135, // 126: dm.ProductSchemaMultiCreateReq.list:type_name -> dm.ProductSchemaInfo - 135, // 127: dm.ProductSchemaCreateReq.info:type_name -> dm.ProductSchemaInfo - 2, // 128: dm.ProductSchemaIndexReq.page:type_name -> dm.PageInfo - 135, // 129: dm.ProductSchemaIndexResp.list:type_name -> dm.ProductSchemaInfo - 207, // 130: dm.ProductSchemaInfo.name:type_name -> google.protobuf.StringValue - 207, // 131: dm.ProductSchemaInfo.desc:type_name -> google.protobuf.StringValue - 207, // 132: dm.ProductSchemaInfo.affordance:type_name -> google.protobuf.StringValue - 117, // 133: dm.DeviceProfile.device:type_name -> dm.DeviceCore - 117, // 134: dm.DeviceProfileReadReq.device:type_name -> dm.DeviceCore - 117, // 135: dm.DeviceInfoCanBindReq.device:type_name -> dm.DeviceCore - 117, // 136: dm.DeviceInfoMultiBindReq.devices:type_name -> dm.DeviceCore - 118, // 137: dm.DeviceInfoMultiBindResp.errs:type_name -> dm.DeviceError - 117, // 138: dm.DeviceInfoBindReq.device:type_name -> dm.DeviceCore - 117, // 139: dm.DeviceProfileIndexReq.device:type_name -> dm.DeviceCore - 139, // 140: dm.DeviceProfileIndexResp.profiles:type_name -> dm.DeviceProfile - 149, // 141: dm.DeviceCountResp.list:type_name -> dm.DeviceCountInfo - 205, // 142: dm.DeviceCountInfo.count:type_name -> dm.DeviceCountInfo.CountEntry - 1, // 143: dm.DeviceInfoCountReq.timeRange:type_name -> dm.TimeRange - 1, // 144: dm.DeviceTypeCountReq.timeRange:type_name -> dm.TimeRange - 207, // 145: dm.Firmware.desc:type_name -> google.protobuf.StringValue - 207, // 146: dm.Firmware.extData:type_name -> google.protobuf.StringValue - 157, // 147: dm.Firmware.files:type_name -> dm.OtaFirmwareFile - 207, // 148: dm.FirmwareInfo.desc:type_name -> google.protobuf.StringValue - 207, // 149: dm.FirmwareInfo.extData:type_name -> google.protobuf.StringValue - 157, // 150: dm.FirmwareInfo.files:type_name -> dm.OtaFirmwareFile - 2, // 151: dm.FirmwareInfoIndexReq.page:type_name -> dm.PageInfo - 156, // 152: dm.FirmwareInfoIndexResp.list:type_name -> dm.FirmwareInfo - 2, // 153: dm.OtaFirmwareFileIndexReq.page:type_name -> dm.PageInfo - 206, // 154: dm.OtaFirmwareFileIndexReq.size:type_name -> google.protobuf.Int64Value - 164, // 155: dm.OtaFirmwareFileIndexResp.list:type_name -> dm.OtaFirmwareFileInfo - 207, // 156: dm.FirmwareInfoReadResp.desc:type_name -> google.protobuf.StringValue - 207, // 157: dm.FirmwareInfoReadResp.extData:type_name -> google.protobuf.StringValue - 165, // 158: dm.FirmwareInfoReadResp.files:type_name -> dm.OtaFirmwareFileResp - 207, // 159: dm.OtaFirmwareInfoCreateReq.extra:type_name -> google.protobuf.StringValue - 207, // 160: dm.OtaFirmwareInfoUpdateReq.extra:type_name -> google.protobuf.StringValue - 2, // 161: dm.OtaFirmwareInfoIndexReq.page:type_name -> dm.PageInfo - 174, // 162: dm.OtaFirmwareInfoIndexResp.list:type_name -> dm.OtaFirmwareInfo - 169, // 163: dm.OtaFirmwareInfo.fileList:type_name -> dm.FirmwareFile - 176, // 164: dm.OtaFirmwareJobInfo.dynamic:type_name -> dm.OtaJobDynamicInfo - 177, // 165: dm.OtaFirmwareJobInfo.static:type_name -> dm.OtaJobStaticInfo - 2, // 166: dm.OtaFirmwareJobIndexReq.page:type_name -> dm.PageInfo - 175, // 167: dm.OtaFirmwareJobIndexResp.list:type_name -> dm.OtaFirmwareJobInfo - 2, // 168: dm.OtaJobByDeviceIndexReq.pageInfo:type_name -> dm.PageInfo - 2, // 169: dm.OtaFirmwareDeviceIndexReq.page:type_name -> dm.PageInfo - 182, // 170: dm.OtaFirmwareDeviceIndexResp.list:type_name -> dm.OtaFirmwareDeviceInfo - 26, // 171: dm.UserDeviceShareInfo.SchemaPermEntry.value:type_name -> dm.SharePerm - 26, // 172: dm.UserDeviceShareInfo.AccessPermEntry.value:type_name -> dm.SharePerm - 26, // 173: dm.UserDeviceShareMultiInfo.SchemaPermEntry.value:type_name -> dm.SharePerm - 26, // 174: dm.UserDeviceShareMultiInfo.AccessPermEntry.value:type_name -> dm.SharePerm - 109, // 175: dm.ProductInfo.CustomUiEntry.value:type_name -> dm.ProductCustomUi - 123, // 176: dm.DeviceManage.rootCheck:input_type -> dm.RootCheckReq - 107, // 177: dm.DeviceManage.deviceInfoCreate:input_type -> dm.DeviceInfo - 107, // 178: dm.DeviceManage.deviceInfoUpdate:input_type -> dm.DeviceInfo - 114, // 179: dm.DeviceManage.deviceOnlineMultiFix:input_type -> dm.deviceOnlineMultiFixReq - 116, // 180: dm.DeviceManage.deviceInfoDelete:input_type -> dm.DeviceInfoDeleteReq - 121, // 181: dm.DeviceManage.deviceInfoIndex:input_type -> dm.DeviceInfoIndexReq - 120, // 182: dm.DeviceManage.DeviceInfoMultiUpdate:input_type -> dm.DeviceInfoMultiUpdateReq - 119, // 183: dm.DeviceManage.deviceInfoRead:input_type -> dm.DeviceInfoReadReq - 144, // 184: dm.DeviceManage.deviceInfoBind:input_type -> dm.DeviceInfoBindReq - 142, // 185: dm.DeviceManage.deviceInfoMultiBind:input_type -> dm.DeviceInfoMultiBindReq - 141, // 186: dm.DeviceManage.deviceInfoCanBind:input_type -> dm.DeviceInfoCanBindReq - 117, // 187: dm.DeviceManage.deviceInfoUnbind:input_type -> dm.DeviceCore - 20, // 188: dm.DeviceManage.deviceTransfer:input_type -> dm.DeviceTransferReq - 19, // 189: dm.DeviceManage.deviceMove:input_type -> dm.DeviceMoveReq - 15, // 190: dm.DeviceManage.deviceModuleVersionRead:input_type -> dm.DeviceModuleVersionReadReq - 17, // 191: dm.DeviceManage.deviceModuleVersionIndex:input_type -> dm.DeviceModuleVersionIndexReq - 91, // 192: dm.DeviceManage.deviceGatewayMultiCreate:input_type -> dm.DeviceGatewayMultiCreateReq - 94, // 193: dm.DeviceManage.deviceGatewayMultiUpdate:input_type -> dm.DeviceGatewayMultiSaveReq - 92, // 194: dm.DeviceManage.deviceGatewayIndex:input_type -> dm.DeviceGatewayIndexReq - 94, // 195: dm.DeviceManage.deviceGatewayMultiDelete:input_type -> dm.DeviceGatewayMultiSaveReq - 150, // 196: dm.DeviceManage.deviceInfoCount:input_type -> dm.DeviceInfoCountReq - 151, // 197: dm.DeviceManage.deviceTypeCount:input_type -> dm.DeviceTypeCountReq - 147, // 198: dm.DeviceManage.deviceCount:input_type -> dm.DeviceCountReq - 140, // 199: dm.DeviceManage.deviceProfileRead:input_type -> dm.DeviceProfileReadReq - 140, // 200: dm.DeviceManage.deviceProfileDelete:input_type -> dm.DeviceProfileReadReq - 139, // 201: dm.DeviceManage.deviceProfileUpdate:input_type -> dm.DeviceProfile - 145, // 202: dm.DeviceManage.deviceProfileIndex:input_type -> dm.DeviceProfileIndexReq - 14, // 203: dm.ProductManage.productInit:input_type -> dm.ProductInitReq - 108, // 204: dm.ProductManage.productInfoCreate:input_type -> dm.ProductInfo - 108, // 205: dm.ProductManage.productInfoUpdate:input_type -> dm.ProductInfo - 110, // 206: dm.ProductManage.productInfoDelete:input_type -> dm.ProductInfoDeleteReq - 112, // 207: dm.ProductManage.productInfoIndex:input_type -> dm.ProductInfoIndexReq - 111, // 208: dm.ProductManage.productInfoRead:input_type -> dm.ProductInfoReadReq - 129, // 209: dm.ProductManage.productSchemaUpdate:input_type -> dm.ProductSchemaUpdateReq - 131, // 210: dm.ProductManage.productSchemaCreate:input_type -> dm.ProductSchemaCreateReq - 130, // 211: dm.ProductManage.productSchemaMultiCreate:input_type -> dm.ProductSchemaMultiCreateReq - 132, // 212: dm.ProductManage.productSchemaDelete:input_type -> dm.ProductSchemaDeleteReq - 133, // 213: dm.ProductManage.productSchemaIndex:input_type -> dm.ProductSchemaIndexReq - 136, // 214: dm.ProductManage.productSchemaTslImport:input_type -> dm.ProductSchemaTslImportReq - 137, // 215: dm.ProductManage.productSchemaTslRead:input_type -> dm.ProductSchemaTslReadReq - 86, // 216: dm.ProductManage.productCustomRead:input_type -> dm.ProductCustomReadReq - 87, // 217: dm.ProductManage.productCustomUpdate:input_type -> dm.ProductCustom - 31, // 218: dm.ProductManage.productCategoryCreate:input_type -> dm.ProductCategory - 31, // 219: dm.ProductManage.productCategoryUpdate:input_type -> dm.ProductCategory - 7, // 220: dm.ProductManage.productCategoryDelete:input_type -> dm.WithID - 35, // 221: dm.ProductManage.productCategoryIndex:input_type -> dm.ProductCategoryIndexReq - 8, // 222: dm.ProductManage.productCategoryRead:input_type -> dm.WithIDChildren - 33, // 223: dm.ProductManage.productCategorySchemaIndex:input_type -> dm.ProductCategorySchemaIndexReq - 34, // 224: dm.ProductManage.productCategorySchemaMultiUpdate:input_type -> dm.ProductCategorySchemaMultiSaveReq - 34, // 225: dm.ProductManage.productCategorySchemaMultiCreate:input_type -> dm.ProductCategorySchemaMultiSaveReq - 34, // 226: dm.ProductManage.productCategorySchemaMultiDelete:input_type -> dm.ProductCategorySchemaMultiSaveReq - 0, // 227: dm.SchemaManage.commonSchemaInit:input_type -> dm.Empty - 124, // 228: dm.SchemaManage.commonSchemaUpdate:input_type -> dm.CommonSchemaUpdateReq - 125, // 229: dm.SchemaManage.commonSchemaCreate:input_type -> dm.CommonSchemaCreateReq - 7, // 230: dm.SchemaManage.commonSchemaDelete:input_type -> dm.WithID - 126, // 231: dm.SchemaManage.commonSchemaIndex:input_type -> dm.CommonSchemaIndexReq - 37, // 232: dm.ProtocolManage.protocolInfoIndex:input_type -> dm.ProtocolInfoIndexReq - 6, // 233: dm.ProtocolManage.protocolInfoRead:input_type -> dm.WithIDCode - 39, // 234: dm.ProtocolManage.protocolInfoCreate:input_type -> dm.ProtocolInfo - 39, // 235: dm.ProtocolManage.protocolInfoUpdate:input_type -> dm.ProtocolInfo - 7, // 236: dm.ProtocolManage.protocolInfoDelete:input_type -> dm.WithID - 97, // 237: dm.DeviceGroup.groupInfoCreate:input_type -> dm.GroupInfo - 99, // 238: dm.DeviceGroup.groupInfoIndex:input_type -> dm.GroupInfoIndexReq - 8, // 239: dm.DeviceGroup.groupInfoRead:input_type -> dm.WithIDChildren - 97, // 240: dm.DeviceGroup.groupInfoUpdate:input_type -> dm.GroupInfo - 7, // 241: dm.DeviceGroup.groupInfoDelete:input_type -> dm.WithID - 102, // 242: dm.DeviceGroup.groupDeviceMultiCreate:input_type -> dm.GroupDeviceMultiSaveReq - 102, // 243: dm.DeviceGroup.groupDeviceMultiUpdate:input_type -> dm.GroupDeviceMultiSaveReq - 103, // 244: dm.DeviceGroup.groupDeviceIndex:input_type -> dm.GroupDeviceIndexReq - 105, // 245: dm.DeviceGroup.groupDeviceMultiDelete:input_type -> dm.GroupDeviceMultiDeleteReq - 80, // 246: dm.RemoteConfig.RemoteConfigCreate:input_type -> dm.RemoteConfigCreateReq - 81, // 247: dm.RemoteConfig.RemoteConfigIndex:input_type -> dm.RemoteConfigIndexReq - 83, // 248: dm.RemoteConfig.RemoteConfigPushAll:input_type -> dm.RemoteConfigPushAllReq - 84, // 249: dm.RemoteConfig.RemoteConfigLastRead:input_type -> dm.RemoteConfigLastReadReq - 62, // 250: dm.DeviceMsg.sdkLogIndex:input_type -> dm.SdkLogIndexReq - 53, // 251: dm.DeviceMsg.hubLogIndex:input_type -> dm.HubLogIndexReq - 59, // 252: dm.DeviceMsg.sendLogIndex:input_type -> dm.SendLogIndexReq - 56, // 253: dm.DeviceMsg.statusLogIndex:input_type -> dm.StatusLogIndexReq - 47, // 254: dm.DeviceMsg.propertyLogLatestIndex:input_type -> dm.PropertyLogLatestIndexReq - 46, // 255: dm.DeviceMsg.propertyLogIndex:input_type -> dm.PropertyLogIndexReq - 50, // 256: dm.DeviceMsg.eventLogIndex:input_type -> dm.EventLogIndexReq - 47, // 257: dm.DeviceMsg.shadowIndex:input_type -> dm.PropertyLogLatestIndexReq - 95, // 258: dm.DeviceMsg.gatewayCanBindIndex:input_type -> dm.GatewayCanBindIndexReq - 65, // 259: dm.DeviceInteract.actionSend:input_type -> dm.ActionSendReq - 67, // 260: dm.DeviceInteract.actionRead:input_type -> dm.RespReadReq - 70, // 261: dm.DeviceInteract.actionResp:input_type -> dm.ActionRespReq - 44, // 262: dm.DeviceInteract.propertyGetReportSend:input_type -> dm.PropertyGetReportSendReq - 68, // 263: dm.DeviceInteract.propertyControlSend:input_type -> dm.PropertyControlSendReq - 76, // 264: dm.DeviceInteract.propertyControlMultiSend:input_type -> dm.PropertyControlMultiSendReq - 67, // 265: dm.DeviceInteract.propertyControlRead:input_type -> dm.RespReadReq - 74, // 266: dm.DeviceInteract.sendMsg:input_type -> dm.SendMsgReq - 72, // 267: dm.DeviceInteract.gatewayGetFoundSend:input_type -> dm.GatewayGetFoundReq - 73, // 268: dm.DeviceInteract.gatewayNotifyBindSend:input_type -> dm.GatewayNotifyBindSendReq - 170, // 269: dm.OtaManage.otaFirmwareInfoCreate:input_type -> dm.OtaFirmwareInfoCreateReq - 171, // 270: dm.OtaManage.otaFirmwareInfoUpdate:input_type -> dm.OtaFirmwareInfoUpdateReq - 7, // 271: dm.OtaManage.otaFirmwareInfoDelete:input_type -> dm.WithID - 172, // 272: dm.OtaManage.otaFirmwareInfoIndex:input_type -> dm.OtaFirmwareInfoIndexReq - 7, // 273: dm.OtaManage.otaFirmwareInfoRead:input_type -> dm.WithID - 175, // 274: dm.OtaManage.otaFirmwareJobCreate:input_type -> dm.OtaFirmwareJobInfo - 178, // 275: dm.OtaManage.otaFirmwareJobIndex:input_type -> dm.OtaFirmwareJobIndexReq - 7, // 276: dm.OtaManage.otaFirmwareJobRead:input_type -> dm.WithID - 175, // 277: dm.OtaManage.otaFirmwareJobUpdate:input_type -> dm.OtaFirmwareJobInfo - 181, // 278: dm.OtaManage.otaFirmwareDeviceIndex:input_type -> dm.OtaFirmwareDeviceIndexReq - 184, // 279: dm.OtaManage.otaFirmwareDeviceCancel:input_type -> dm.OtaFirmwareDeviceCancelReq - 185, // 280: dm.OtaManage.otaFirmwareDeviceRetry:input_type -> dm.OtaFirmwareDeviceRetryReq - 186, // 281: dm.OtaManage.otaFirmwareDeviceConfirm:input_type -> dm.OtaFirmwareDeviceConfirmReq - 13, // 282: dm.OtaManage.otaModuleInfoCreate:input_type -> dm.OtaModuleInfo - 13, // 283: dm.OtaManage.otaModuleInfoUpdate:input_type -> dm.OtaModuleInfo - 7, // 284: dm.OtaManage.otaModuleInfoDelete:input_type -> dm.WithID - 11, // 285: dm.OtaManage.otaModuleInfoIndex:input_type -> dm.OtaModuleInfoIndexReq - 6, // 286: dm.OtaManage.otaModuleInfoRead:input_type -> dm.WithIDCode - 30, // 287: dm.userDevice.userDeviceCollectMultiCreate:input_type -> dm.UserDeviceCollectSave - 30, // 288: dm.userDevice.userDeviceCollectMultiDelete:input_type -> dm.UserDeviceCollectSave - 0, // 289: dm.userDevice.userDeviceCollectIndex:input_type -> dm.Empty - 25, // 290: dm.userDevice.userDeviceShareCreate:input_type -> dm.UserDeviceShareInfo - 25, // 291: dm.userDevice.userDeviceShareUpdate:input_type -> dm.UserDeviceShareInfo - 21, // 292: dm.userDevice.userDeviceShareDelete:input_type -> dm.UserDeviceShareReadReq - 24, // 293: dm.userDevice.userDeviceShareMultiDelete:input_type -> dm.UserDeviceShareMultiDeleteReq - 22, // 294: dm.userDevice.userDeviceShareIndex:input_type -> dm.UserDeviceShareIndexReq - 21, // 295: dm.userDevice.userDeviceShareRead:input_type -> dm.UserDeviceShareReadReq - 20, // 296: dm.userDevice.userDeviceTransfer:input_type -> dm.DeviceTransferReq - 27, // 297: dm.userDevice.userDeviceShareMultiCreate:input_type -> dm.UserDeviceShareMultiInfo - 28, // 298: dm.userDevice.userDeivceShareMultiIndex:input_type -> dm.UserDeviceShareMultiToken - 29, // 299: dm.userDevice.userDeivceShareMultiAccept:input_type -> dm.UserDeviceShareMultiAcceptReq - 0, // 300: dm.DeviceManage.rootCheck:output_type -> dm.Empty - 0, // 301: dm.DeviceManage.deviceInfoCreate:output_type -> dm.Empty - 0, // 302: dm.DeviceManage.deviceInfoUpdate:output_type -> dm.Empty - 0, // 303: dm.DeviceManage.deviceOnlineMultiFix:output_type -> dm.Empty - 0, // 304: dm.DeviceManage.deviceInfoDelete:output_type -> dm.Empty - 122, // 305: dm.DeviceManage.deviceInfoIndex:output_type -> dm.DeviceInfoIndexResp - 0, // 306: dm.DeviceManage.DeviceInfoMultiUpdate:output_type -> dm.Empty - 107, // 307: dm.DeviceManage.deviceInfoRead:output_type -> dm.DeviceInfo - 0, // 308: dm.DeviceManage.deviceInfoBind:output_type -> dm.Empty - 143, // 309: dm.DeviceManage.deviceInfoMultiBind:output_type -> dm.DeviceInfoMultiBindResp - 0, // 310: dm.DeviceManage.deviceInfoCanBind:output_type -> dm.Empty - 0, // 311: dm.DeviceManage.deviceInfoUnbind:output_type -> dm.Empty - 0, // 312: dm.DeviceManage.deviceTransfer:output_type -> dm.Empty - 0, // 313: dm.DeviceManage.deviceMove:output_type -> dm.Empty - 16, // 314: dm.DeviceManage.deviceModuleVersionRead:output_type -> dm.DeviceModuleVersion - 18, // 315: dm.DeviceManage.deviceModuleVersionIndex:output_type -> dm.DeviceModuleVersionIndexResp - 0, // 316: dm.DeviceManage.deviceGatewayMultiCreate:output_type -> dm.Empty - 0, // 317: dm.DeviceManage.deviceGatewayMultiUpdate:output_type -> dm.Empty - 93, // 318: dm.DeviceManage.deviceGatewayIndex:output_type -> dm.DeviceGatewayIndexResp - 0, // 319: dm.DeviceManage.deviceGatewayMultiDelete:output_type -> dm.Empty - 152, // 320: dm.DeviceManage.deviceInfoCount:output_type -> dm.DeviceInfoCount - 153, // 321: dm.DeviceManage.deviceTypeCount:output_type -> dm.DeviceTypeCountResp - 148, // 322: dm.DeviceManage.deviceCount:output_type -> dm.DeviceCountResp - 139, // 323: dm.DeviceManage.deviceProfileRead:output_type -> dm.DeviceProfile - 0, // 324: dm.DeviceManage.deviceProfileDelete:output_type -> dm.Empty - 0, // 325: dm.DeviceManage.deviceProfileUpdate:output_type -> dm.Empty - 146, // 326: dm.DeviceManage.deviceProfileIndex:output_type -> dm.DeviceProfileIndexResp - 0, // 327: dm.ProductManage.productInit:output_type -> dm.Empty - 0, // 328: dm.ProductManage.productInfoCreate:output_type -> dm.Empty - 0, // 329: dm.ProductManage.productInfoUpdate:output_type -> dm.Empty - 0, // 330: dm.ProductManage.productInfoDelete:output_type -> dm.Empty - 113, // 331: dm.ProductManage.productInfoIndex:output_type -> dm.ProductInfoIndexResp - 108, // 332: dm.ProductManage.productInfoRead:output_type -> dm.ProductInfo - 0, // 333: dm.ProductManage.productSchemaUpdate:output_type -> dm.Empty - 0, // 334: dm.ProductManage.productSchemaCreate:output_type -> dm.Empty - 0, // 335: dm.ProductManage.productSchemaMultiCreate:output_type -> dm.Empty - 0, // 336: dm.ProductManage.productSchemaDelete:output_type -> dm.Empty - 134, // 337: dm.ProductManage.productSchemaIndex:output_type -> dm.ProductSchemaIndexResp - 0, // 338: dm.ProductManage.productSchemaTslImport:output_type -> dm.Empty - 138, // 339: dm.ProductManage.productSchemaTslRead:output_type -> dm.ProductSchemaTslReadResp - 87, // 340: dm.ProductManage.productCustomRead:output_type -> dm.ProductCustom - 0, // 341: dm.ProductManage.productCustomUpdate:output_type -> dm.Empty - 7, // 342: dm.ProductManage.productCategoryCreate:output_type -> dm.WithID - 0, // 343: dm.ProductManage.productCategoryUpdate:output_type -> dm.Empty - 0, // 344: dm.ProductManage.productCategoryDelete:output_type -> dm.Empty - 36, // 345: dm.ProductManage.productCategoryIndex:output_type -> dm.ProductCategoryIndexResp - 31, // 346: dm.ProductManage.productCategoryRead:output_type -> dm.ProductCategory - 32, // 347: dm.ProductManage.productCategorySchemaIndex:output_type -> dm.ProductCategorySchemaIndexResp - 0, // 348: dm.ProductManage.productCategorySchemaMultiUpdate:output_type -> dm.Empty - 0, // 349: dm.ProductManage.productCategorySchemaMultiCreate:output_type -> dm.Empty - 0, // 350: dm.ProductManage.productCategorySchemaMultiDelete:output_type -> dm.Empty - 0, // 351: dm.SchemaManage.commonSchemaInit:output_type -> dm.Empty - 0, // 352: dm.SchemaManage.commonSchemaUpdate:output_type -> dm.Empty - 0, // 353: dm.SchemaManage.commonSchemaCreate:output_type -> dm.Empty - 0, // 354: dm.SchemaManage.commonSchemaDelete:output_type -> dm.Empty - 127, // 355: dm.SchemaManage.commonSchemaIndex:output_type -> dm.CommonSchemaIndexResp - 38, // 356: dm.ProtocolManage.protocolInfoIndex:output_type -> dm.ProtocolInfoIndexResp - 39, // 357: dm.ProtocolManage.protocolInfoRead:output_type -> dm.ProtocolInfo - 7, // 358: dm.ProtocolManage.protocolInfoCreate:output_type -> dm.WithID - 0, // 359: dm.ProtocolManage.protocolInfoUpdate:output_type -> dm.Empty - 0, // 360: dm.ProtocolManage.protocolInfoDelete:output_type -> dm.Empty - 7, // 361: dm.DeviceGroup.groupInfoCreate:output_type -> dm.WithID - 100, // 362: dm.DeviceGroup.groupInfoIndex:output_type -> dm.GroupInfoIndexResp - 97, // 363: dm.DeviceGroup.groupInfoRead:output_type -> dm.GroupInfo - 0, // 364: dm.DeviceGroup.groupInfoUpdate:output_type -> dm.Empty - 0, // 365: dm.DeviceGroup.groupInfoDelete:output_type -> dm.Empty - 0, // 366: dm.DeviceGroup.groupDeviceMultiCreate:output_type -> dm.Empty - 0, // 367: dm.DeviceGroup.groupDeviceMultiUpdate:output_type -> dm.Empty - 104, // 368: dm.DeviceGroup.groupDeviceIndex:output_type -> dm.GroupDeviceIndexResp - 0, // 369: dm.DeviceGroup.groupDeviceMultiDelete:output_type -> dm.Empty - 0, // 370: dm.RemoteConfig.RemoteConfigCreate:output_type -> dm.Empty - 82, // 371: dm.RemoteConfig.RemoteConfigIndex:output_type -> dm.RemoteConfigIndexResp - 0, // 372: dm.RemoteConfig.RemoteConfigPushAll:output_type -> dm.Empty - 85, // 373: dm.RemoteConfig.RemoteConfigLastRead:output_type -> dm.RemoteConfigLastReadResp - 63, // 374: dm.DeviceMsg.sdkLogIndex:output_type -> dm.SdkLogIndexResp - 54, // 375: dm.DeviceMsg.hubLogIndex:output_type -> dm.HubLogIndexResp - 60, // 376: dm.DeviceMsg.sendLogIndex:output_type -> dm.SendLogIndexResp - 57, // 377: dm.DeviceMsg.statusLogIndex:output_type -> dm.StatusLogIndexResp - 49, // 378: dm.DeviceMsg.propertyLogLatestIndex:output_type -> dm.PropertyLogIndexResp - 49, // 379: dm.DeviceMsg.propertyLogIndex:output_type -> dm.PropertyLogIndexResp - 52, // 380: dm.DeviceMsg.eventLogIndex:output_type -> dm.EventLogIndexResp - 42, // 381: dm.DeviceMsg.shadowIndex:output_type -> dm.ShadowIndexResp - 96, // 382: dm.DeviceMsg.gatewayCanBindIndex:output_type -> dm.GatewayCanBindIndexResp - 66, // 383: dm.DeviceInteract.actionSend:output_type -> dm.ActionSendResp - 66, // 384: dm.DeviceInteract.actionRead:output_type -> dm.ActionSendResp - 0, // 385: dm.DeviceInteract.actionResp:output_type -> dm.Empty - 45, // 386: dm.DeviceInteract.propertyGetReportSend:output_type -> dm.PropertyGetReportSendResp - 71, // 387: dm.DeviceInteract.propertyControlSend:output_type -> dm.PropertyControlSendResp - 78, // 388: dm.DeviceInteract.propertyControlMultiSend:output_type -> dm.PropertyControlMultiSendResp - 71, // 389: dm.DeviceInteract.propertyControlRead:output_type -> dm.PropertyControlSendResp - 75, // 390: dm.DeviceInteract.sendMsg:output_type -> dm.SendMsgResp - 0, // 391: dm.DeviceInteract.gatewayGetFoundSend:output_type -> dm.Empty - 0, // 392: dm.DeviceInteract.gatewayNotifyBindSend:output_type -> dm.Empty - 7, // 393: dm.OtaManage.otaFirmwareInfoCreate:output_type -> dm.WithID - 7, // 394: dm.OtaManage.otaFirmwareInfoUpdate:output_type -> dm.WithID - 0, // 395: dm.OtaManage.otaFirmwareInfoDelete:output_type -> dm.Empty - 173, // 396: dm.OtaManage.otaFirmwareInfoIndex:output_type -> dm.OtaFirmwareInfoIndexResp - 174, // 397: dm.OtaManage.otaFirmwareInfoRead:output_type -> dm.OtaFirmwareInfo - 7, // 398: dm.OtaManage.otaFirmwareJobCreate:output_type -> dm.WithID - 179, // 399: dm.OtaManage.otaFirmwareJobIndex:output_type -> dm.OtaFirmwareJobIndexResp - 175, // 400: dm.OtaManage.otaFirmwareJobRead:output_type -> dm.OtaFirmwareJobInfo - 0, // 401: dm.OtaManage.otaFirmwareJobUpdate:output_type -> dm.Empty - 183, // 402: dm.OtaManage.otaFirmwareDeviceIndex:output_type -> dm.OtaFirmwareDeviceIndexResp - 0, // 403: dm.OtaManage.otaFirmwareDeviceCancel:output_type -> dm.Empty - 0, // 404: dm.OtaManage.otaFirmwareDeviceRetry:output_type -> dm.Empty - 0, // 405: dm.OtaManage.otaFirmwareDeviceConfirm:output_type -> dm.Empty - 7, // 406: dm.OtaManage.otaModuleInfoCreate:output_type -> dm.WithID - 0, // 407: dm.OtaManage.otaModuleInfoUpdate:output_type -> dm.Empty - 0, // 408: dm.OtaManage.otaModuleInfoDelete:output_type -> dm.Empty - 12, // 409: dm.OtaManage.otaModuleInfoIndex:output_type -> dm.OtaModuleInfoIndexResp - 13, // 410: dm.OtaManage.otaModuleInfoRead:output_type -> dm.OtaModuleInfo - 0, // 411: dm.userDevice.userDeviceCollectMultiCreate:output_type -> dm.Empty - 0, // 412: dm.userDevice.userDeviceCollectMultiDelete:output_type -> dm.Empty - 30, // 413: dm.userDevice.userDeviceCollectIndex:output_type -> dm.UserDeviceCollectSave - 7, // 414: dm.userDevice.userDeviceShareCreate:output_type -> dm.WithID - 0, // 415: dm.userDevice.userDeviceShareUpdate:output_type -> dm.Empty - 0, // 416: dm.userDevice.userDeviceShareDelete:output_type -> dm.Empty - 0, // 417: dm.userDevice.userDeviceShareMultiDelete:output_type -> dm.Empty - 23, // 418: dm.userDevice.userDeviceShareIndex:output_type -> dm.UserDeviceShareIndexResp - 25, // 419: dm.userDevice.userDeviceShareRead:output_type -> dm.UserDeviceShareInfo - 0, // 420: dm.userDevice.userDeviceTransfer:output_type -> dm.Empty - 28, // 421: dm.userDevice.userDeviceShareMultiCreate:output_type -> dm.UserDeviceShareMultiToken - 27, // 422: dm.userDevice.userDeivceShareMultiIndex:output_type -> dm.UserDeviceShareMultiInfo - 0, // 423: dm.userDevice.userDeivceShareMultiAccept:output_type -> dm.Empty - 300, // [300:424] is the sub-list for method output_type - 176, // [176:300] is the sub-list for method input_type - 176, // [176:176] is the sub-list for extension type_name - 176, // [176:176] is the sub-list for extension extendee - 0, // [0:176] is the sub-list for field type_name + 118, // 13: dm.UserDeviceShareInfo.device:type_name -> dm.DeviceCore + 189, // 14: dm.UserDeviceShareInfo.schemaPerm:type_name -> dm.UserDeviceShareInfo.SchemaPermEntry + 190, // 15: dm.UserDeviceShareInfo.accessPerm:type_name -> dm.UserDeviceShareInfo.AccessPermEntry + 207, // 16: dm.UserDeviceShareInfo.expTime:type_name -> google.protobuf.Int64Value + 208, // 17: dm.DeviceShareInfo.deviceAlias:type_name -> google.protobuf.StringValue + 27, // 18: dm.UserDeviceShareMultiInfo.devices:type_name -> dm.DeviceShareInfo + 191, // 19: dm.UserDeviceShareMultiInfo.schemaPerm:type_name -> dm.UserDeviceShareMultiInfo.SchemaPermEntry + 192, // 20: dm.UserDeviceShareMultiInfo.accessPerm:type_name -> dm.UserDeviceShareMultiInfo.AccessPermEntry + 118, // 21: dm.UserDeviceShareMultiAcceptReq.devices:type_name -> dm.DeviceCore + 118, // 22: dm.UserDeviceCollectSave.devices:type_name -> dm.DeviceCore + 208, // 23: dm.ProductCategory.desc:type_name -> google.protobuf.StringValue + 32, // 24: dm.ProductCategory.children:type_name -> dm.ProductCategory + 2, // 25: dm.ProductCategoryIndexReq.page:type_name -> dm.PageInfo + 32, // 26: dm.ProductCategoryIndexResp.list:type_name -> dm.ProductCategory + 2, // 27: dm.ProtocolInfoIndexReq.page:type_name -> dm.PageInfo + 40, // 28: dm.ProtocolInfoIndexResp.list:type_name -> dm.ProtocolInfo + 41, // 29: dm.ProtocolInfo.configFields:type_name -> dm.ProtocolConfigField + 42, // 30: dm.ProtocolInfo.configInfos:type_name -> dm.ProtocolConfigInfo + 193, // 31: dm.ProtocolConfigInfo.config:type_name -> dm.ProtocolConfigInfo.ConfigEntry + 44, // 32: dm.ShadowIndexResp.list:type_name -> dm.ShadowIndex + 2, // 33: dm.PropertyLogIndexReq.page:type_name -> dm.PageInfo + 49, // 34: dm.PropertyLogIndexResp.list:type_name -> dm.PropertyLogInfo + 2, // 35: dm.EventLogIndexReq.page:type_name -> dm.PageInfo + 52, // 36: dm.EventLogIndexResp.list:type_name -> dm.EventLogInfo + 2, // 37: dm.HubLogIndexReq.page:type_name -> dm.PageInfo + 56, // 38: dm.HubLogIndexResp.list:type_name -> dm.HubLogInfo + 2, // 39: dm.StatusLogIndexReq.page:type_name -> dm.PageInfo + 59, // 40: dm.StatusLogIndexResp.list:type_name -> dm.StatusLogInfo + 2, // 41: dm.SendLogIndexReq.page:type_name -> dm.PageInfo + 62, // 42: dm.SendLogIndexResp.list:type_name -> dm.SendLogInfo + 2, // 43: dm.SdkLogIndexReq.page:type_name -> dm.PageInfo + 65, // 44: dm.SdkLogIndexResp.list:type_name -> dm.SdkLogInfo + 5, // 45: dm.ActionSendReq.option:type_name -> dm.SendOption + 70, // 46: dm.PropertyControlSendReq.withProfile:type_name -> dm.WithProfile + 118, // 47: dm.GatewayNotifyBindSendReq.gateway:type_name -> dm.DeviceCore + 118, // 48: dm.GatewayNotifyBindSendReq.subDevices:type_name -> dm.DeviceCore + 118, // 49: dm.PropertyControlMultiSendReq.devices:type_name -> dm.DeviceCore + 78, // 50: dm.PropertyControlMultiSendResp.list:type_name -> dm.PropertyControlSendMsg + 2, // 51: dm.RemoteConfigIndexReq.page:type_name -> dm.PageInfo + 80, // 52: dm.RemoteConfigIndexResp.list:type_name -> dm.ProductRemoteConfig + 80, // 53: dm.RemoteConfigLastReadResp.info:type_name -> dm.ProductRemoteConfig + 208, // 54: dm.ProductCustom.transformScript:type_name -> google.protobuf.StringValue + 208, // 55: dm.ProductCustom.loginAuthScript:type_name -> google.protobuf.StringValue + 89, // 56: dm.ProductCustom.customTopics:type_name -> dm.CustomTopic + 91, // 57: dm.DeviceGatewayBindDevice.sign:type_name -> dm.DeviceGatewaySign + 118, // 58: dm.DeviceGatewayMultiCreateReq.gateway:type_name -> dm.DeviceCore + 90, // 59: dm.DeviceGatewayMultiCreateReq.list:type_name -> dm.DeviceGatewayBindDevice + 2, // 60: dm.DeviceGatewayIndexReq.page:type_name -> dm.PageInfo + 118, // 61: dm.DeviceGatewayIndexReq.gateway:type_name -> dm.DeviceCore + 118, // 62: dm.DeviceGatewayIndexReq.subDevice:type_name -> dm.DeviceCore + 118, // 63: dm.DeviceGatewayIndexResp.list:type_name -> dm.DeviceCore + 118, // 64: dm.DeviceGatewayMultiSaveReq.gateway:type_name -> dm.DeviceCore + 118, // 65: dm.DeviceGatewayMultiSaveReq.list:type_name -> dm.DeviceCore + 118, // 66: dm.GatewayCanBindIndexReq.gateway:type_name -> dm.DeviceCore + 118, // 67: dm.GatewayCanBindIndexResp.subDevices:type_name -> dm.DeviceCore + 194, // 68: dm.GroupInfo.tags:type_name -> dm.GroupInfo.TagsEntry + 118, // 69: dm.GroupInfo.devices:type_name -> dm.DeviceCore + 98, // 70: dm.GroupInfo.children:type_name -> dm.GroupInfo + 2, // 71: dm.GroupInfoIndexReq.page:type_name -> dm.PageInfo + 195, // 72: dm.GroupInfoIndexReq.tags:type_name -> dm.GroupInfoIndexReq.TagsEntry + 98, // 73: dm.GroupInfoIndexResp.list:type_name -> dm.GroupInfo + 196, // 74: dm.GroupInfoUpdateReq.tags:type_name -> dm.GroupInfoUpdateReq.TagsEntry + 118, // 75: dm.GroupDeviceMultiSaveReq.list:type_name -> dm.DeviceCore + 2, // 76: dm.GroupDeviceIndexReq.page:type_name -> dm.PageInfo + 108, // 77: dm.GroupDeviceIndexResp.list:type_name -> dm.DeviceInfo + 118, // 78: dm.GroupDeviceMultiDeleteReq.list:type_name -> dm.DeviceCore + 208, // 79: dm.DeviceInfo.version:type_name -> google.protobuf.StringValue + 107, // 80: dm.DeviceInfo.Position:type_name -> dm.Point + 208, // 81: dm.DeviceInfo.address:type_name -> google.protobuf.StringValue + 208, // 82: dm.DeviceInfo.adcode:type_name -> google.protobuf.StringValue + 197, // 83: dm.DeviceInfo.tags:type_name -> dm.DeviceInfo.TagsEntry + 208, // 84: dm.DeviceInfo.deviceAlias:type_name -> google.protobuf.StringValue + 208, // 85: dm.DeviceInfo.phone:type_name -> google.protobuf.StringValue + 208, // 86: dm.DeviceInfo.iccid:type_name -> google.protobuf.StringValue + 198, // 87: dm.DeviceInfo.schemaAlias:type_name -> dm.DeviceInfo.SchemaAliasEntry + 207, // 88: dm.DeviceInfo.rssi:type_name -> google.protobuf.Int64Value + 199, // 89: dm.DeviceInfo.protocolConf:type_name -> dm.DeviceInfo.ProtocolConfEntry + 10, // 90: dm.DeviceInfo.distributor:type_name -> dm.IDPathWithUpdate + 207, // 91: dm.DeviceInfo.expTime:type_name -> google.protobuf.Int64Value + 108, // 92: dm.DeviceInfo.Gateway:type_name -> dm.DeviceInfo + 208, // 93: dm.ProductInfo.desc:type_name -> google.protobuf.StringValue + 200, // 94: dm.ProductInfo.tags:type_name -> dm.ProductInfo.TagsEntry + 40, // 95: dm.ProductInfo.protocol:type_name -> dm.ProtocolInfo + 32, // 96: dm.ProductInfo.category:type_name -> dm.ProductCategory + 201, // 97: dm.ProductInfo.protocolConf:type_name -> dm.ProductInfo.ProtocolConfEntry + 207, // 98: dm.ProductInfo.trialTime:type_name -> google.protobuf.Int64Value + 202, // 99: dm.ProductInfo.customUi:type_name -> dm.ProductInfo.CustomUiEntry + 2, // 100: dm.ProductInfoIndexReq.page:type_name -> dm.PageInfo + 203, // 101: dm.ProductInfoIndexReq.tags:type_name -> dm.ProductInfoIndexReq.TagsEntry + 204, // 102: dm.ProductInfoIndexReq.protocolConf:type_name -> dm.ProductInfoIndexReq.ProtocolConfEntry + 109, // 103: dm.ProductInfoIndexResp.list:type_name -> dm.ProductInfo + 116, // 104: dm.deviceOnlineMultiFixReq.devices:type_name -> dm.deviceOnlineMultiFix + 118, // 105: dm.deviceOnlineMultiFix.device:type_name -> dm.DeviceCore + 118, // 106: dm.DeviceInfoMultiUpdateReq.devices:type_name -> dm.DeviceCore + 4, // 107: dm.DeviceInfoMultiUpdateReq.FilterDistributorID:type_name -> dm.CompareInt64 + 9, // 108: dm.DeviceInfoMultiUpdateReq.distributor:type_name -> dm.IDPath + 2, // 109: dm.DeviceInfoIndexReq.page:type_name -> dm.PageInfo + 205, // 110: dm.DeviceInfoIndexReq.tags:type_name -> dm.DeviceInfoIndexReq.TagsEntry + 107, // 111: dm.DeviceInfoIndexReq.Position:type_name -> dm.Point + 118, // 112: dm.DeviceInfoIndexReq.devices:type_name -> dm.DeviceCore + 118, // 113: dm.DeviceInfoIndexReq.gateway:type_name -> dm.DeviceCore + 9, // 114: dm.DeviceInfoIndexReq.distributor:type_name -> dm.IDPath + 4, // 115: dm.DeviceInfoIndexReq.ratedPower:type_name -> dm.CompareInt64 + 4, // 116: dm.DeviceInfoIndexReq.expTime:type_name -> dm.CompareInt64 + 108, // 117: dm.DeviceInfoIndexResp.list:type_name -> dm.DeviceInfo + 129, // 118: dm.CommonSchemaUpdateReq.info:type_name -> dm.CommonSchemaInfo + 129, // 119: dm.CommonSchemaCreateReq.info:type_name -> dm.CommonSchemaInfo + 2, // 120: dm.CommonSchemaIndexReq.page:type_name -> dm.PageInfo + 129, // 121: dm.CommonSchemaIndexResp.list:type_name -> dm.CommonSchemaInfo + 208, // 122: dm.CommonSchemaInfo.name:type_name -> google.protobuf.StringValue + 208, // 123: dm.CommonSchemaInfo.desc:type_name -> google.protobuf.StringValue + 208, // 124: dm.CommonSchemaInfo.affordance:type_name -> google.protobuf.StringValue + 32, // 125: dm.CommonSchemaInfo.productCategories:type_name -> dm.ProductCategory + 136, // 126: dm.ProductSchemaUpdateReq.info:type_name -> dm.ProductSchemaInfo + 136, // 127: dm.ProductSchemaMultiCreateReq.list:type_name -> dm.ProductSchemaInfo + 136, // 128: dm.ProductSchemaCreateReq.info:type_name -> dm.ProductSchemaInfo + 2, // 129: dm.ProductSchemaIndexReq.page:type_name -> dm.PageInfo + 136, // 130: dm.ProductSchemaIndexResp.list:type_name -> dm.ProductSchemaInfo + 208, // 131: dm.ProductSchemaInfo.name:type_name -> google.protobuf.StringValue + 208, // 132: dm.ProductSchemaInfo.desc:type_name -> google.protobuf.StringValue + 208, // 133: dm.ProductSchemaInfo.affordance:type_name -> google.protobuf.StringValue + 118, // 134: dm.DeviceProfile.device:type_name -> dm.DeviceCore + 118, // 135: dm.DeviceProfileReadReq.device:type_name -> dm.DeviceCore + 118, // 136: dm.DeviceInfoCanBindReq.device:type_name -> dm.DeviceCore + 118, // 137: dm.DeviceInfoMultiBindReq.devices:type_name -> dm.DeviceCore + 119, // 138: dm.DeviceInfoMultiBindResp.errs:type_name -> dm.DeviceError + 118, // 139: dm.DeviceInfoBindReq.device:type_name -> dm.DeviceCore + 118, // 140: dm.DeviceProfileIndexReq.device:type_name -> dm.DeviceCore + 140, // 141: dm.DeviceProfileIndexResp.profiles:type_name -> dm.DeviceProfile + 150, // 142: dm.DeviceCountResp.list:type_name -> dm.DeviceCountInfo + 206, // 143: dm.DeviceCountInfo.count:type_name -> dm.DeviceCountInfo.CountEntry + 1, // 144: dm.DeviceInfoCountReq.timeRange:type_name -> dm.TimeRange + 1, // 145: dm.DeviceTypeCountReq.timeRange:type_name -> dm.TimeRange + 208, // 146: dm.Firmware.desc:type_name -> google.protobuf.StringValue + 208, // 147: dm.Firmware.extData:type_name -> google.protobuf.StringValue + 158, // 148: dm.Firmware.files:type_name -> dm.OtaFirmwareFile + 208, // 149: dm.FirmwareInfo.desc:type_name -> google.protobuf.StringValue + 208, // 150: dm.FirmwareInfo.extData:type_name -> google.protobuf.StringValue + 158, // 151: dm.FirmwareInfo.files:type_name -> dm.OtaFirmwareFile + 2, // 152: dm.FirmwareInfoIndexReq.page:type_name -> dm.PageInfo + 157, // 153: dm.FirmwareInfoIndexResp.list:type_name -> dm.FirmwareInfo + 2, // 154: dm.OtaFirmwareFileIndexReq.page:type_name -> dm.PageInfo + 207, // 155: dm.OtaFirmwareFileIndexReq.size:type_name -> google.protobuf.Int64Value + 165, // 156: dm.OtaFirmwareFileIndexResp.list:type_name -> dm.OtaFirmwareFileInfo + 208, // 157: dm.FirmwareInfoReadResp.desc:type_name -> google.protobuf.StringValue + 208, // 158: dm.FirmwareInfoReadResp.extData:type_name -> google.protobuf.StringValue + 166, // 159: dm.FirmwareInfoReadResp.files:type_name -> dm.OtaFirmwareFileResp + 208, // 160: dm.OtaFirmwareInfoCreateReq.extra:type_name -> google.protobuf.StringValue + 208, // 161: dm.OtaFirmwareInfoUpdateReq.extra:type_name -> google.protobuf.StringValue + 2, // 162: dm.OtaFirmwareInfoIndexReq.page:type_name -> dm.PageInfo + 175, // 163: dm.OtaFirmwareInfoIndexResp.list:type_name -> dm.OtaFirmwareInfo + 170, // 164: dm.OtaFirmwareInfo.fileList:type_name -> dm.FirmwareFile + 177, // 165: dm.OtaFirmwareJobInfo.dynamic:type_name -> dm.OtaJobDynamicInfo + 178, // 166: dm.OtaFirmwareJobInfo.static:type_name -> dm.OtaJobStaticInfo + 2, // 167: dm.OtaFirmwareJobIndexReq.page:type_name -> dm.PageInfo + 176, // 168: dm.OtaFirmwareJobIndexResp.list:type_name -> dm.OtaFirmwareJobInfo + 2, // 169: dm.OtaJobByDeviceIndexReq.pageInfo:type_name -> dm.PageInfo + 2, // 170: dm.OtaFirmwareDeviceIndexReq.page:type_name -> dm.PageInfo + 183, // 171: dm.OtaFirmwareDeviceIndexResp.list:type_name -> dm.OtaFirmwareDeviceInfo + 26, // 172: dm.UserDeviceShareInfo.SchemaPermEntry.value:type_name -> dm.SharePerm + 26, // 173: dm.UserDeviceShareInfo.AccessPermEntry.value:type_name -> dm.SharePerm + 26, // 174: dm.UserDeviceShareMultiInfo.SchemaPermEntry.value:type_name -> dm.SharePerm + 26, // 175: dm.UserDeviceShareMultiInfo.AccessPermEntry.value:type_name -> dm.SharePerm + 110, // 176: dm.ProductInfo.CustomUiEntry.value:type_name -> dm.ProductCustomUi + 124, // 177: dm.DeviceManage.rootCheck:input_type -> dm.RootCheckReq + 108, // 178: dm.DeviceManage.deviceInfoCreate:input_type -> dm.DeviceInfo + 108, // 179: dm.DeviceManage.deviceInfoUpdate:input_type -> dm.DeviceInfo + 115, // 180: dm.DeviceManage.deviceOnlineMultiFix:input_type -> dm.deviceOnlineMultiFixReq + 117, // 181: dm.DeviceManage.deviceInfoDelete:input_type -> dm.DeviceInfoDeleteReq + 122, // 182: dm.DeviceManage.deviceInfoIndex:input_type -> dm.DeviceInfoIndexReq + 121, // 183: dm.DeviceManage.DeviceInfoMultiUpdate:input_type -> dm.DeviceInfoMultiUpdateReq + 120, // 184: dm.DeviceManage.deviceInfoRead:input_type -> dm.DeviceInfoReadReq + 145, // 185: dm.DeviceManage.deviceInfoBind:input_type -> dm.DeviceInfoBindReq + 143, // 186: dm.DeviceManage.deviceInfoMultiBind:input_type -> dm.DeviceInfoMultiBindReq + 142, // 187: dm.DeviceManage.deviceInfoCanBind:input_type -> dm.DeviceInfoCanBindReq + 118, // 188: dm.DeviceManage.deviceInfoUnbind:input_type -> dm.DeviceCore + 20, // 189: dm.DeviceManage.deviceTransfer:input_type -> dm.DeviceTransferReq + 19, // 190: dm.DeviceManage.deviceMove:input_type -> dm.DeviceMoveReq + 15, // 191: dm.DeviceManage.deviceModuleVersionRead:input_type -> dm.DeviceModuleVersionReadReq + 17, // 192: dm.DeviceManage.deviceModuleVersionIndex:input_type -> dm.DeviceModuleVersionIndexReq + 92, // 193: dm.DeviceManage.deviceGatewayMultiCreate:input_type -> dm.DeviceGatewayMultiCreateReq + 95, // 194: dm.DeviceManage.deviceGatewayMultiUpdate:input_type -> dm.DeviceGatewayMultiSaveReq + 93, // 195: dm.DeviceManage.deviceGatewayIndex:input_type -> dm.DeviceGatewayIndexReq + 95, // 196: dm.DeviceManage.deviceGatewayMultiDelete:input_type -> dm.DeviceGatewayMultiSaveReq + 151, // 197: dm.DeviceManage.deviceInfoCount:input_type -> dm.DeviceInfoCountReq + 152, // 198: dm.DeviceManage.deviceTypeCount:input_type -> dm.DeviceTypeCountReq + 148, // 199: dm.DeviceManage.deviceCount:input_type -> dm.DeviceCountReq + 141, // 200: dm.DeviceManage.deviceProfileRead:input_type -> dm.DeviceProfileReadReq + 141, // 201: dm.DeviceManage.deviceProfileDelete:input_type -> dm.DeviceProfileReadReq + 140, // 202: dm.DeviceManage.deviceProfileUpdate:input_type -> dm.DeviceProfile + 146, // 203: dm.DeviceManage.deviceProfileIndex:input_type -> dm.DeviceProfileIndexReq + 14, // 204: dm.ProductManage.productInit:input_type -> dm.ProductInitReq + 109, // 205: dm.ProductManage.productInfoCreate:input_type -> dm.ProductInfo + 109, // 206: dm.ProductManage.productInfoUpdate:input_type -> dm.ProductInfo + 111, // 207: dm.ProductManage.productInfoDelete:input_type -> dm.ProductInfoDeleteReq + 113, // 208: dm.ProductManage.productInfoIndex:input_type -> dm.ProductInfoIndexReq + 112, // 209: dm.ProductManage.productInfoRead:input_type -> dm.ProductInfoReadReq + 130, // 210: dm.ProductManage.productSchemaUpdate:input_type -> dm.ProductSchemaUpdateReq + 132, // 211: dm.ProductManage.productSchemaCreate:input_type -> dm.ProductSchemaCreateReq + 131, // 212: dm.ProductManage.productSchemaMultiCreate:input_type -> dm.ProductSchemaMultiCreateReq + 133, // 213: dm.ProductManage.productSchemaDelete:input_type -> dm.ProductSchemaDeleteReq + 134, // 214: dm.ProductManage.productSchemaIndex:input_type -> dm.ProductSchemaIndexReq + 137, // 215: dm.ProductManage.productSchemaTslImport:input_type -> dm.ProductSchemaTslImportReq + 138, // 216: dm.ProductManage.productSchemaTslRead:input_type -> dm.ProductSchemaTslReadReq + 87, // 217: dm.ProductManage.productCustomRead:input_type -> dm.ProductCustomReadReq + 88, // 218: dm.ProductManage.productCustomUpdate:input_type -> dm.ProductCustom + 32, // 219: dm.ProductManage.productCategoryCreate:input_type -> dm.ProductCategory + 32, // 220: dm.ProductManage.productCategoryUpdate:input_type -> dm.ProductCategory + 7, // 221: dm.ProductManage.productCategoryDelete:input_type -> dm.WithID + 36, // 222: dm.ProductManage.productCategoryIndex:input_type -> dm.ProductCategoryIndexReq + 8, // 223: dm.ProductManage.productCategoryRead:input_type -> dm.WithIDChildren + 34, // 224: dm.ProductManage.productCategorySchemaIndex:input_type -> dm.ProductCategorySchemaIndexReq + 35, // 225: dm.ProductManage.productCategorySchemaMultiUpdate:input_type -> dm.ProductCategorySchemaMultiSaveReq + 35, // 226: dm.ProductManage.productCategorySchemaMultiCreate:input_type -> dm.ProductCategorySchemaMultiSaveReq + 35, // 227: dm.ProductManage.productCategorySchemaMultiDelete:input_type -> dm.ProductCategorySchemaMultiSaveReq + 0, // 228: dm.SchemaManage.commonSchemaInit:input_type -> dm.Empty + 125, // 229: dm.SchemaManage.commonSchemaUpdate:input_type -> dm.CommonSchemaUpdateReq + 126, // 230: dm.SchemaManage.commonSchemaCreate:input_type -> dm.CommonSchemaCreateReq + 7, // 231: dm.SchemaManage.commonSchemaDelete:input_type -> dm.WithID + 127, // 232: dm.SchemaManage.commonSchemaIndex:input_type -> dm.CommonSchemaIndexReq + 38, // 233: dm.ProtocolManage.protocolInfoIndex:input_type -> dm.ProtocolInfoIndexReq + 6, // 234: dm.ProtocolManage.protocolInfoRead:input_type -> dm.WithIDCode + 40, // 235: dm.ProtocolManage.protocolInfoCreate:input_type -> dm.ProtocolInfo + 40, // 236: dm.ProtocolManage.protocolInfoUpdate:input_type -> dm.ProtocolInfo + 7, // 237: dm.ProtocolManage.protocolInfoDelete:input_type -> dm.WithID + 98, // 238: dm.DeviceGroup.groupInfoCreate:input_type -> dm.GroupInfo + 100, // 239: dm.DeviceGroup.groupInfoIndex:input_type -> dm.GroupInfoIndexReq + 8, // 240: dm.DeviceGroup.groupInfoRead:input_type -> dm.WithIDChildren + 98, // 241: dm.DeviceGroup.groupInfoUpdate:input_type -> dm.GroupInfo + 7, // 242: dm.DeviceGroup.groupInfoDelete:input_type -> dm.WithID + 103, // 243: dm.DeviceGroup.groupDeviceMultiCreate:input_type -> dm.GroupDeviceMultiSaveReq + 103, // 244: dm.DeviceGroup.groupDeviceMultiUpdate:input_type -> dm.GroupDeviceMultiSaveReq + 104, // 245: dm.DeviceGroup.groupDeviceIndex:input_type -> dm.GroupDeviceIndexReq + 106, // 246: dm.DeviceGroup.groupDeviceMultiDelete:input_type -> dm.GroupDeviceMultiDeleteReq + 81, // 247: dm.RemoteConfig.RemoteConfigCreate:input_type -> dm.RemoteConfigCreateReq + 82, // 248: dm.RemoteConfig.RemoteConfigIndex:input_type -> dm.RemoteConfigIndexReq + 84, // 249: dm.RemoteConfig.RemoteConfigPushAll:input_type -> dm.RemoteConfigPushAllReq + 85, // 250: dm.RemoteConfig.RemoteConfigLastRead:input_type -> dm.RemoteConfigLastReadReq + 63, // 251: dm.DeviceMsg.sdkLogIndex:input_type -> dm.SdkLogIndexReq + 54, // 252: dm.DeviceMsg.hubLogIndex:input_type -> dm.HubLogIndexReq + 60, // 253: dm.DeviceMsg.sendLogIndex:input_type -> dm.SendLogIndexReq + 57, // 254: dm.DeviceMsg.statusLogIndex:input_type -> dm.StatusLogIndexReq + 48, // 255: dm.DeviceMsg.propertyLogLatestIndex:input_type -> dm.PropertyLogLatestIndexReq + 47, // 256: dm.DeviceMsg.propertyLogIndex:input_type -> dm.PropertyLogIndexReq + 51, // 257: dm.DeviceMsg.eventLogIndex:input_type -> dm.EventLogIndexReq + 48, // 258: dm.DeviceMsg.shadowIndex:input_type -> dm.PropertyLogLatestIndexReq + 96, // 259: dm.DeviceMsg.gatewayCanBindIndex:input_type -> dm.GatewayCanBindIndexReq + 66, // 260: dm.DeviceInteract.actionSend:input_type -> dm.ActionSendReq + 68, // 261: dm.DeviceInteract.actionRead:input_type -> dm.RespReadReq + 71, // 262: dm.DeviceInteract.actionResp:input_type -> dm.ActionRespReq + 45, // 263: dm.DeviceInteract.propertyGetReportSend:input_type -> dm.PropertyGetReportSendReq + 69, // 264: dm.DeviceInteract.propertyControlSend:input_type -> dm.PropertyControlSendReq + 77, // 265: dm.DeviceInteract.propertyControlMultiSend:input_type -> dm.PropertyControlMultiSendReq + 68, // 266: dm.DeviceInteract.propertyControlRead:input_type -> dm.RespReadReq + 75, // 267: dm.DeviceInteract.sendMsg:input_type -> dm.SendMsgReq + 73, // 268: dm.DeviceInteract.gatewayGetFoundSend:input_type -> dm.GatewayGetFoundReq + 74, // 269: dm.DeviceInteract.gatewayNotifyBindSend:input_type -> dm.GatewayNotifyBindSendReq + 171, // 270: dm.OtaManage.otaFirmwareInfoCreate:input_type -> dm.OtaFirmwareInfoCreateReq + 172, // 271: dm.OtaManage.otaFirmwareInfoUpdate:input_type -> dm.OtaFirmwareInfoUpdateReq + 7, // 272: dm.OtaManage.otaFirmwareInfoDelete:input_type -> dm.WithID + 173, // 273: dm.OtaManage.otaFirmwareInfoIndex:input_type -> dm.OtaFirmwareInfoIndexReq + 7, // 274: dm.OtaManage.otaFirmwareInfoRead:input_type -> dm.WithID + 176, // 275: dm.OtaManage.otaFirmwareJobCreate:input_type -> dm.OtaFirmwareJobInfo + 179, // 276: dm.OtaManage.otaFirmwareJobIndex:input_type -> dm.OtaFirmwareJobIndexReq + 7, // 277: dm.OtaManage.otaFirmwareJobRead:input_type -> dm.WithID + 176, // 278: dm.OtaManage.otaFirmwareJobUpdate:input_type -> dm.OtaFirmwareJobInfo + 182, // 279: dm.OtaManage.otaFirmwareDeviceIndex:input_type -> dm.OtaFirmwareDeviceIndexReq + 185, // 280: dm.OtaManage.otaFirmwareDeviceCancel:input_type -> dm.OtaFirmwareDeviceCancelReq + 186, // 281: dm.OtaManage.otaFirmwareDeviceRetry:input_type -> dm.OtaFirmwareDeviceRetryReq + 187, // 282: dm.OtaManage.otaFirmwareDeviceConfirm:input_type -> dm.OtaFirmwareDeviceConfirmReq + 13, // 283: dm.OtaManage.otaModuleInfoCreate:input_type -> dm.OtaModuleInfo + 13, // 284: dm.OtaManage.otaModuleInfoUpdate:input_type -> dm.OtaModuleInfo + 7, // 285: dm.OtaManage.otaModuleInfoDelete:input_type -> dm.WithID + 11, // 286: dm.OtaManage.otaModuleInfoIndex:input_type -> dm.OtaModuleInfoIndexReq + 6, // 287: dm.OtaManage.otaModuleInfoRead:input_type -> dm.WithIDCode + 31, // 288: dm.userDevice.userDeviceCollectMultiCreate:input_type -> dm.UserDeviceCollectSave + 31, // 289: dm.userDevice.userDeviceCollectMultiDelete:input_type -> dm.UserDeviceCollectSave + 0, // 290: dm.userDevice.userDeviceCollectIndex:input_type -> dm.Empty + 25, // 291: dm.userDevice.userDeviceShareCreate:input_type -> dm.UserDeviceShareInfo + 25, // 292: dm.userDevice.userDeviceShareUpdate:input_type -> dm.UserDeviceShareInfo + 21, // 293: dm.userDevice.userDeviceShareDelete:input_type -> dm.UserDeviceShareReadReq + 24, // 294: dm.userDevice.userDeviceShareMultiDelete:input_type -> dm.UserDeviceShareMultiDeleteReq + 22, // 295: dm.userDevice.userDeviceShareIndex:input_type -> dm.UserDeviceShareIndexReq + 21, // 296: dm.userDevice.userDeviceShareRead:input_type -> dm.UserDeviceShareReadReq + 20, // 297: dm.userDevice.userDeviceTransfer:input_type -> dm.DeviceTransferReq + 28, // 298: dm.userDevice.userDeviceShareMultiCreate:input_type -> dm.UserDeviceShareMultiInfo + 29, // 299: dm.userDevice.userDeivceShareMultiIndex:input_type -> dm.UserDeviceShareMultiToken + 30, // 300: dm.userDevice.userDeivceShareMultiAccept:input_type -> dm.UserDeviceShareMultiAcceptReq + 0, // 301: dm.DeviceManage.rootCheck:output_type -> dm.Empty + 0, // 302: dm.DeviceManage.deviceInfoCreate:output_type -> dm.Empty + 0, // 303: dm.DeviceManage.deviceInfoUpdate:output_type -> dm.Empty + 0, // 304: dm.DeviceManage.deviceOnlineMultiFix:output_type -> dm.Empty + 0, // 305: dm.DeviceManage.deviceInfoDelete:output_type -> dm.Empty + 123, // 306: dm.DeviceManage.deviceInfoIndex:output_type -> dm.DeviceInfoIndexResp + 0, // 307: dm.DeviceManage.DeviceInfoMultiUpdate:output_type -> dm.Empty + 108, // 308: dm.DeviceManage.deviceInfoRead:output_type -> dm.DeviceInfo + 0, // 309: dm.DeviceManage.deviceInfoBind:output_type -> dm.Empty + 144, // 310: dm.DeviceManage.deviceInfoMultiBind:output_type -> dm.DeviceInfoMultiBindResp + 0, // 311: dm.DeviceManage.deviceInfoCanBind:output_type -> dm.Empty + 0, // 312: dm.DeviceManage.deviceInfoUnbind:output_type -> dm.Empty + 0, // 313: dm.DeviceManage.deviceTransfer:output_type -> dm.Empty + 0, // 314: dm.DeviceManage.deviceMove:output_type -> dm.Empty + 16, // 315: dm.DeviceManage.deviceModuleVersionRead:output_type -> dm.DeviceModuleVersion + 18, // 316: dm.DeviceManage.deviceModuleVersionIndex:output_type -> dm.DeviceModuleVersionIndexResp + 0, // 317: dm.DeviceManage.deviceGatewayMultiCreate:output_type -> dm.Empty + 0, // 318: dm.DeviceManage.deviceGatewayMultiUpdate:output_type -> dm.Empty + 94, // 319: dm.DeviceManage.deviceGatewayIndex:output_type -> dm.DeviceGatewayIndexResp + 0, // 320: dm.DeviceManage.deviceGatewayMultiDelete:output_type -> dm.Empty + 153, // 321: dm.DeviceManage.deviceInfoCount:output_type -> dm.DeviceInfoCount + 154, // 322: dm.DeviceManage.deviceTypeCount:output_type -> dm.DeviceTypeCountResp + 149, // 323: dm.DeviceManage.deviceCount:output_type -> dm.DeviceCountResp + 140, // 324: dm.DeviceManage.deviceProfileRead:output_type -> dm.DeviceProfile + 0, // 325: dm.DeviceManage.deviceProfileDelete:output_type -> dm.Empty + 0, // 326: dm.DeviceManage.deviceProfileUpdate:output_type -> dm.Empty + 147, // 327: dm.DeviceManage.deviceProfileIndex:output_type -> dm.DeviceProfileIndexResp + 0, // 328: dm.ProductManage.productInit:output_type -> dm.Empty + 0, // 329: dm.ProductManage.productInfoCreate:output_type -> dm.Empty + 0, // 330: dm.ProductManage.productInfoUpdate:output_type -> dm.Empty + 0, // 331: dm.ProductManage.productInfoDelete:output_type -> dm.Empty + 114, // 332: dm.ProductManage.productInfoIndex:output_type -> dm.ProductInfoIndexResp + 109, // 333: dm.ProductManage.productInfoRead:output_type -> dm.ProductInfo + 0, // 334: dm.ProductManage.productSchemaUpdate:output_type -> dm.Empty + 0, // 335: dm.ProductManage.productSchemaCreate:output_type -> dm.Empty + 0, // 336: dm.ProductManage.productSchemaMultiCreate:output_type -> dm.Empty + 0, // 337: dm.ProductManage.productSchemaDelete:output_type -> dm.Empty + 135, // 338: dm.ProductManage.productSchemaIndex:output_type -> dm.ProductSchemaIndexResp + 0, // 339: dm.ProductManage.productSchemaTslImport:output_type -> dm.Empty + 139, // 340: dm.ProductManage.productSchemaTslRead:output_type -> dm.ProductSchemaTslReadResp + 88, // 341: dm.ProductManage.productCustomRead:output_type -> dm.ProductCustom + 0, // 342: dm.ProductManage.productCustomUpdate:output_type -> dm.Empty + 7, // 343: dm.ProductManage.productCategoryCreate:output_type -> dm.WithID + 0, // 344: dm.ProductManage.productCategoryUpdate:output_type -> dm.Empty + 0, // 345: dm.ProductManage.productCategoryDelete:output_type -> dm.Empty + 37, // 346: dm.ProductManage.productCategoryIndex:output_type -> dm.ProductCategoryIndexResp + 32, // 347: dm.ProductManage.productCategoryRead:output_type -> dm.ProductCategory + 33, // 348: dm.ProductManage.productCategorySchemaIndex:output_type -> dm.ProductCategorySchemaIndexResp + 0, // 349: dm.ProductManage.productCategorySchemaMultiUpdate:output_type -> dm.Empty + 0, // 350: dm.ProductManage.productCategorySchemaMultiCreate:output_type -> dm.Empty + 0, // 351: dm.ProductManage.productCategorySchemaMultiDelete:output_type -> dm.Empty + 0, // 352: dm.SchemaManage.commonSchemaInit:output_type -> dm.Empty + 0, // 353: dm.SchemaManage.commonSchemaUpdate:output_type -> dm.Empty + 0, // 354: dm.SchemaManage.commonSchemaCreate:output_type -> dm.Empty + 0, // 355: dm.SchemaManage.commonSchemaDelete:output_type -> dm.Empty + 128, // 356: dm.SchemaManage.commonSchemaIndex:output_type -> dm.CommonSchemaIndexResp + 39, // 357: dm.ProtocolManage.protocolInfoIndex:output_type -> dm.ProtocolInfoIndexResp + 40, // 358: dm.ProtocolManage.protocolInfoRead:output_type -> dm.ProtocolInfo + 7, // 359: dm.ProtocolManage.protocolInfoCreate:output_type -> dm.WithID + 0, // 360: dm.ProtocolManage.protocolInfoUpdate:output_type -> dm.Empty + 0, // 361: dm.ProtocolManage.protocolInfoDelete:output_type -> dm.Empty + 7, // 362: dm.DeviceGroup.groupInfoCreate:output_type -> dm.WithID + 101, // 363: dm.DeviceGroup.groupInfoIndex:output_type -> dm.GroupInfoIndexResp + 98, // 364: dm.DeviceGroup.groupInfoRead:output_type -> dm.GroupInfo + 0, // 365: dm.DeviceGroup.groupInfoUpdate:output_type -> dm.Empty + 0, // 366: dm.DeviceGroup.groupInfoDelete:output_type -> dm.Empty + 0, // 367: dm.DeviceGroup.groupDeviceMultiCreate:output_type -> dm.Empty + 0, // 368: dm.DeviceGroup.groupDeviceMultiUpdate:output_type -> dm.Empty + 105, // 369: dm.DeviceGroup.groupDeviceIndex:output_type -> dm.GroupDeviceIndexResp + 0, // 370: dm.DeviceGroup.groupDeviceMultiDelete:output_type -> dm.Empty + 0, // 371: dm.RemoteConfig.RemoteConfigCreate:output_type -> dm.Empty + 83, // 372: dm.RemoteConfig.RemoteConfigIndex:output_type -> dm.RemoteConfigIndexResp + 0, // 373: dm.RemoteConfig.RemoteConfigPushAll:output_type -> dm.Empty + 86, // 374: dm.RemoteConfig.RemoteConfigLastRead:output_type -> dm.RemoteConfigLastReadResp + 64, // 375: dm.DeviceMsg.sdkLogIndex:output_type -> dm.SdkLogIndexResp + 55, // 376: dm.DeviceMsg.hubLogIndex:output_type -> dm.HubLogIndexResp + 61, // 377: dm.DeviceMsg.sendLogIndex:output_type -> dm.SendLogIndexResp + 58, // 378: dm.DeviceMsg.statusLogIndex:output_type -> dm.StatusLogIndexResp + 50, // 379: dm.DeviceMsg.propertyLogLatestIndex:output_type -> dm.PropertyLogIndexResp + 50, // 380: dm.DeviceMsg.propertyLogIndex:output_type -> dm.PropertyLogIndexResp + 53, // 381: dm.DeviceMsg.eventLogIndex:output_type -> dm.EventLogIndexResp + 43, // 382: dm.DeviceMsg.shadowIndex:output_type -> dm.ShadowIndexResp + 97, // 383: dm.DeviceMsg.gatewayCanBindIndex:output_type -> dm.GatewayCanBindIndexResp + 67, // 384: dm.DeviceInteract.actionSend:output_type -> dm.ActionSendResp + 67, // 385: dm.DeviceInteract.actionRead:output_type -> dm.ActionSendResp + 0, // 386: dm.DeviceInteract.actionResp:output_type -> dm.Empty + 46, // 387: dm.DeviceInteract.propertyGetReportSend:output_type -> dm.PropertyGetReportSendResp + 72, // 388: dm.DeviceInteract.propertyControlSend:output_type -> dm.PropertyControlSendResp + 79, // 389: dm.DeviceInteract.propertyControlMultiSend:output_type -> dm.PropertyControlMultiSendResp + 72, // 390: dm.DeviceInteract.propertyControlRead:output_type -> dm.PropertyControlSendResp + 76, // 391: dm.DeviceInteract.sendMsg:output_type -> dm.SendMsgResp + 0, // 392: dm.DeviceInteract.gatewayGetFoundSend:output_type -> dm.Empty + 0, // 393: dm.DeviceInteract.gatewayNotifyBindSend:output_type -> dm.Empty + 7, // 394: dm.OtaManage.otaFirmwareInfoCreate:output_type -> dm.WithID + 7, // 395: dm.OtaManage.otaFirmwareInfoUpdate:output_type -> dm.WithID + 0, // 396: dm.OtaManage.otaFirmwareInfoDelete:output_type -> dm.Empty + 174, // 397: dm.OtaManage.otaFirmwareInfoIndex:output_type -> dm.OtaFirmwareInfoIndexResp + 175, // 398: dm.OtaManage.otaFirmwareInfoRead:output_type -> dm.OtaFirmwareInfo + 7, // 399: dm.OtaManage.otaFirmwareJobCreate:output_type -> dm.WithID + 180, // 400: dm.OtaManage.otaFirmwareJobIndex:output_type -> dm.OtaFirmwareJobIndexResp + 176, // 401: dm.OtaManage.otaFirmwareJobRead:output_type -> dm.OtaFirmwareJobInfo + 0, // 402: dm.OtaManage.otaFirmwareJobUpdate:output_type -> dm.Empty + 184, // 403: dm.OtaManage.otaFirmwareDeviceIndex:output_type -> dm.OtaFirmwareDeviceIndexResp + 0, // 404: dm.OtaManage.otaFirmwareDeviceCancel:output_type -> dm.Empty + 0, // 405: dm.OtaManage.otaFirmwareDeviceRetry:output_type -> dm.Empty + 0, // 406: dm.OtaManage.otaFirmwareDeviceConfirm:output_type -> dm.Empty + 7, // 407: dm.OtaManage.otaModuleInfoCreate:output_type -> dm.WithID + 0, // 408: dm.OtaManage.otaModuleInfoUpdate:output_type -> dm.Empty + 0, // 409: dm.OtaManage.otaModuleInfoDelete:output_type -> dm.Empty + 12, // 410: dm.OtaManage.otaModuleInfoIndex:output_type -> dm.OtaModuleInfoIndexResp + 13, // 411: dm.OtaManage.otaModuleInfoRead:output_type -> dm.OtaModuleInfo + 0, // 412: dm.userDevice.userDeviceCollectMultiCreate:output_type -> dm.Empty + 0, // 413: dm.userDevice.userDeviceCollectMultiDelete:output_type -> dm.Empty + 31, // 414: dm.userDevice.userDeviceCollectIndex:output_type -> dm.UserDeviceCollectSave + 7, // 415: dm.userDevice.userDeviceShareCreate:output_type -> dm.WithID + 0, // 416: dm.userDevice.userDeviceShareUpdate:output_type -> dm.Empty + 0, // 417: dm.userDevice.userDeviceShareDelete:output_type -> dm.Empty + 0, // 418: dm.userDevice.userDeviceShareMultiDelete:output_type -> dm.Empty + 23, // 419: dm.userDevice.userDeviceShareIndex:output_type -> dm.UserDeviceShareIndexResp + 25, // 420: dm.userDevice.userDeviceShareRead:output_type -> dm.UserDeviceShareInfo + 0, // 421: dm.userDevice.userDeviceTransfer:output_type -> dm.Empty + 29, // 422: dm.userDevice.userDeviceShareMultiCreate:output_type -> dm.UserDeviceShareMultiToken + 28, // 423: dm.userDevice.userDeivceShareMultiIndex:output_type -> dm.UserDeviceShareMultiInfo + 0, // 424: dm.userDevice.userDeivceShareMultiAccept:output_type -> dm.Empty + 301, // [301:425] is the sub-list for method output_type + 177, // [177:301] is the sub-list for method input_type + 177, // [177:177] is the sub-list for extension type_name + 177, // [177:177] is the sub-list for extension extendee + 0, // [0:177] is the sub-list for field type_name } func init() { file_proto_dm_proto_init() } @@ -17528,7 +17623,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserDeviceShareMultiInfo); i { + switch v := v.(*DeviceShareInfo); i { case 0: return &v.state case 1: @@ -17540,7 +17635,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserDeviceShareMultiToken); i { + switch v := v.(*UserDeviceShareMultiInfo); i { case 0: return &v.state case 1: @@ -17552,7 +17647,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserDeviceShareMultiAcceptReq); i { + switch v := v.(*UserDeviceShareMultiToken); i { case 0: return &v.state case 1: @@ -17564,7 +17659,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserDeviceCollectSave); i { + switch v := v.(*UserDeviceShareMultiAcceptReq); i { case 0: return &v.state case 1: @@ -17576,7 +17671,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProductCategory); i { + switch v := v.(*UserDeviceCollectSave); i { case 0: return &v.state case 1: @@ -17588,7 +17683,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProductCategorySchemaIndexResp); i { + switch v := v.(*ProductCategory); i { case 0: return &v.state case 1: @@ -17600,7 +17695,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProductCategorySchemaIndexReq); i { + switch v := v.(*ProductCategorySchemaIndexResp); i { case 0: return &v.state case 1: @@ -17612,7 +17707,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProductCategorySchemaMultiSaveReq); i { + switch v := v.(*ProductCategorySchemaIndexReq); i { case 0: return &v.state case 1: @@ -17624,7 +17719,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProductCategoryIndexReq); i { + switch v := v.(*ProductCategorySchemaMultiSaveReq); i { case 0: return &v.state case 1: @@ -17636,7 +17731,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProductCategoryIndexResp); i { + switch v := v.(*ProductCategoryIndexReq); i { case 0: return &v.state case 1: @@ -17648,7 +17743,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProtocolInfoIndexReq); i { + switch v := v.(*ProductCategoryIndexResp); i { case 0: return &v.state case 1: @@ -17660,7 +17755,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProtocolInfoIndexResp); i { + switch v := v.(*ProtocolInfoIndexReq); i { case 0: return &v.state case 1: @@ -17672,7 +17767,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProtocolInfo); i { + switch v := v.(*ProtocolInfoIndexResp); i { case 0: return &v.state case 1: @@ -17684,7 +17779,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProtocolConfigField); i { + switch v := v.(*ProtocolInfo); i { case 0: return &v.state case 1: @@ -17696,7 +17791,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProtocolConfigInfo); i { + switch v := v.(*ProtocolConfigField); i { case 0: return &v.state case 1: @@ -17708,7 +17803,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShadowIndexResp); i { + switch v := v.(*ProtocolConfigInfo); i { case 0: return &v.state case 1: @@ -17720,7 +17815,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShadowIndex); i { + switch v := v.(*ShadowIndexResp); i { case 0: return &v.state case 1: @@ -17732,7 +17827,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PropertyGetReportSendReq); i { + switch v := v.(*ShadowIndex); i { case 0: return &v.state case 1: @@ -17744,7 +17839,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PropertyGetReportSendResp); i { + switch v := v.(*PropertyGetReportSendReq); i { case 0: return &v.state case 1: @@ -17756,7 +17851,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PropertyLogIndexReq); i { + switch v := v.(*PropertyGetReportSendResp); i { case 0: return &v.state case 1: @@ -17768,7 +17863,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PropertyLogLatestIndexReq); i { + switch v := v.(*PropertyLogIndexReq); i { case 0: return &v.state case 1: @@ -17780,7 +17875,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PropertyLogInfo); i { + switch v := v.(*PropertyLogLatestIndexReq); i { case 0: return &v.state case 1: @@ -17792,7 +17887,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PropertyLogIndexResp); i { + switch v := v.(*PropertyLogInfo); i { case 0: return &v.state case 1: @@ -17804,7 +17899,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EventLogIndexReq); i { + switch v := v.(*PropertyLogIndexResp); i { case 0: return &v.state case 1: @@ -17816,7 +17911,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EventLogInfo); i { + switch v := v.(*EventLogIndexReq); i { case 0: return &v.state case 1: @@ -17828,7 +17923,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EventLogIndexResp); i { + switch v := v.(*EventLogInfo); i { case 0: return &v.state case 1: @@ -17840,7 +17935,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HubLogIndexReq); i { + switch v := v.(*EventLogIndexResp); i { case 0: return &v.state case 1: @@ -17852,7 +17947,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HubLogIndexResp); i { + switch v := v.(*HubLogIndexReq); i { case 0: return &v.state case 1: @@ -17864,7 +17959,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HubLogInfo); i { + switch v := v.(*HubLogIndexResp); i { case 0: return &v.state case 1: @@ -17876,7 +17971,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusLogIndexReq); i { + switch v := v.(*HubLogInfo); i { case 0: return &v.state case 1: @@ -17888,7 +17983,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusLogIndexResp); i { + switch v := v.(*StatusLogIndexReq); i { case 0: return &v.state case 1: @@ -17900,7 +17995,7 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusLogInfo); i { + switch v := v.(*StatusLogIndexResp); i { case 0: return &v.state case 1: @@ -17912,6 +18007,18 @@ func file_proto_dm_proto_init() { } } file_proto_dm_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatusLogInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_proto_dm_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendLogIndexReq); i { case 0: return &v.state @@ -17923,7 +18030,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendLogIndexResp); i { case 0: return &v.state @@ -17935,7 +18042,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendLogInfo); i { case 0: return &v.state @@ -17947,7 +18054,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkLogIndexReq); i { case 0: return &v.state @@ -17959,7 +18066,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkLogIndexResp); i { case 0: return &v.state @@ -17971,7 +18078,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SdkLogInfo); i { case 0: return &v.state @@ -17983,7 +18090,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionSendReq); i { case 0: return &v.state @@ -17995,7 +18102,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionSendResp); i { case 0: return &v.state @@ -18007,7 +18114,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RespReadReq); i { case 0: return &v.state @@ -18019,7 +18126,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PropertyControlSendReq); i { case 0: return &v.state @@ -18031,7 +18138,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WithProfile); i { case 0: return &v.state @@ -18043,7 +18150,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionRespReq); i { case 0: return &v.state @@ -18055,7 +18162,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PropertyControlSendResp); i { case 0: return &v.state @@ -18067,7 +18174,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GatewayGetFoundReq); i { case 0: return &v.state @@ -18079,7 +18186,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GatewayNotifyBindSendReq); i { case 0: return &v.state @@ -18091,7 +18198,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendMsgReq); i { case 0: return &v.state @@ -18103,7 +18210,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendMsgResp); i { case 0: return &v.state @@ -18115,7 +18222,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PropertyControlMultiSendReq); i { case 0: return &v.state @@ -18127,7 +18234,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PropertyControlSendMsg); i { case 0: return &v.state @@ -18139,7 +18246,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PropertyControlMultiSendResp); i { case 0: return &v.state @@ -18151,7 +18258,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProductRemoteConfig); i { case 0: return &v.state @@ -18163,7 +18270,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoteConfigCreateReq); i { case 0: return &v.state @@ -18175,7 +18282,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoteConfigIndexReq); i { case 0: return &v.state @@ -18187,7 +18294,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoteConfigIndexResp); i { case 0: return &v.state @@ -18199,7 +18306,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoteConfigPushAllReq); i { case 0: return &v.state @@ -18211,7 +18318,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoteConfigLastReadReq); i { case 0: return &v.state @@ -18223,7 +18330,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoteConfigLastReadResp); i { case 0: return &v.state @@ -18235,7 +18342,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProductCustomReadReq); i { case 0: return &v.state @@ -18247,7 +18354,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProductCustom); i { case 0: return &v.state @@ -18259,7 +18366,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CustomTopic); i { case 0: return &v.state @@ -18271,7 +18378,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceGatewayBindDevice); i { case 0: return &v.state @@ -18283,7 +18390,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceGatewaySign); i { case 0: return &v.state @@ -18295,7 +18402,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceGatewayMultiCreateReq); i { case 0: return &v.state @@ -18307,7 +18414,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceGatewayIndexReq); i { case 0: return &v.state @@ -18319,7 +18426,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceGatewayIndexResp); i { case 0: return &v.state @@ -18331,7 +18438,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceGatewayMultiSaveReq); i { case 0: return &v.state @@ -18343,7 +18450,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GatewayCanBindIndexReq); i { case 0: return &v.state @@ -18355,7 +18462,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GatewayCanBindIndexResp); i { case 0: return &v.state @@ -18367,7 +18474,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupInfo); i { case 0: return &v.state @@ -18379,7 +18486,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupInfoCreateReq); i { case 0: return &v.state @@ -18391,7 +18498,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupInfoIndexReq); i { case 0: return &v.state @@ -18403,7 +18510,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupInfoIndexResp); i { case 0: return &v.state @@ -18415,7 +18522,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupInfoUpdateReq); i { case 0: return &v.state @@ -18427,7 +18534,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupDeviceMultiSaveReq); i { case 0: return &v.state @@ -18439,7 +18546,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupDeviceIndexReq); i { case 0: return &v.state @@ -18451,7 +18558,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupDeviceIndexResp); i { case 0: return &v.state @@ -18463,7 +18570,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupDeviceMultiDeleteReq); i { case 0: return &v.state @@ -18475,7 +18582,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Point); i { case 0: return &v.state @@ -18487,7 +18594,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceInfo); i { case 0: return &v.state @@ -18499,7 +18606,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProductInfo); i { case 0: return &v.state @@ -18511,7 +18618,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProductCustomUi); i { case 0: return &v.state @@ -18523,7 +18630,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProductInfoDeleteReq); i { case 0: return &v.state @@ -18535,7 +18642,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProductInfoReadReq); i { case 0: return &v.state @@ -18547,7 +18654,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProductInfoIndexReq); i { case 0: return &v.state @@ -18559,7 +18666,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProductInfoIndexResp); i { case 0: return &v.state @@ -18571,7 +18678,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceOnlineMultiFixReq); i { case 0: return &v.state @@ -18583,7 +18690,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceOnlineMultiFix); i { case 0: return &v.state @@ -18595,7 +18702,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceInfoDeleteReq); i { case 0: return &v.state @@ -18607,7 +18714,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceCore); i { case 0: return &v.state @@ -18619,7 +18726,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceError); i { case 0: return &v.state @@ -18631,7 +18738,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceInfoReadReq); i { case 0: return &v.state @@ -18643,7 +18750,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceInfoMultiUpdateReq); i { case 0: return &v.state @@ -18655,7 +18762,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceInfoIndexReq); i { case 0: return &v.state @@ -18667,7 +18774,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceInfoIndexResp); i { case 0: return &v.state @@ -18679,7 +18786,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RootCheckReq); i { case 0: return &v.state @@ -18691,7 +18798,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommonSchemaUpdateReq); i { case 0: return &v.state @@ -18703,7 +18810,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommonSchemaCreateReq); i { case 0: return &v.state @@ -18715,7 +18822,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommonSchemaIndexReq); i { case 0: return &v.state @@ -18727,7 +18834,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommonSchemaIndexResp); i { case 0: return &v.state @@ -18739,7 +18846,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommonSchemaInfo); i { case 0: return &v.state @@ -18751,7 +18858,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProductSchemaUpdateReq); i { case 0: return &v.state @@ -18763,7 +18870,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProductSchemaMultiCreateReq); i { case 0: return &v.state @@ -18775,7 +18882,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProductSchemaCreateReq); i { case 0: return &v.state @@ -18787,7 +18894,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProductSchemaDeleteReq); i { case 0: return &v.state @@ -18799,7 +18906,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProductSchemaIndexReq); i { case 0: return &v.state @@ -18811,7 +18918,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProductSchemaIndexResp); i { case 0: return &v.state @@ -18823,7 +18930,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProductSchemaInfo); i { case 0: return &v.state @@ -18835,7 +18942,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProductSchemaTslImportReq); i { case 0: return &v.state @@ -18847,7 +18954,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProductSchemaTslReadReq); i { case 0: return &v.state @@ -18859,7 +18966,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProductSchemaTslReadResp); i { case 0: return &v.state @@ -18871,7 +18978,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceProfile); i { case 0: return &v.state @@ -18883,7 +18990,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceProfileReadReq); i { case 0: return &v.state @@ -18895,7 +19002,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceInfoCanBindReq); i { case 0: return &v.state @@ -18907,7 +19014,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceInfoMultiBindReq); i { case 0: return &v.state @@ -18919,7 +19026,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceInfoMultiBindResp); i { case 0: return &v.state @@ -18931,7 +19038,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceInfoBindReq); i { case 0: return &v.state @@ -18943,7 +19050,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceProfileIndexReq); i { case 0: return &v.state @@ -18955,7 +19062,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceProfileIndexResp); i { case 0: return &v.state @@ -18967,7 +19074,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceCountReq); i { case 0: return &v.state @@ -18979,7 +19086,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceCountResp); i { case 0: return &v.state @@ -18991,7 +19098,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceCountInfo); i { case 0: return &v.state @@ -19003,7 +19110,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceInfoCountReq); i { case 0: return &v.state @@ -19015,7 +19122,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceTypeCountReq); i { case 0: return &v.state @@ -19027,7 +19134,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceInfoCount); i { case 0: return &v.state @@ -19039,7 +19146,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceTypeCountResp); i { case 0: return &v.state @@ -19051,7 +19158,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Firmware); i { case 0: return &v.state @@ -19063,7 +19170,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FirmwareResp); i { case 0: return &v.state @@ -19075,7 +19182,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FirmwareInfo); i { case 0: return &v.state @@ -19087,7 +19194,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaFirmwareFile); i { case 0: return &v.state @@ -19099,7 +19206,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FirmwareInfoDeleteReq); i { case 0: return &v.state @@ -19111,7 +19218,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FirmwareInfoDeleteResp); i { case 0: return &v.state @@ -19123,7 +19230,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FirmwareInfoIndexReq); i { case 0: return &v.state @@ -19135,7 +19242,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FirmwareInfoIndexResp); i { case 0: return &v.state @@ -19147,7 +19254,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FirmwareInfoReadReq); i { case 0: return &v.state @@ -19159,7 +19266,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaFirmwareFileReq); i { case 0: return &v.state @@ -19171,7 +19278,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaFirmwareFileInfo); i { case 0: return &v.state @@ -19183,7 +19290,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaFirmwareFileResp); i { case 0: return &v.state @@ -19195,7 +19302,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaFirmwareFileIndexReq); i { case 0: return &v.state @@ -19207,7 +19314,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaFirmwareFileIndexResp); i { case 0: return &v.state @@ -19219,7 +19326,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FirmwareInfoReadResp); i { case 0: return &v.state @@ -19231,7 +19338,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FirmwareFile); i { case 0: return &v.state @@ -19243,7 +19350,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaFirmwareInfoCreateReq); i { case 0: return &v.state @@ -19255,7 +19362,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaFirmwareInfoUpdateReq); i { case 0: return &v.state @@ -19267,7 +19374,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaFirmwareInfoIndexReq); i { case 0: return &v.state @@ -19279,7 +19386,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaFirmwareInfoIndexResp); i { case 0: return &v.state @@ -19291,7 +19398,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaFirmwareInfo); i { case 0: return &v.state @@ -19303,7 +19410,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaFirmwareJobInfo); i { case 0: return &v.state @@ -19315,7 +19422,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaJobDynamicInfo); i { case 0: return &v.state @@ -19327,7 +19434,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaJobStaticInfo); i { case 0: return &v.state @@ -19339,7 +19446,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaFirmwareJobIndexReq); i { case 0: return &v.state @@ -19351,7 +19458,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaFirmwareJobIndexResp); i { case 0: return &v.state @@ -19363,7 +19470,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaJobByDeviceIndexReq); i { case 0: return &v.state @@ -19375,7 +19482,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaFirmwareDeviceIndexReq); i { case 0: return &v.state @@ -19387,7 +19494,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaFirmwareDeviceInfo); i { case 0: return &v.state @@ -19399,7 +19506,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[184].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaFirmwareDeviceIndexResp); i { case 0: return &v.state @@ -19411,7 +19518,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[184].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaFirmwareDeviceCancelReq); i { case 0: return &v.state @@ -19423,7 +19530,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaFirmwareDeviceRetryReq); i { case 0: return &v.state @@ -19435,7 +19542,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OtaFirmwareDeviceConfirmReq); i { case 0: return &v.state @@ -19447,7 +19554,7 @@ func file_proto_dm_proto_init() { return nil } } - file_proto_dm_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} { + file_proto_dm_proto_msgTypes[188].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PageInfo_OrderBy); i { case 0: return &v.state @@ -19466,7 +19573,7 @@ func file_proto_dm_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_proto_dm_proto_rawDesc, NumEnums: 0, - NumMessages: 206, + NumMessages: 207, NumExtensions: 0, NumServices: 10, }, diff --git a/service/dmsvr/proto/dm.proto b/service/dmsvr/proto/dm.proto index 656bf06b4..952316468 100644 --- a/service/dmsvr/proto/dm.proto +++ b/service/dmsvr/proto/dm.proto @@ -454,8 +454,16 @@ message SharePerm{ int64 perm =1;//1:r(只读) 3(默认):rw(可读可写) } +message DeviceShareInfo{ + string productID = 1; //产品id + string productName = 4; //产品名称 只读 + string deviceName = 2; //设备名称 + string productImg = 3; //产品图片 + google.protobuf.StringValue deviceAlias = 5; //设备别名 读写 +} + message UserDeviceShareMultiInfo{ - repeated DeviceCore devices = 1;//设备信息 + repeated DeviceShareInfo devices = 1;//设备信息 map schemaPerm = 2;//物模型权限,只需要填写需要授权并授权的物模型id map accessPerm = 3;//操作权限 hubLog:设备消息记录,ota:ota升级权限,deviceTiming:设备定时 int64 authType =4;//授权类型:1:全部授权 2:部分授权 From b66aec824ac854cdada8d2baa7d84c122bf24d0e Mon Sep 17 00:00:00 2001 From: zev Date: Tue, 22 Oct 2024 17:47:51 +0800 Subject: [PATCH 2/2] dev: add go sum --- go.sum | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/go.sum b/go.sum index fccda5bde..696c7ab3c 100644 --- a/go.sum +++ b/go.sum @@ -4,8 +4,8 @@ gitee.com/unitedrhino/core v1.0.0 h1:oSQnx4t1hXRGgTy0u9+9HYidcxDAC2wjL3ypj0nplys gitee.com/unitedrhino/core v1.0.0/go.mod h1:FEt25YTCCFW/FFuR4CoPZCASIM0ITpBhek5L42F+nww= gitee.com/unitedrhino/driver-go/v3 v3.30.1 h1:hVBG8jRPaPL+fS/tAvsG60Jt7QvLW50OQuD0Ms+6iao= gitee.com/unitedrhino/driver-go/v3 v3.30.1/go.mod h1:Kdr+5rPmtqqxpliQ0NJrg24F9jCHcwywyWiDaVA5eEQ= -gitee.com/unitedrhino/share v1.0.8 h1:dEdqpoZWRxvglZB7qfxr5pkPLDeBLRtWc/Nh49ljsv8= -gitee.com/unitedrhino/share v1.0.8/go.mod h1:Dl3q5/yyaPFigYpf/e0YEiLypkM8nkKR2m/C06IOvZs= +gitee.com/unitedrhino/share v1.0.9 h1:QEEOf+DqY7RDhglCB49MAvJleFjFGymByt7L5U9yIio= +gitee.com/unitedrhino/share v1.0.9/go.mod h1:Dl3q5/yyaPFigYpf/e0YEiLypkM8nkKR2m/C06IOvZs= gitee.com/unitedrhino/squirrel v1.20.5 h1:Mi11U2zk3VEPUMh2+TxThcjRkFA3rtBwVK6qL8dnTmU= gitee.com/unitedrhino/squirrel v1.20.5/go.mod h1:NVTC7zI2TMArBB7L0eOp67c0TVBOJ3TKpY+Qbs8R+TU= github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8=