diff --git a/api/dataimport/for-trigger_test.go b/api/dataimport/for-trigger_test.go index 81d49531..fb9eeda7 100644 --- a/api/dataimport/for-trigger_test.go +++ b/api/dataimport/for-trigger_test.go @@ -234,6 +234,7 @@ func printArchiveOKLogOutput(logger *logger.StdOutLoggerForTest, db *mongo.Datab } // Clear the time stamp so it doesn't change next time we run test summary.TimestampUnixSec = 0 + summary.CompleteTimeStampUnixSec = 0 b, err := protojson.Marshal(summary) if err != nil { @@ -390,6 +391,7 @@ func printManualOKLogOutput(log *logger.StdOutLoggerForTest, db *mongo.Database, } else { // Clear the time stamp so it doesn't change next time we run test summary.TimestampUnixSec = 0 + summary.CompleteTimeStampUnixSec = 0 } b, err := protojson.Marshal(summary) diff --git a/api/dataimport/internal/output/output.go b/api/dataimport/internal/output/output.go index e67d6e2a..07757757 100644 --- a/api/dataimport/internal/output/output.go +++ b/api/dataimport/internal/output/output.go @@ -38,6 +38,7 @@ import ( "github.com/pixlise/core/v4/core/fileaccess" "github.com/pixlise/core/v4/core/gdsfilename" "github.com/pixlise/core/v4/core/logger" + "github.com/pixlise/core/v4/core/scan" "github.com/pixlise/core/v4/core/utils" protos "github.com/pixlise/core/v4/generated-protos" "go.mongodb.org/mongo-driver/bson" @@ -361,7 +362,13 @@ func (s *PIXLISEDataSaver) Save( return fmt.Errorf("Failed to get dataset file size for: %v", outFilePath) } - summaryData := makeSummaryFileContent(&exp, data.DatasetID, data.Instrument, data.Meta, int(fi.Size()), creationUnixTimeSec, data.CreatorUserId) + var prevSavedScan *protos.ScanItem + if prevSavedScan, err = scan.ReadScanItem(data.DatasetID, db); err != nil { + // NOTE: this is largely paranoia, in case ReadScanItem changes and returns errors even on read + prevSavedScan = nil + } + + summaryData := makeSummaryFileContent(&exp, prevSavedScan, data.DatasetID, data.Instrument, data.Meta /*int(fi.Size()),*/, creationUnixTimeSec, data.CreatorUserId) jobLog.Infof("Writing summary to DB for %v...", summaryData.Id) diff --git a/api/dataimport/internal/output/summary.go b/api/dataimport/internal/output/summary.go index 10721293..87dc041f 100644 --- a/api/dataimport/internal/output/summary.go +++ b/api/dataimport/internal/output/summary.go @@ -27,10 +27,11 @@ import ( func makeSummaryFileContent( exp *protos.Experiment, + prevSavedScan *protos.ScanItem, datasetID string, sourceInstrument protos.ScanInstrument, meta dataConvertModels.FileMetaData, - fileSize int, + //fileSize int, creationUnixTimeSec int64, creatorUserId string) *protos.ScanItem { contextImgCount := len(exp.AlignedContextImages) + len(exp.UnalignedContextImages) + len(exp.MatchedAlignedContextImages) @@ -93,16 +94,52 @@ func makeSummaryFileContent( // what it's displaying s := &protos.ScanItem{ - Id: datasetID, - Title: meta.Title, - Description: "", - DataTypes: dataTypes, - Instrument: sourceInstrument, - InstrumentConfig: exp.DetectorConfig, - TimestampUnixSec: uint32(creationUnixTimeSec), - Meta: saveMeta, - ContentCounts: contentCounts, - CreatorUserId: creatorUserId, + Id: datasetID, + Title: meta.Title, + Description: "", + DataTypes: dataTypes, + Instrument: sourceInstrument, + InstrumentConfig: exp.DetectorConfig, + TimestampUnixSec: uint32(creationUnixTimeSec), + Meta: saveMeta, + ContentCounts: contentCounts, + CreatorUserId: creatorUserId, + PreviousImportTimesUnixSec: []uint32{}, } + + // If we've got a previously stored ScanItem, we are updating it, so read its time stamp into the array of previous time stamps + isComplete := exp.NormalSpectra == exp.PseudoIntensities*2 + + if prevSavedScan != nil { + // Build the list of previous import times + // Preserve the previous list... + s.PreviousImportTimesUnixSec = append(s.PreviousImportTimesUnixSec, prevSavedScan.PreviousImportTimesUnixSec...) + + // Add new time at the end + s.PreviousImportTimesUnixSec = append(s.PreviousImportTimesUnixSec, prevSavedScan.TimestampUnixSec) + } + + // Save a time stamp for completion + if isComplete { + // If previous scan was also complete, DON'T update the time stamp, just preserve it + if prevSavedScan != nil && prevSavedScan.CompleteTimeStampUnixSec > 0 { + s.CompleteTimeStampUnixSec = prevSavedScan.CompleteTimeStampUnixSec + } else { + // We must've just completed now, so save the time + s.CompleteTimeStampUnixSec = uint32(creationUnixTimeSec) + } + } + + // Preserve user-editable fields + if prevSavedScan != nil { + s.Tags = prevSavedScan.Tags + s.Description = prevSavedScan.Description + + if len(prevSavedScan.Description) > 0 { + // User has entered a description so perserve the title too + s.Title = prevSavedScan.Title + } + } + return s } diff --git a/api/quantification/autoQuantification.go b/api/quantification/autoQuantification.go index bb5cecbc..eedfb0c4 100644 --- a/api/quantification/autoQuantification.go +++ b/api/quantification/autoQuantification.go @@ -3,10 +3,12 @@ package quantification import ( "context" "fmt" + "strconv" "github.com/pixlise/core/v4/api/dbCollections" "github.com/pixlise/core/v4/api/services" "github.com/pixlise/core/v4/api/specialUserIds" + "github.com/pixlise/core/v4/api/ws/wsHelpers" protos "github.com/pixlise/core/v4/generated-protos" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo/options" @@ -23,11 +25,14 @@ func RunAutoQuantifications(scanId string, svcs *services.APIServices) { quantNames := []string{"AutoQuant-PDS", "AutoQuant-PIXL"} quantModes := []string{quantModeCombinedAB, quantModeSeparateAB} quantElements := [][]string{ - // PDS - []string{"Na2O", "MgO", "Al2O3", "SiO2", "P2O5", "SO3", "Cl", "K2O", "CaO", "TiO2", "Cr2O3", "MnO", "FeO-T", "NiO", "ZnO", "Br"}, - []string{"Na2O", "MgO", "Al2O3", "SiO2", "P2O5", "SO3", "Cl", "K2O", "CaO", "TiO2", "Cr2O3", "MnO", "FeO-T", "NiO", "ZnO", "GeO", "Br", "Rb2O", "SrO", "Y2O3", "ZrO2"}, + // PDS: intended "Na2O", "MgO", "Al2O3", "SiO2", "P2O5", "SO3", "Cl", "K2O", "CaO", "TiO2", "Cr2O3", "MnO", "FeO-T", "NiO", "ZnO", "Br" + // But we must specify elements only! Expecting PIQUANT to determine the oxide states to write + []string{"Na", "Mg", "Al", "Si", "P", "S", "Cl", "K", "Ca", "Ti", "Cr", "Mn", "Fe", "Ni", "Zn", "Br"}, + // PIXL: intended "Na2O", "MgO", "Al2O3", "SiO2", "P2O5", "SO3", "Cl", "K2O", "CaO", "TiO2", "Cr2O3", "MnO", "FeO-T", "NiO", "ZnO", "GeO", "Br", "Rb2O", "SrO", "Y2O3", "ZrO2" + // But we must specify elements only! Expecting PIQUANT to determine the oxide states to write + []string{"Na", "Mg", "Al", "Si", "P", "S", "Cl", "K", "Ca", "Ti", "Cr", "Mn", "Fe", "Ni", "Zn", "Ge", "Br", "Rb", "Sr", "Y", "Zr"}, } - detector := "PIXL/v7" + detector := "PIXL/PiquantConfigs/v7" allNames := []string{} for _, name := range quantNames { @@ -52,6 +57,26 @@ func RunAutoQuantifications(scanId string, svcs *services.APIServices) { return } + exprPB, err := wsHelpers.ReadDatasetFile(scanId, svcs) + if err != nil { + svcs.Log.Errorf("AutoQuant failed to read scan %v to determine PMC list: %v", scanId, err) + return + } + + pmcs := []int32{} + for _, loc := range exprPB.Locations { + pmc, err := strconv.Atoi(loc.Id) + if err != nil { + svcs.Log.Errorf("AutoQuant: Failed to read PMC %v from scan %v. Skipping...", loc.Id, scanId) + continue + } + + if len(loc.PseudoIntensities) > 0 && len(loc.PseudoIntensities[0].ElementIntensities) > 0 { + // We have quantifiable data for this + pmcs = append(pmcs, int32(pmc)) + } + } + // Start all the quants for c, name := range quantNames { for _, m := range quantModes { @@ -59,11 +84,11 @@ func RunAutoQuantifications(scanId string, svcs *services.APIServices) { Command: "map", Name: makeAutoQuantName(name, m), ScanId: scanId, - Pmcs: []int32{}, + Pmcs: pmcs, Elements: quantElements[c], DetectorConfig: detector, - Parameters: "", - RunTimeSec: 0, + Parameters: "-Fe,1", + RunTimeSec: 300, QuantMode: m, RoiIDs: []string{}, IncludeDwells: false, diff --git a/api/ws/handlers/scan.go b/api/ws/handlers/scan.go index 9d0fe002..904e88fd 100644 --- a/api/ws/handlers/scan.go +++ b/api/ws/handlers/scan.go @@ -15,6 +15,7 @@ import ( "github.com/pixlise/core/v4/api/dbCollections" "github.com/pixlise/core/v4/api/filepaths" "github.com/pixlise/core/v4/api/job" + "github.com/pixlise/core/v4/api/quantification" "github.com/pixlise/core/v4/api/services" "github.com/pixlise/core/v4/api/ws/wsHelpers" "github.com/pixlise/core/v4/core/errorwithstatus" @@ -708,3 +709,13 @@ func HandleScanAutoShareWriteReq(req *protos.ScanAutoShareWriteReq, hctx wsHelpe return &protos.ScanAutoShareWriteResp{}, nil } + +func HandleScanTriggerAutoQuantReq(req *protos.ScanTriggerAutoQuantReq, hctx wsHelpers.HandlerContext) (*protos.ScanTriggerAutoQuantResp, error) { + if err := wsHelpers.CheckStringField(&req.ScanId, "ScanId", 1, wsHelpers.IdFieldMaxLength); err != nil { + return nil, err + } + + quantification.RunAutoQuantifications(req.ScanId, hctx.Svcs) + + return &protos.ScanTriggerAutoQuantResp{}, nil +} diff --git a/api/ws/handlers/selection-entry.go b/api/ws/handlers/selection-entry.go index 95ec31b7..e3de23b2 100644 --- a/api/ws/handlers/selection-entry.go +++ b/api/ws/handlers/selection-entry.go @@ -94,7 +94,7 @@ func writeSelection(id string, idxs *protos.ScanEntryRange, db *mongo.Database, } // Modified and Upsert counts will be 0 if the selection hasn't changed, so we just check matched - if dbResult.MatchedCount != 1 { + if dbResult.MatchedCount != 1 && dbResult.UpsertedCount != 1 { logger.Errorf("writeSelection (%v) UpdateByID result had unexpected counts %+v", id, dbResult) } diff --git a/data-formats b/data-formats index 616b73c4..60f8fc25 160000 --- a/data-formats +++ b/data-formats @@ -1 +1 @@ -Subproject commit 616b73c482c02d0ff67d3283dd8acb7d8ce34ad1 +Subproject commit 60f8fc2582eb239323ea0745f6c61fea392711a9 diff --git a/generated-protos/detector-config-msgs.pb.go b/generated-protos/detector-config-msgs.pb.go index 594ad16b..e1d80b24 100644 --- a/generated-protos/detector-config-msgs.pb.go +++ b/generated-protos/detector-config-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: detector-config-msgs.proto package protos diff --git a/generated-protos/detector-config.pb.go b/generated-protos/detector-config.pb.go index 7dddbd9d..5d5b19c5 100644 --- a/generated-protos/detector-config.pb.go +++ b/generated-protos/detector-config.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: detector-config.proto package protos diff --git a/generated-protos/diffraction-data.pb.go b/generated-protos/diffraction-data.pb.go index a16350e0..58ce0764 100644 --- a/generated-protos/diffraction-data.pb.go +++ b/generated-protos/diffraction-data.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: diffraction-data.proto package protos diff --git a/generated-protos/diffraction-detected-peak-msgs.pb.go b/generated-protos/diffraction-detected-peak-msgs.pb.go index 17a2234c..250ee0d2 100644 --- a/generated-protos/diffraction-detected-peak-msgs.pb.go +++ b/generated-protos/diffraction-detected-peak-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: diffraction-detected-peak-msgs.proto package protos diff --git a/generated-protos/diffraction-manual-msgs.pb.go b/generated-protos/diffraction-manual-msgs.pb.go index 6683e807..f20cb474 100644 --- a/generated-protos/diffraction-manual-msgs.pb.go +++ b/generated-protos/diffraction-manual-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: diffraction-manual-msgs.proto package protos diff --git a/generated-protos/diffraction-status-msgs.pb.go b/generated-protos/diffraction-status-msgs.pb.go index 710eee91..966801f2 100644 --- a/generated-protos/diffraction-status-msgs.pb.go +++ b/generated-protos/diffraction-status-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: diffraction-status-msgs.proto package protos diff --git a/generated-protos/diffraction.pb.go b/generated-protos/diffraction.pb.go index 77ca2271..281a37a9 100644 --- a/generated-protos/diffraction.pb.go +++ b/generated-protos/diffraction.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: data-formats/file-formats/diffraction.proto package protos diff --git a/generated-protos/doi-msgs.pb.go b/generated-protos/doi-msgs.pb.go index 8542205e..13f76db2 100644 --- a/generated-protos/doi-msgs.pb.go +++ b/generated-protos/doi-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: doi-msgs.proto package protos diff --git a/generated-protos/doi.pb.go b/generated-protos/doi.pb.go index 893a7e80..7d5bd02f 100644 --- a/generated-protos/doi.pb.go +++ b/generated-protos/doi.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: doi.proto package protos diff --git a/generated-protos/element-set-msgs.pb.go b/generated-protos/element-set-msgs.pb.go index 9e3b01d3..2d58e2db 100644 --- a/generated-protos/element-set-msgs.pb.go +++ b/generated-protos/element-set-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: element-set-msgs.proto package protos diff --git a/generated-protos/element-set.pb.go b/generated-protos/element-set.pb.go index b96c3637..37d9bd0e 100644 --- a/generated-protos/element-set.pb.go +++ b/generated-protos/element-set.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: element-set.proto package protos diff --git a/generated-protos/experiment.pb.go b/generated-protos/experiment.pb.go index 1bde8d45..6092e776 100644 --- a/generated-protos/experiment.pb.go +++ b/generated-protos/experiment.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: data-formats/file-formats/experiment.proto package protos diff --git a/generated-protos/export-msgs.pb.go b/generated-protos/export-msgs.pb.go index f3161de7..dc06af3e 100644 --- a/generated-protos/export-msgs.pb.go +++ b/generated-protos/export-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: export-msgs.proto package protos diff --git a/generated-protos/export.pb.go b/generated-protos/export.pb.go index 2b6d309d..833b227e 100644 --- a/generated-protos/export.pb.go +++ b/generated-protos/export.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: export.proto package protos diff --git a/generated-protos/expression-group-msgs.pb.go b/generated-protos/expression-group-msgs.pb.go index f867bfa9..d7975d7e 100644 --- a/generated-protos/expression-group-msgs.pb.go +++ b/generated-protos/expression-group-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: expression-group-msgs.proto package protos diff --git a/generated-protos/expression-group.pb.go b/generated-protos/expression-group.pb.go index f71ded8f..90f1716b 100644 --- a/generated-protos/expression-group.pb.go +++ b/generated-protos/expression-group.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: expression-group.proto package protos diff --git a/generated-protos/expression-msgs.pb.go b/generated-protos/expression-msgs.pb.go index b681ed9e..4e6b94e9 100644 --- a/generated-protos/expression-msgs.pb.go +++ b/generated-protos/expression-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: expression-msgs.proto package protos diff --git a/generated-protos/expressions.pb.go b/generated-protos/expressions.pb.go index f1e19fbf..db902dcb 100644 --- a/generated-protos/expressions.pb.go +++ b/generated-protos/expressions.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: expressions.proto package protos diff --git a/generated-protos/image-beam-location-msgs.pb.go b/generated-protos/image-beam-location-msgs.pb.go index 325c1c4e..18c3d37d 100644 --- a/generated-protos/image-beam-location-msgs.pb.go +++ b/generated-protos/image-beam-location-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: image-beam-location-msgs.proto package protos diff --git a/generated-protos/image-beam-location.pb.go b/generated-protos/image-beam-location.pb.go index 7a7b0344..6e8ae2ab 100644 --- a/generated-protos/image-beam-location.pb.go +++ b/generated-protos/image-beam-location.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: image-beam-location.proto package protos diff --git a/generated-protos/image-coreg-msgs.pb.go b/generated-protos/image-coreg-msgs.pb.go index d736058a..a2cbb23d 100644 --- a/generated-protos/image-coreg-msgs.pb.go +++ b/generated-protos/image-coreg-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: image-coreg-msgs.proto package protos diff --git a/generated-protos/image-coreg.pb.go b/generated-protos/image-coreg.pb.go index edf35579..7f636355 100644 --- a/generated-protos/image-coreg.pb.go +++ b/generated-protos/image-coreg.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: image-coreg.proto package protos diff --git a/generated-protos/image-msgs.pb.go b/generated-protos/image-msgs.pb.go index 2c5974fb..5784f9b5 100644 --- a/generated-protos/image-msgs.pb.go +++ b/generated-protos/image-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: image-msgs.proto package protos diff --git a/generated-protos/image.pb.go b/generated-protos/image.pb.go index df12738d..a8316b61 100644 --- a/generated-protos/image.pb.go +++ b/generated-protos/image.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: image.proto package protos diff --git a/generated-protos/job-msgs.pb.go b/generated-protos/job-msgs.pb.go index 344a7e94..63a874bd 100644 --- a/generated-protos/job-msgs.pb.go +++ b/generated-protos/job-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: job-msgs.proto package protos diff --git a/generated-protos/job.pb.go b/generated-protos/job.pb.go index 7686c5ff..91edb26c 100644 --- a/generated-protos/job.pb.go +++ b/generated-protos/job.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: job.proto package protos diff --git a/generated-protos/log-msgs.pb.go b/generated-protos/log-msgs.pb.go index b741e1d5..1b490026 100644 --- a/generated-protos/log-msgs.pb.go +++ b/generated-protos/log-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: log-msgs.proto package protos diff --git a/generated-protos/log.pb.go b/generated-protos/log.pb.go index 82e2509f..ac5666d3 100644 --- a/generated-protos/log.pb.go +++ b/generated-protos/log.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: log.proto package protos diff --git a/generated-protos/memoisation-msgs.pb.go b/generated-protos/memoisation-msgs.pb.go index b34b5fcb..3b40cbad 100644 --- a/generated-protos/memoisation-msgs.pb.go +++ b/generated-protos/memoisation-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: memoisation-msgs.proto package protos diff --git a/generated-protos/memoisation.pb.go b/generated-protos/memoisation.pb.go index 07349006..b01797d2 100644 --- a/generated-protos/memoisation.pb.go +++ b/generated-protos/memoisation.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: memoisation.proto package protos diff --git a/generated-protos/module-msgs.pb.go b/generated-protos/module-msgs.pb.go index b6b752da..bc17fe28 100644 --- a/generated-protos/module-msgs.pb.go +++ b/generated-protos/module-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: module-msgs.proto package protos diff --git a/generated-protos/modules.pb.go b/generated-protos/modules.pb.go index 21b3054a..fd1124d4 100644 --- a/generated-protos/modules.pb.go +++ b/generated-protos/modules.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: modules.proto package protos diff --git a/generated-protos/notification-msgs.pb.go b/generated-protos/notification-msgs.pb.go index 200f5230..ef76689d 100644 --- a/generated-protos/notification-msgs.pb.go +++ b/generated-protos/notification-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: notification-msgs.proto package protos diff --git a/generated-protos/notification.pb.go b/generated-protos/notification.pb.go index ec0f2890..48d4c45a 100644 --- a/generated-protos/notification.pb.go +++ b/generated-protos/notification.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: notification.proto package protos diff --git a/generated-protos/ownership-access-msgs.pb.go b/generated-protos/ownership-access-msgs.pb.go index 679277e4..36d54a65 100644 --- a/generated-protos/ownership-access-msgs.pb.go +++ b/generated-protos/ownership-access-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: ownership-access-msgs.proto package protos diff --git a/generated-protos/ownership-access.pb.go b/generated-protos/ownership-access.pb.go index 9fa2e2a4..730662a0 100644 --- a/generated-protos/ownership-access.pb.go +++ b/generated-protos/ownership-access.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: ownership-access.proto package protos diff --git a/generated-protos/permissions.pb.go b/generated-protos/permissions.pb.go index 676e6fe1..6ab98ee6 100644 --- a/generated-protos/permissions.pb.go +++ b/generated-protos/permissions.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: permissions.proto package protos diff --git a/generated-protos/piquant-config.pb.go b/generated-protos/piquant-config.pb.go index 67854fde..0c3e38cf 100644 --- a/generated-protos/piquant-config.pb.go +++ b/generated-protos/piquant-config.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: piquant-config.proto package protos diff --git a/generated-protos/piquant-msgs.pb.go b/generated-protos/piquant-msgs.pb.go index 91f97ad1..474254bd 100644 --- a/generated-protos/piquant-msgs.pb.go +++ b/generated-protos/piquant-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: piquant-msgs.proto package protos diff --git a/generated-protos/pseudo-intensities-msgs.pb.go b/generated-protos/pseudo-intensities-msgs.pb.go index 4fc6fc1a..bf12ad6d 100644 --- a/generated-protos/pseudo-intensities-msgs.pb.go +++ b/generated-protos/pseudo-intensities-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: pseudo-intensities-msgs.proto package protos diff --git a/generated-protos/pseudo-intensities.pb.go b/generated-protos/pseudo-intensities.pb.go index 141c3b8f..549fa381 100644 --- a/generated-protos/pseudo-intensities.pb.go +++ b/generated-protos/pseudo-intensities.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: pseudo-intensities.proto package protos diff --git a/generated-protos/quantification-create.pb.go b/generated-protos/quantification-create.pb.go index cb6b40e7..7ae937f0 100644 --- a/generated-protos/quantification-create.pb.go +++ b/generated-protos/quantification-create.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: quantification-create.proto package protos diff --git a/generated-protos/quantification-management-msgs.pb.go b/generated-protos/quantification-management-msgs.pb.go index dde9e2bc..9f77418f 100644 --- a/generated-protos/quantification-management-msgs.pb.go +++ b/generated-protos/quantification-management-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: quantification-management-msgs.proto package protos diff --git a/generated-protos/quantification-meta.pb.go b/generated-protos/quantification-meta.pb.go index 5625f11e..50f3cab7 100644 --- a/generated-protos/quantification-meta.pb.go +++ b/generated-protos/quantification-meta.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: quantification-meta.proto package protos diff --git a/generated-protos/quantification-multi-msgs.pb.go b/generated-protos/quantification-multi-msgs.pb.go index 615831f1..b40544b4 100644 --- a/generated-protos/quantification-multi-msgs.pb.go +++ b/generated-protos/quantification-multi-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: quantification-multi-msgs.proto package protos diff --git a/generated-protos/quantification-multi.pb.go b/generated-protos/quantification-multi.pb.go index 3dfc1203..a7c08ac4 100644 --- a/generated-protos/quantification-multi.pb.go +++ b/generated-protos/quantification-multi.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: quantification-multi.proto package protos diff --git a/generated-protos/quantification-retrieval-msgs.pb.go b/generated-protos/quantification-retrieval-msgs.pb.go index e6cd4da8..2effc136 100644 --- a/generated-protos/quantification-retrieval-msgs.pb.go +++ b/generated-protos/quantification-retrieval-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: quantification-retrieval-msgs.proto package protos diff --git a/generated-protos/quantification-upload-msgs.pb.go b/generated-protos/quantification-upload-msgs.pb.go index 580d28b6..9408dce0 100644 --- a/generated-protos/quantification-upload-msgs.pb.go +++ b/generated-protos/quantification-upload-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: quantification-upload-msgs.proto package protos diff --git a/generated-protos/quantification.pb.go b/generated-protos/quantification.pb.go index 333fc858..d5737b8f 100644 --- a/generated-protos/quantification.pb.go +++ b/generated-protos/quantification.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: quantification.proto package protos diff --git a/generated-protos/restmsgs.pb.go b/generated-protos/restmsgs.pb.go index 3c69f5dc..077d2be9 100644 --- a/generated-protos/restmsgs.pb.go +++ b/generated-protos/restmsgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: restmsgs.proto package protos diff --git a/generated-protos/roi-msgs.pb.go b/generated-protos/roi-msgs.pb.go index e4600026..ea6c68c7 100644 --- a/generated-protos/roi-msgs.pb.go +++ b/generated-protos/roi-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: roi-msgs.proto package protos diff --git a/generated-protos/roi.pb.go b/generated-protos/roi.pb.go index c8e3a69b..50e24b29 100644 --- a/generated-protos/roi.pb.go +++ b/generated-protos/roi.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: roi.proto package protos diff --git a/generated-protos/scan-beam-location-msgs.pb.go b/generated-protos/scan-beam-location-msgs.pb.go index 482c2696..e0163691 100644 --- a/generated-protos/scan-beam-location-msgs.pb.go +++ b/generated-protos/scan-beam-location-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: scan-beam-location-msgs.proto package protos diff --git a/generated-protos/scan-beam-location.pb.go b/generated-protos/scan-beam-location.pb.go index f6531300..22773ca8 100644 --- a/generated-protos/scan-beam-location.pb.go +++ b/generated-protos/scan-beam-location.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: scan-beam-location.proto package protos diff --git a/generated-protos/scan-entry-metadata-msgs.pb.go b/generated-protos/scan-entry-metadata-msgs.pb.go index 037c7947..5e748e1b 100644 --- a/generated-protos/scan-entry-metadata-msgs.pb.go +++ b/generated-protos/scan-entry-metadata-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: scan-entry-metadata-msgs.proto package protos diff --git a/generated-protos/scan-entry-metadata.pb.go b/generated-protos/scan-entry-metadata.pb.go index 65cd4ebb..05565a9e 100644 --- a/generated-protos/scan-entry-metadata.pb.go +++ b/generated-protos/scan-entry-metadata.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: scan-entry-metadata.proto package protos diff --git a/generated-protos/scan-entry-msgs.pb.go b/generated-protos/scan-entry-msgs.pb.go index 8c15ab1e..d4cda4ad 100644 --- a/generated-protos/scan-entry-msgs.pb.go +++ b/generated-protos/scan-entry-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: scan-entry-msgs.proto package protos diff --git a/generated-protos/scan-entry.pb.go b/generated-protos/scan-entry.pb.go index 1a8f62cd..6f0c3d57 100644 --- a/generated-protos/scan-entry.pb.go +++ b/generated-protos/scan-entry.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: scan-entry.proto package protos diff --git a/generated-protos/scan-msgs.pb.go b/generated-protos/scan-msgs.pb.go index b74bef41..c9e96e83 100644 --- a/generated-protos/scan-msgs.pb.go +++ b/generated-protos/scan-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: scan-msgs.proto package protos @@ -1070,6 +1070,92 @@ func (*ScanDeleteResp) Descriptor() ([]byte, []int) { return file_scan_msgs_proto_rawDescGZIP(), []int{20} } +// requires(QUANTIFY) +type ScanTriggerAutoQuantReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ScanId string `protobuf:"bytes,1,opt,name=scanId,proto3" json:"scanId,omitempty"` +} + +func (x *ScanTriggerAutoQuantReq) Reset() { + *x = ScanTriggerAutoQuantReq{} + if protoimpl.UnsafeEnabled { + mi := &file_scan_msgs_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ScanTriggerAutoQuantReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ScanTriggerAutoQuantReq) ProtoMessage() {} + +func (x *ScanTriggerAutoQuantReq) ProtoReflect() protoreflect.Message { + mi := &file_scan_msgs_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ScanTriggerAutoQuantReq.ProtoReflect.Descriptor instead. +func (*ScanTriggerAutoQuantReq) Descriptor() ([]byte, []int) { + return file_scan_msgs_proto_rawDescGZIP(), []int{21} +} + +func (x *ScanTriggerAutoQuantReq) GetScanId() string { + if x != nil { + return x.ScanId + } + return "" +} + +type ScanTriggerAutoQuantResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ScanTriggerAutoQuantResp) Reset() { + *x = ScanTriggerAutoQuantResp{} + if protoimpl.UnsafeEnabled { + mi := &file_scan_msgs_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ScanTriggerAutoQuantResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ScanTriggerAutoQuantResp) ProtoMessage() {} + +func (x *ScanTriggerAutoQuantResp) ProtoReflect() protoreflect.Message { + mi := &file_scan_msgs_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ScanTriggerAutoQuantResp.ProtoReflect.Descriptor instead. +func (*ScanTriggerAutoQuantResp) Descriptor() ([]byte, []int) { + return file_scan_msgs_proto_rawDescGZIP(), []int{22} +} + type ScanListReq_MinMaxInt struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1082,7 +1168,7 @@ type ScanListReq_MinMaxInt struct { func (x *ScanListReq_MinMaxInt) Reset() { *x = ScanListReq_MinMaxInt{} if protoimpl.UnsafeEnabled { - mi := &file_scan_msgs_proto_msgTypes[22] + mi := &file_scan_msgs_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1095,7 +1181,7 @@ func (x *ScanListReq_MinMaxInt) String() string { func (*ScanListReq_MinMaxInt) ProtoMessage() {} func (x *ScanListReq_MinMaxInt) ProtoReflect() protoreflect.Message { - mi := &file_scan_msgs_proto_msgTypes[22] + mi := &file_scan_msgs_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1211,9 +1297,14 @@ var file_scan_msgs_proto_rawDesc = []byte{ 0x6f, 0x72, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x73, 0x63, 0x61, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x10, 0x0a, - 0x0e, 0x53, 0x63, 0x61, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x42, - 0x0a, 0x5a, 0x08, 0x2e, 0x3b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x0e, 0x53, 0x63, 0x61, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x31, 0x0a, 0x17, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x75, + 0x74, 0x6f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, + 0x61, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x61, 0x6e, + 0x49, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x41, 0x75, 0x74, 0x6f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0a, + 0x5a, 0x08, 0x2e, 0x3b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -1228,7 +1319,7 @@ func file_scan_msgs_proto_rawDescGZIP() []byte { return file_scan_msgs_proto_rawDescData } -var file_scan_msgs_proto_msgTypes = make([]protoimpl.MessageInfo, 23) +var file_scan_msgs_proto_msgTypes = make([]protoimpl.MessageInfo, 25) var file_scan_msgs_proto_goTypes = []interface{}{ (*ScanListReq)(nil), // 0: ScanListReq (*ScanListResp)(nil), // 1: ScanListResp @@ -1251,22 +1342,24 @@ var file_scan_msgs_proto_goTypes = []interface{}{ (*ScanMetaLabelsAndTypesResp)(nil), // 18: ScanMetaLabelsAndTypesResp (*ScanDeleteReq)(nil), // 19: ScanDeleteReq (*ScanDeleteResp)(nil), // 20: ScanDeleteResp - nil, // 21: ScanListReq.SearchFiltersEntry - (*ScanListReq_MinMaxInt)(nil), // 22: ScanListReq.MinMaxInt - (*ScanItem)(nil), // 23: ScanItem - (*JobStatus)(nil), // 24: JobStatus - (*ScanAutoShareEntry)(nil), // 25: ScanAutoShareEntry - (ScanMetaDataType)(0), // 26: ScanMetaDataType + (*ScanTriggerAutoQuantReq)(nil), // 21: ScanTriggerAutoQuantReq + (*ScanTriggerAutoQuantResp)(nil), // 22: ScanTriggerAutoQuantResp + nil, // 23: ScanListReq.SearchFiltersEntry + (*ScanListReq_MinMaxInt)(nil), // 24: ScanListReq.MinMaxInt + (*ScanItem)(nil), // 25: ScanItem + (*JobStatus)(nil), // 26: JobStatus + (*ScanAutoShareEntry)(nil), // 27: ScanAutoShareEntry + (ScanMetaDataType)(0), // 28: ScanMetaDataType } var file_scan_msgs_proto_depIdxs = []int32{ - 21, // 0: ScanListReq.searchFilters:type_name -> ScanListReq.SearchFiltersEntry - 23, // 1: ScanListResp.scans:type_name -> ScanItem - 23, // 2: ScanGetResp.scan:type_name -> ScanItem - 24, // 3: ScanUploadUpd.status:type_name -> JobStatus - 25, // 4: ScanAutoShareResp.entry:type_name -> ScanAutoShareEntry - 25, // 5: ScanAutoShareWriteReq.entry:type_name -> ScanAutoShareEntry - 24, // 6: ScanTriggerReImportUpd.status:type_name -> JobStatus - 26, // 7: ScanMetaLabelsAndTypesResp.metaTypes:type_name -> ScanMetaDataType + 23, // 0: ScanListReq.searchFilters:type_name -> ScanListReq.SearchFiltersEntry + 25, // 1: ScanListResp.scans:type_name -> ScanItem + 25, // 2: ScanGetResp.scan:type_name -> ScanItem + 26, // 3: ScanUploadUpd.status:type_name -> JobStatus + 27, // 4: ScanAutoShareResp.entry:type_name -> ScanAutoShareEntry + 27, // 5: ScanAutoShareWriteReq.entry:type_name -> ScanAutoShareEntry + 26, // 6: ScanTriggerReImportUpd.status:type_name -> JobStatus + 28, // 7: ScanMetaLabelsAndTypesResp.metaTypes:type_name -> ScanMetaDataType 8, // [8:8] is the sub-list for method output_type 8, // [8:8] is the sub-list for method input_type 8, // [8:8] is the sub-list for extension type_name @@ -1534,7 +1627,31 @@ func file_scan_msgs_proto_init() { return nil } } + file_scan_msgs_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ScanTriggerAutoQuantReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } file_scan_msgs_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ScanTriggerAutoQuantResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_scan_msgs_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ScanListReq_MinMaxInt); i { case 0: return &v.state @@ -1553,7 +1670,7 @@ func file_scan_msgs_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_scan_msgs_proto_rawDesc, NumEnums: 0, - NumMessages: 23, + NumMessages: 25, NumExtensions: 0, NumServices: 0, }, diff --git a/generated-protos/scan.pb.go b/generated-protos/scan.pb.go index 99d3c1ae..49441601 100644 --- a/generated-protos/scan.pb.go +++ b/generated-protos/scan.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: scan.proto package protos @@ -218,6 +218,10 @@ type ScanItem struct { CreatorUserId string `protobuf:"bytes,10,opt,name=creatorUserId,proto3" json:"creatorUserId,omitempty"` // Optional, but dataset may have been uploaded by a given user Owner *OwnershipSummary `protobuf:"bytes,11,opt,name=owner,proto3" json:"owner,omitempty" bson:"-"` Tags []string `protobuf:"bytes,12,rep,name=tags,proto3" json:"tags,omitempty"` + // If we import multiple times, we save the import time in our scan item + PreviousImportTimesUnixSec []uint32 `protobuf:"varint,13,rep,packed,name=previousImportTimesUnixSec,proto3" json:"previousImportTimesUnixSec,omitempty"` + // Time stamp when we had a complete scan (have all normal spectra) + CompleteTimeStampUnixSec uint32 `protobuf:"varint,14,opt,name=completeTimeStampUnixSec,proto3" json:"completeTimeStampUnixSec,omitempty"` } func (x *ScanItem) Reset() { @@ -336,6 +340,20 @@ func (x *ScanItem) GetTags() []string { return nil } +func (x *ScanItem) GetPreviousImportTimesUnixSec() []uint32 { + if x != nil { + return x.PreviousImportTimesUnixSec + } + return nil +} + +func (x *ScanItem) GetCompleteTimeStampUnixSec() uint32 { + if x != nil { + return x.CompleteTimeStampUnixSec + } + return 0 +} + type ScanMetaDataItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -618,7 +636,7 @@ var File_scan_proto protoreflect.FileDescriptor var file_scan_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x73, 0x63, 0x61, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x2d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xaf, 0x05, 0x0a, 0x08, 0x53, 0x63, 0x61, 0x6e, 0x49, 0x74, 0x65, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xab, 0x06, 0x0a, 0x08, 0x53, 0x63, 0x61, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, @@ -648,53 +666,61 @@ var file_scan_proto_rawDesc = []byte{ 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0c, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x50, 0x0a, 0x0d, 0x53, 0x63, 0x61, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x08, 0x64, 0x61, - 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x53, - 0x63, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x64, 0x61, 0x74, - 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x37, 0x0a, 0x09, 0x4d, - 0x65, 0x74, 0x61, 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, 0x40, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 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, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x69, 0x0a, 0x10, 0x53, 0x63, 0x61, 0x6e, 0x4d, 0x65, - 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x18, 0x0a, 0x06, 0x66, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x06, 0x66, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x06, 0x69, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x69, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, - 0x0a, 0x06, 0x73, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x06, 0x73, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x2a, 0x0a, 0x0e, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x22, 0x78, 0x0a, - 0x12, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x07, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x07, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73, 0x12, 0x28, 0x0a, - 0x07, 0x65, 0x64, 0x69, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x07, - 0x65, 0x64, 0x69, 0x74, 0x6f, 0x72, 0x73, 0x2a, 0x45, 0x0a, 0x0c, 0x53, 0x63, 0x61, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x44, 0x5f, 0x55, 0x4e, - 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x44, 0x5f, 0x49, 0x4d, - 0x41, 0x47, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x44, 0x5f, 0x58, 0x52, 0x46, 0x10, - 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x44, 0x5f, 0x52, 0x47, 0x42, 0x55, 0x10, 0x03, 0x2a, 0x6a, - 0x0a, 0x0e, 0x53, 0x63, 0x61, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x16, 0x0a, 0x12, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x49, 0x4e, 0x53, 0x54, - 0x52, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x49, 0x58, 0x4c, - 0x5f, 0x46, 0x4d, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x49, 0x58, 0x4c, 0x5f, 0x45, 0x4d, - 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4a, 0x50, 0x4c, 0x5f, 0x42, 0x52, 0x45, 0x41, 0x44, 0x42, - 0x4f, 0x41, 0x52, 0x44, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x42, 0x55, 0x5f, 0x42, 0x52, - 0x45, 0x41, 0x44, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x10, 0x04, 0x2a, 0x3b, 0x0a, 0x10, 0x53, 0x63, - 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, - 0x0a, 0x08, 0x4d, 0x54, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, - 0x4d, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x54, 0x5f, 0x53, - 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x3b, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x3e, 0x0a, 0x1a, 0x70, 0x72, 0x65, + 0x76, 0x69, 0x6f, 0x75, 0x73, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x55, 0x6e, 0x69, 0x78, 0x53, 0x65, 0x63, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x1a, 0x70, + 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x55, 0x6e, 0x69, 0x78, 0x53, 0x65, 0x63, 0x12, 0x3a, 0x0a, 0x18, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x55, 0x6e, + 0x69, 0x78, 0x53, 0x65, 0x63, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x55, 0x6e, + 0x69, 0x78, 0x53, 0x65, 0x63, 0x1a, 0x50, 0x0a, 0x0d, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x44, + 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x37, 0x0a, 0x09, 0x4d, 0x65, 0x74, 0x61, 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, 0x40, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 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, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x69, 0x0a, 0x10, 0x53, 0x63, 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, + 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x18, 0x0a, 0x06, 0x66, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x06, 0x66, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x18, 0x0a, 0x06, 0x69, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x00, 0x52, 0x06, 0x69, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x06, 0x73, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x73, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2a, 0x0a, + 0x0e, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x22, 0x78, 0x0a, 0x12, 0x53, 0x63, 0x61, + 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x28, 0x0a, 0x07, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x07, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73, 0x12, 0x28, 0x0a, 0x07, 0x65, 0x64, 0x69, + 0x74, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, + 0x6f, 0x72, 0x73, 0x2a, 0x45, 0x0a, 0x0c, 0x53, 0x63, 0x61, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x44, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, + 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x44, 0x5f, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, + 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x44, 0x5f, 0x58, 0x52, 0x46, 0x10, 0x02, 0x12, 0x0b, 0x0a, + 0x07, 0x53, 0x44, 0x5f, 0x52, 0x47, 0x42, 0x55, 0x10, 0x03, 0x2a, 0x6a, 0x0a, 0x0e, 0x53, 0x63, + 0x61, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x12, + 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x52, 0x55, 0x4d, 0x45, + 0x4e, 0x54, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x49, 0x58, 0x4c, 0x5f, 0x46, 0x4d, 0x10, + 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x49, 0x58, 0x4c, 0x5f, 0x45, 0x4d, 0x10, 0x02, 0x12, 0x12, + 0x0a, 0x0e, 0x4a, 0x50, 0x4c, 0x5f, 0x42, 0x52, 0x45, 0x41, 0x44, 0x42, 0x4f, 0x41, 0x52, 0x44, + 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x42, 0x55, 0x5f, 0x42, 0x52, 0x45, 0x41, 0x44, 0x42, + 0x4f, 0x41, 0x52, 0x44, 0x10, 0x04, 0x2a, 0x3b, 0x0a, 0x10, 0x53, 0x63, 0x61, 0x6e, 0x4d, 0x65, + 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x54, + 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x54, 0x5f, 0x49, + 0x4e, 0x54, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x54, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, + 0x47, 0x10, 0x02, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x3b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/generated-protos/screen-configuration-msgs.pb.go b/generated-protos/screen-configuration-msgs.pb.go index b58d8e1f..0586c064 100644 --- a/generated-protos/screen-configuration-msgs.pb.go +++ b/generated-protos/screen-configuration-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: screen-configuration-msgs.proto package protos diff --git a/generated-protos/screen-configuration.pb.go b/generated-protos/screen-configuration.pb.go index 0a7352c7..d2ebb60d 100644 --- a/generated-protos/screen-configuration.pb.go +++ b/generated-protos/screen-configuration.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: screen-configuration.proto package protos diff --git a/generated-protos/search-params.pb.go b/generated-protos/search-params.pb.go index c00313fa..309b142f 100644 --- a/generated-protos/search-params.pb.go +++ b/generated-protos/search-params.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: search-params.proto package protos diff --git a/generated-protos/selection-entry-msgs.pb.go b/generated-protos/selection-entry-msgs.pb.go index 8a0e9cc8..1c5c18f1 100644 --- a/generated-protos/selection-entry-msgs.pb.go +++ b/generated-protos/selection-entry-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: selection-entry-msgs.proto package protos diff --git a/generated-protos/selection-pixel-msgs.pb.go b/generated-protos/selection-pixel-msgs.pb.go index fda4be2d..8bad0215 100644 --- a/generated-protos/selection-pixel-msgs.pb.go +++ b/generated-protos/selection-pixel-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: selection-pixel-msgs.proto package protos diff --git a/generated-protos/spectrum-msgs.pb.go b/generated-protos/spectrum-msgs.pb.go index faf94fac..72ef5fbe 100644 --- a/generated-protos/spectrum-msgs.pb.go +++ b/generated-protos/spectrum-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: spectrum-msgs.proto package protos diff --git a/generated-protos/spectrum.pb.go b/generated-protos/spectrum.pb.go index 6913d8fb..18f5adef 100644 --- a/generated-protos/spectrum.pb.go +++ b/generated-protos/spectrum.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: spectrum.proto package protos diff --git a/generated-protos/tag-msgs.pb.go b/generated-protos/tag-msgs.pb.go index 39f47461..79946b98 100644 --- a/generated-protos/tag-msgs.pb.go +++ b/generated-protos/tag-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: tag-msgs.proto package protos diff --git a/generated-protos/tags.pb.go b/generated-protos/tags.pb.go index a233f8c2..6fcc8ebb 100644 --- a/generated-protos/tags.pb.go +++ b/generated-protos/tags.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: tags.proto package protos diff --git a/generated-protos/test-msgs.pb.go b/generated-protos/test-msgs.pb.go index 44f5de72..c6e2e75a 100644 --- a/generated-protos/test-msgs.pb.go +++ b/generated-protos/test-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: test-msgs.proto package protos diff --git a/generated-protos/user-db-items.pb.go b/generated-protos/user-db-items.pb.go index a30f4e4b..5e0fd88e 100644 --- a/generated-protos/user-db-items.pb.go +++ b/generated-protos/user-db-items.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: user-db-items.proto package protos diff --git a/generated-protos/user-group-admins-msgs.pb.go b/generated-protos/user-group-admins-msgs.pb.go index 98a63b86..4d0062ab 100644 --- a/generated-protos/user-group-admins-msgs.pb.go +++ b/generated-protos/user-group-admins-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: user-group-admins-msgs.proto package protos diff --git a/generated-protos/user-group-joining-msgs.pb.go b/generated-protos/user-group-joining-msgs.pb.go index 2af8766b..80731bba 100644 --- a/generated-protos/user-group-joining-msgs.pb.go +++ b/generated-protos/user-group-joining-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: user-group-joining-msgs.proto package protos diff --git a/generated-protos/user-group-management-msgs.pb.go b/generated-protos/user-group-management-msgs.pb.go index c3a480fa..fec608b2 100644 --- a/generated-protos/user-group-management-msgs.pb.go +++ b/generated-protos/user-group-management-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: user-group-management-msgs.proto package protos diff --git a/generated-protos/user-group-membership-msgs.pb.go b/generated-protos/user-group-membership-msgs.pb.go index 5b48e29c..0679f2f4 100644 --- a/generated-protos/user-group-membership-msgs.pb.go +++ b/generated-protos/user-group-membership-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: user-group-membership-msgs.proto package protos diff --git a/generated-protos/user-group-retrieval-msgs.pb.go b/generated-protos/user-group-retrieval-msgs.pb.go index e6e1d7db..37b865a9 100644 --- a/generated-protos/user-group-retrieval-msgs.pb.go +++ b/generated-protos/user-group-retrieval-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: user-group-retrieval-msgs.proto package protos diff --git a/generated-protos/user-group.pb.go b/generated-protos/user-group.pb.go index 44f8bf32..dbbd9876 100644 --- a/generated-protos/user-group.pb.go +++ b/generated-protos/user-group.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: user-group.proto package protos diff --git a/generated-protos/user-management-msgs.pb.go b/generated-protos/user-management-msgs.pb.go index 49c0d317..1d76081d 100644 --- a/generated-protos/user-management-msgs.pb.go +++ b/generated-protos/user-management-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: user-management-msgs.proto package protos diff --git a/generated-protos/user-msgs.pb.go b/generated-protos/user-msgs.pb.go index 4ec68913..6bb811e8 100644 --- a/generated-protos/user-msgs.pb.go +++ b/generated-protos/user-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: user-msgs.proto package protos diff --git a/generated-protos/user-notification-setting-msgs.pb.go b/generated-protos/user-notification-setting-msgs.pb.go index d83fe206..28249f5e 100644 --- a/generated-protos/user-notification-setting-msgs.pb.go +++ b/generated-protos/user-notification-setting-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: user-notification-setting-msgs.proto package protos diff --git a/generated-protos/user-notification-settings.pb.go b/generated-protos/user-notification-settings.pb.go index caf4b6ae..76a55c97 100644 --- a/generated-protos/user-notification-settings.pb.go +++ b/generated-protos/user-notification-settings.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: user-notification-settings.proto package protos diff --git a/generated-protos/user.pb.go b/generated-protos/user.pb.go index 82598223..fc680e5b 100644 --- a/generated-protos/user.pb.go +++ b/generated-protos/user.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: user.proto package protos diff --git a/generated-protos/version.pb.go b/generated-protos/version.pb.go index 3f1a73d4..58100287 100644 --- a/generated-protos/version.pb.go +++ b/generated-protos/version.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: version.proto package protos diff --git a/generated-protos/websocket.pb.go b/generated-protos/websocket.pb.go index 06bd0e7b..0c45eed9 100644 --- a/generated-protos/websocket.pb.go +++ b/generated-protos/websocket.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: websocket.proto package protos @@ -31,6 +31,9 @@ const ( ResponseStatus_WS_BAD_REQUEST ResponseStatus = 3 ResponseStatus_WS_NO_PERMISSION ResponseStatus = 4 ResponseStatus_WS_SERVER_ERROR ResponseStatus = 5 + // Really, this is likely a client-side error but included here + // so it's in the enum + ResponseStatus_WS_TIMEOUT ResponseStatus = 6 ) // Enum value maps for ResponseStatus. @@ -42,6 +45,7 @@ var ( 3: "WS_BAD_REQUEST", 4: "WS_NO_PERMISSION", 5: "WS_SERVER_ERROR", + 6: "WS_TIMEOUT", } ResponseStatus_value = map[string]int32{ "WS_UNDEFINED": 0, @@ -50,6 +54,7 @@ var ( "WS_BAD_REQUEST": 3, "WS_NO_PERMISSION": 4, "WS_SERVER_ERROR": 5, + "WS_TIMEOUT": 6, } ) @@ -276,6 +281,8 @@ type WSMessage struct { // *WSMessage_ScanMetaLabelsAndTypesResp // *WSMessage_ScanMetaWriteReq // *WSMessage_ScanMetaWriteResp + // *WSMessage_ScanTriggerAutoQuantReq + // *WSMessage_ScanTriggerAutoQuantResp // *WSMessage_ScanTriggerReImportReq // *WSMessage_ScanTriggerReImportResp // *WSMessage_ScanTriggerReImportUpd @@ -1667,6 +1674,20 @@ func (x *WSMessage) GetScanMetaWriteResp() *ScanMetaWriteResp { return nil } +func (x *WSMessage) GetScanTriggerAutoQuantReq() *ScanTriggerAutoQuantReq { + if x, ok := x.GetContents().(*WSMessage_ScanTriggerAutoQuantReq); ok { + return x.ScanTriggerAutoQuantReq + } + return nil +} + +func (x *WSMessage) GetScanTriggerAutoQuantResp() *ScanTriggerAutoQuantResp { + if x, ok := x.GetContents().(*WSMessage_ScanTriggerAutoQuantResp); ok { + return x.ScanTriggerAutoQuantResp + } + return nil +} + func (x *WSMessage) GetScanTriggerReImportReq() *ScanTriggerReImportReq { if x, ok := x.GetContents().(*WSMessage_ScanTriggerReImportReq); ok { return x.ScanTriggerReImportReq @@ -3002,6 +3023,14 @@ type WSMessage_ScanMetaWriteResp struct { ScanMetaWriteResp *ScanMetaWriteResp `protobuf:"bytes,107,opt,name=scanMetaWriteResp,proto3,oneof"` } +type WSMessage_ScanTriggerAutoQuantReq struct { + ScanTriggerAutoQuantReq *ScanTriggerAutoQuantReq `protobuf:"bytes,294,opt,name=scanTriggerAutoQuantReq,proto3,oneof"` +} + +type WSMessage_ScanTriggerAutoQuantResp struct { + ScanTriggerAutoQuantResp *ScanTriggerAutoQuantResp `protobuf:"bytes,295,opt,name=scanTriggerAutoQuantResp,proto3,oneof"` +} + type WSMessage_ScanTriggerReImportReq struct { ScanTriggerReImportReq *ScanTriggerReImportReq `protobuf:"bytes,108,opt,name=scanTriggerReImportReq,proto3,oneof"` } @@ -3712,6 +3741,10 @@ func (*WSMessage_ScanMetaWriteReq) isWSMessage_Contents() {} func (*WSMessage_ScanMetaWriteResp) isWSMessage_Contents() {} +func (*WSMessage_ScanTriggerAutoQuantReq) isWSMessage_Contents() {} + +func (*WSMessage_ScanTriggerAutoQuantResp) isWSMessage_Contents() {} + func (*WSMessage_ScanTriggerReImportReq) isWSMessage_Contents() {} func (*WSMessage_ScanTriggerReImportResp) isWSMessage_Contents() {} @@ -3967,7 +4000,7 @@ var file_websocket_proto_rawDesc = []byte{ 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x6d, 0x73, 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x2d, 0x64, 0x61, 0x74, - 0x61, 0x2d, 0x6d, 0x73, 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf3, 0xa3, 0x01, + 0x61, 0x2d, 0x6d, 0x73, 0x67, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa4, 0xa5, 0x01, 0x0a, 0x09, 0x57, 0x53, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, @@ -4847,448 +4880,460 @@ var file_websocket_proto_rawDesc = []byte{ 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x73, 0x63, 0x61, - 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, - 0x0a, 0x16, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, - 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x16, 0x73, 0x63, 0x61, 0x6e, 0x54, - 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x71, 0x12, 0x54, 0x0a, 0x17, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x6d, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x17, - 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x16, 0x73, 0x63, 0x61, 0x6e, 0x54, - 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x70, - 0x64, 0x18, 0x8d, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x54, - 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x70, - 0x64, 0x48, 0x00, 0x52, 0x16, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x70, 0x64, 0x12, 0x36, 0x0a, 0x0d, 0x73, - 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x18, 0x6e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, - 0x65, 0x71, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x52, 0x65, 0x71, 0x12, 0x39, 0x0a, 0x0e, 0x73, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x53, 0x63, - 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0e, - 0x73, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x37, - 0x0a, 0x0d, 0x73, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x70, 0x64, 0x18, - 0x8c, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x55, 0x70, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x63, 0x61, 0x6e, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x70, 0x64, 0x12, 0x64, 0x0a, 0x1c, 0x73, 0x63, 0x72, 0x65, 0x65, - 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x84, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, - 0x1c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x67, 0x0a, - 0x1d, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x85, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1d, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, + 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, + 0x0a, 0x17, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x75, 0x74, + 0x6f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x18, 0xa6, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x75, + 0x74, 0x6f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x17, 0x73, 0x63, + 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x75, 0x74, 0x6f, 0x51, 0x75, 0x61, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x58, 0x0a, 0x18, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x41, 0x75, 0x74, 0x6f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x18, 0xa7, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x54, + 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x75, 0x74, 0x6f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x18, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, + 0x65, 0x72, 0x41, 0x75, 0x74, 0x6f, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x51, 0x0a, 0x16, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, + 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x16, 0x73, 0x63, 0x61, 0x6e, + 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x71, 0x12, 0x54, 0x0a, 0x17, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x6d, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, + 0x17, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x16, 0x73, 0x63, 0x61, 0x6e, + 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, + 0x70, 0x64, 0x18, 0x8d, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x53, 0x63, 0x61, 0x6e, + 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, + 0x70, 0x64, 0x48, 0x00, 0x52, 0x16, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x52, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x70, 0x64, 0x12, 0x36, 0x0a, 0x0d, + 0x73, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x18, 0x6e, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x52, 0x65, 0x71, 0x12, 0x39, 0x0a, 0x0e, 0x73, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x53, + 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, + 0x0e, 0x73, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x37, 0x0a, 0x0d, 0x73, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x70, 0x64, + 0x18, 0x8c, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x70, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x63, 0x61, 0x6e, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x70, 0x64, 0x12, 0x64, 0x0a, 0x1c, 0x73, 0x63, 0x72, 0x65, + 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x84, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, + 0x52, 0x1c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x67, + 0x0a, 0x1d, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, + 0x85, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5b, 0x0a, 0x19, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1d, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5b, 0x0a, 0x19, 0x73, 0x63, 0x72, 0x65, 0x65, + 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x18, 0xf8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x53, 0x63, + 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x19, 0x73, 0x63, 0x72, 0x65, 0x65, + 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x12, 0x5e, 0x0a, 0x1a, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x18, 0xf9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x53, 0x63, 0x72, 0x65, + 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1a, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x18, 0xf8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x53, 0x63, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x5e, 0x0a, 0x1a, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x18, 0xfa, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x53, 0x63, 0x72, 0x65, + 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x1a, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x12, 0x61, 0x0a, 0x1b, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x18, 0xfb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x19, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x12, 0x5e, 0x0a, 0x1a, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x18, 0xf9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, - 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1a, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x5e, 0x0a, 0x1a, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x18, 0xfa, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, - 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x1a, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x12, 0x61, 0x0a, 0x1b, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x18, 0xfb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x53, 0x63, 0x72, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1b, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1b, 0x73, 0x63, 0x72, 0x65, 0x65, - 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, 0x1b, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xfc, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x53, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, 0x1b, 0x73, 0x63, 0x72, 0x65, 0x65, + 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xfc, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x1b, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x1b, 0x73, 0x63, + 0x6f, 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x64, 0x0a, 0x1c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x64, 0x0a, 0x1c, 0x73, 0x63, 0x72, - 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xfd, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, - 0x00, 0x52, 0x1c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x52, 0x0a, 0x16, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x18, 0xe2, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x16, 0x73, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, - 0x52, 0x65, 0x71, 0x12, 0x55, 0x0a, 0x17, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x18, 0xe3, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x48, - 0x00, 0x52, 0x17, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, 0x1b, 0x73, 0x65, + 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xfd, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x48, 0x00, 0x52, 0x1c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x52, 0x0a, 0x16, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x18, 0xe2, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x16, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, - 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xe4, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, - 0x52, 0x1b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, - 0x69, 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x64, 0x0a, - 0x1c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, - 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xe5, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x16, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, - 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x18, 0xe6, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, - 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, - 0x16, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x55, 0x0a, 0x17, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x18, 0xe7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x53, 0x65, 0x6c, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x12, 0x55, 0x0a, 0x17, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x18, + 0xe3, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x48, 0x00, 0x52, 0x17, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, 0x1b, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, + 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xe4, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, + 0x00, 0x52, 0x1b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x64, + 0x0a, 0x1c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, + 0x69, 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xe5, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x16, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x18, 0xe6, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x48, 0x00, + 0x52, 0x16, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, + 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x55, 0x0a, 0x17, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x17, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, - 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, - 0x0a, 0x1b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xe8, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, + 0x65, 0x73, 0x70, 0x18, 0xe7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x17, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x61, 0x0a, 0x1b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, + 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xe8, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x1b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x48, 0x00, 0x52, 0x1b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, + 0x65, 0x71, 0x12, 0x64, 0x0a, 0x1c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x12, 0x64, 0x0a, 0x1c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, - 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x18, 0xe9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1c, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x17, 0x73, 0x65, 0x6e, 0x64, 0x55, - 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x18, 0x70, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x55, - 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x48, 0x00, 0x52, 0x17, 0x73, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x57, 0x0a, - 0x18, 0x73, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x71, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x18, 0x73, 0x65, - 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x63, 0x74, 0x72, - 0x75, 0x6d, 0x52, 0x65, 0x71, 0x18, 0x72, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x53, 0x70, - 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x70, 0x65, - 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x0c, 0x73, 0x70, 0x65, 0x63, - 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x18, 0x73, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, - 0x0c, 0x73, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, - 0x0c, 0x74, 0x61, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x74, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x48, 0x00, 0x52, 0x0c, 0x74, 0x61, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x12, 0x36, 0x0a, 0x0d, 0x74, 0x61, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x18, 0x75, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x54, 0x61, 0x67, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x61, 0x67, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x0c, 0x74, 0x61, - 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x76, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x54, 0x61, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, - 0x00, 0x52, 0x0c, 0x74, 0x61, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, - 0x36, 0x0a, 0x0d, 0x74, 0x61, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x18, 0x77, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x54, 0x61, 0x67, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x61, 0x67, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x0a, 0x74, 0x61, 0x67, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0x78, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x54, 0x61, - 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0a, 0x74, 0x61, 0x67, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x30, 0x0a, 0x0b, 0x74, 0x61, 0x67, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x79, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x54, 0x61, - 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x61, 0x67, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, - 0x41, 0x64, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x18, 0x7a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, - 0x71, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x6f, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x6f, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x7b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, - 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x42, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, - 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x18, 0x7c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, - 0x48, 0x00, 0x52, 0x11, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x45, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x7d, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x12, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0e, - 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x18, 0x7e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x18, 0x7f, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x48, 0x00, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x81, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x13, 0x75, 0x73, 0x65, - 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x12, 0x4c, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x57, - 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4c, - 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x41, 0x64, - 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x18, 0x9c, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x73, 0x70, 0x18, 0xe9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1c, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x17, 0x73, 0x65, 0x6e, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x18, 0x70, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x53, 0x65, 0x6e, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x17, 0x73, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x57, + 0x0a, 0x18, 0x73, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x71, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x18, 0x73, + 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x63, 0x74, + 0x72, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x18, 0x72, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x53, + 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x70, + 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x0c, 0x73, 0x70, 0x65, + 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x18, 0x73, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, + 0x52, 0x0c, 0x73, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, + 0x0a, 0x0c, 0x74, 0x61, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x74, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x54, 0x61, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0c, 0x74, 0x61, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x12, 0x36, 0x0a, 0x0d, 0x74, 0x61, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x18, 0x75, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x54, 0x61, 0x67, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x61, + 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x0c, 0x74, + 0x61, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x76, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x54, 0x61, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x48, 0x00, 0x52, 0x0c, 0x74, 0x61, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x12, 0x36, 0x0a, 0x0d, 0x74, 0x61, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x18, 0x77, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x54, 0x61, 0x67, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x61, 0x67, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x0a, 0x74, 0x61, 0x67, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0x78, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x54, + 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0a, 0x74, 0x61, 0x67, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x30, 0x0a, 0x0b, 0x74, 0x61, 0x67, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x79, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x54, + 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x61, + 0x67, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0e, 0x75, 0x73, 0x65, + 0x72, 0x41, 0x64, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x18, 0x7a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, + 0x65, 0x71, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x6f, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, + 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x7b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, + 0x00, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x42, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x18, 0x7c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, + 0x71, 0x48, 0x00, 0x52, 0x11, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x45, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x7d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x12, 0x75, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, + 0x0e, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x18, + 0x7e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x18, 0x7f, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x81, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x13, 0x75, 0x73, + 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x12, 0x4c, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x4c, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x18, 0x9c, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x41, 0x64, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x4f, 0x0a, + 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x9d, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x41, 0x64, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x4f, 0x0a, 0x15, - 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x9d, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x41, 0x64, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, 0x0a, - 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x18, 0x9e, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x52, - 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x18, 0x9f, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x16, 0x75, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x4f, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x64, 0x64, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x18, 0xb4, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, - 0x64, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x15, 0x75, 0x73, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x12, 0x52, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x64, 0x64, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x18, 0xb5, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x64, 0x64, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, - 0x16, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x56, 0x69, 0x65, - 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xa0, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x12, 0x75, 0x73, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, - 0x49, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xa1, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x17, 0x75, 0x73, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x64, 0x6d, - 0x69, 0x6e, 0x52, 0x65, 0x71, 0x18, 0xa2, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x55, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x41, 0x64, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, + 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x18, 0x9e, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, + 0x52, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x18, 0x9f, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x16, 0x75, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x4f, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x64, 0x64, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x18, 0xb4, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, + 0x64, 0x64, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x15, 0x75, + 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x56, 0x69, 0x65, 0x77, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x12, 0x52, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x41, 0x64, 0x64, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x18, 0xb5, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x41, 0x64, 0x64, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, + 0x52, 0x16, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x56, 0x69, + 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xa0, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x12, 0x75, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x12, 0x49, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xa1, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x17, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x64, - 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x17, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, - 0x71, 0x12, 0x58, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0xa3, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, - 0x00, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, 0x18, 0x75, - 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x18, 0xa4, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x18, 0x75, 0x73, 0x65, + 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x18, 0xa2, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x17, 0x75, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, + 0x65, 0x71, 0x12, 0x58, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0xa3, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x48, 0x00, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, 0x18, + 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x18, 0xa4, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x18, 0x75, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x5b, 0x0a, 0x19, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x18, 0xa5, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x5b, 0x0a, 0x19, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x18, 0xa5, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x19, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x46, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xa6, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x12, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x49, 0x0a, 0x13, 0x75, 0x73, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x18, 0xa7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, - 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x18, 0xb2, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, - 0x5b, 0x0a, 0x19, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x18, 0xb3, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x48, - 0x00, 0x52, 0x19, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x16, - 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4a, - 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x18, 0xb6, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4a, - 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x16, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, - 0x12, 0x55, 0x0a, 0x17, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x67, 0x6e, - 0x6f, 0x72, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0xb7, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x67, - 0x6e, 0x6f, 0x72, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x17, - 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4a, - 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, - 0xb8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, - 0x14, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x4f, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xb9, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, - 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x18, 0xba, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, - 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x43, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0xbb, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x75, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, - 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, - 0x69, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x18, 0xea, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, - 0x4a, 0x6f, 0x69, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x18, 0x75, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x19, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0xa6, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x12, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x49, 0x0a, 0x13, 0x75, + 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x18, 0xa7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, + 0x00, 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x18, 0xb2, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x12, 0x5b, 0x0a, 0x19, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x18, 0xb3, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x48, 0x00, 0x52, 0x19, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, + 0x16, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x18, 0xb6, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x16, 0x75, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, + 0x71, 0x12, 0x55, 0x0a, 0x17, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x67, + 0x6e, 0x6f, 0x72, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0xb7, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, + 0x17, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x18, 0xb8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, + 0x52, 0x14, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x4f, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, + 0xb9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, + 0x52, 0x15, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x18, 0xba, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, + 0x69, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x43, 0x0a, 0x11, 0x75, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0xbb, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x75, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, + 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x4a, + 0x6f, 0x69, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x18, 0xea, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, + 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x18, + 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x69, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x5b, 0x0a, 0x19, 0x75, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xeb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x5b, 0x0a, 0x19, 0x75, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x18, 0xeb, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x19, 0x75, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0xa8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x48, 0x00, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x43, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xa9, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x0c, 0x75, - 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x18, 0xbc, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, - 0x71, 0x48, 0x00, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, - 0x71, 0x12, 0x37, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, - 0x73, 0x70, 0x18, 0xbd, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0d, 0x75, 0x73, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x13, 0x75, 0x73, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, - 0x71, 0x18, 0xaa, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, - 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x4c, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xab, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x14, 0x75, + 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x19, 0x75, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0xa8, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x43, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xa9, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x75, 0x73, 0x65, 0x72, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x0c, + 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x18, 0xbc, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x71, 0x48, 0x00, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x71, 0x12, 0x37, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x73, 0x70, 0x18, 0xbd, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0d, 0x75, 0x73, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x18, 0x8a, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x8b, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0c, - 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, 0x1b, - 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x18, 0x8e, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x65, 0x71, 0x18, 0xaa, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x48, + 0x00, 0x52, 0x13, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x4c, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0xab, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x14, + 0x75, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x18, 0x8a, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x8b, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, + 0x0c, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, + 0x1b, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x18, 0x8e, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, + 0x71, 0x48, 0x00, 0x52, 0x1b, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, - 0x48, 0x00, 0x52, 0x1b, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x12, - 0x64, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x18, - 0x8f, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, 0x1b, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x55, 0x70, 0x64, 0x18, 0x90, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x55, 0x73, + 0x12, 0x64, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x18, 0x8f, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, 0x1b, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x73, 0x55, 0x70, 0x64, 0x18, 0x90, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x55, 0x70, 0x64, 0x48, 0x00, 0x52, 0x1b, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x55, 0x70, 0x64, 0x48, 0x00, 0x52, 0x1b, 0x75, 0x73, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x55, 0x70, 0x64, 0x12, 0x70, 0x0a, 0x20, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x55, 0x70, 0x64, 0x12, 0x70, 0x0a, 0x20, 0x75, 0x73, 0x65, 0x72, - 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x91, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x20, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x91, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x20, 0x75, 0x73, 0x65, 0x72, 0x4e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x73, 0x0a, 0x21, 0x75, + 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x18, 0x92, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x73, 0x0a, 0x21, 0x75, 0x73, - 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, - 0x92, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x21, 0x75, 0x73, - 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x3d, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x18, 0x94, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0f, 0x75, - 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x40, - 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x18, 0x95, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x10, - 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x40, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x18, 0x96, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, - 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x12, 0x43, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x97, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x18, 0xde, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0e, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x48, - 0x00, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, - 0x12, 0x3a, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, - 0x73, 0x70, 0x18, 0xdf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x73, - 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x10, - 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, - 0x18, 0xfe, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x10, 0x77, 0x69, - 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x43, - 0x0a, 0x11, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x18, 0xff, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x57, 0x69, 0x64, - 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, - 0x52, 0x11, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x12, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x80, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x12, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x49, 0x0a, 0x13, 0x77, - 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x18, 0x81, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x57, 0x69, 0x64, 0x67, - 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, - 0x00, 0x52, 0x13, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0f, 0x7a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, - 0x44, 0x4f, 0x49, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x18, 0xf0, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x5a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x44, 0x4f, 0x49, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x71, 0x48, 0x00, 0x52, 0x0f, 0x7a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x44, 0x4f, 0x49, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x40, 0x0a, 0x10, 0x7a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x44, - 0x4f, 0x49, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xf1, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x5a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x44, 0x4f, 0x49, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x10, 0x7a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x44, 0x4f, 0x49, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x73, 0x2a, 0x7e, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x53, 0x5f, 0x55, 0x4e, 0x44, 0x45, - 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x57, 0x53, 0x5f, 0x4f, 0x4b, - 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, - 0x4e, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x57, 0x53, 0x5f, 0x42, 0x41, 0x44, 0x5f, 0x52, - 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x57, 0x53, 0x5f, 0x4e, - 0x4f, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x13, - 0x0a, 0x0f, 0x57, 0x53, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x4f, - 0x52, 0x10, 0x05, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x3b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x21, 0x75, + 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x3d, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x18, 0x94, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0f, + 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, + 0x40, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x18, 0x95, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, + 0x10, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x40, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x18, 0x96, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x48, + 0x00, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x12, 0x43, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0x97, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x18, 0xde, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, + 0x48, 0x00, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, + 0x71, 0x12, 0x3a, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, + 0x65, 0x73, 0x70, 0x18, 0xdf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x0e, 0x75, + 0x73, 0x65, 0x72, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, + 0x10, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x18, 0xfe, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x57, 0x69, 0x64, 0x67, 0x65, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x10, 0x77, + 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, + 0x43, 0x0a, 0x11, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x18, 0xff, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x57, 0x69, + 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, + 0x00, 0x52, 0x11, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x12, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x18, 0x80, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x12, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x49, 0x0a, 0x13, + 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x18, 0x81, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x57, 0x69, 0x64, + 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x48, 0x00, 0x52, 0x13, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0f, 0x7a, 0x65, 0x6e, 0x6f, 0x64, + 0x6f, 0x44, 0x4f, 0x49, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x18, 0xf0, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x5a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x44, 0x4f, 0x49, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x0f, 0x7a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x44, 0x4f, 0x49, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x40, 0x0a, 0x10, 0x7a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, + 0x44, 0x4f, 0x49, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x18, 0xf1, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x5a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x44, 0x4f, 0x49, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x10, 0x7a, 0x65, 0x6e, 0x6f, 0x64, 0x6f, 0x44, 0x4f, + 0x49, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x73, 0x2a, 0x8e, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x53, 0x5f, 0x55, 0x4e, + 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x57, 0x53, 0x5f, + 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, + 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x57, 0x53, 0x5f, 0x42, 0x41, 0x44, + 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x57, 0x53, + 0x5f, 0x4e, 0x4f, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x04, + 0x12, 0x13, 0x0a, 0x0f, 0x57, 0x53, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x57, 0x53, 0x5f, 0x54, 0x49, 0x4d, 0x45, + 0x4f, 0x55, 0x54, 0x10, 0x06, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x3b, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5485,95 +5530,97 @@ var file_websocket_proto_goTypes = []interface{}{ (*ScanMetaLabelsAndTypesResp)(nil), // 176: ScanMetaLabelsAndTypesResp (*ScanMetaWriteReq)(nil), // 177: ScanMetaWriteReq (*ScanMetaWriteResp)(nil), // 178: ScanMetaWriteResp - (*ScanTriggerReImportReq)(nil), // 179: ScanTriggerReImportReq - (*ScanTriggerReImportResp)(nil), // 180: ScanTriggerReImportResp - (*ScanTriggerReImportUpd)(nil), // 181: ScanTriggerReImportUpd - (*ScanUploadReq)(nil), // 182: ScanUploadReq - (*ScanUploadResp)(nil), // 183: ScanUploadResp - (*ScanUploadUpd)(nil), // 184: ScanUploadUpd - (*ScreenConfigurationDeleteReq)(nil), // 185: ScreenConfigurationDeleteReq - (*ScreenConfigurationDeleteResp)(nil), // 186: ScreenConfigurationDeleteResp - (*ScreenConfigurationGetReq)(nil), // 187: ScreenConfigurationGetReq - (*ScreenConfigurationGetResp)(nil), // 188: ScreenConfigurationGetResp - (*ScreenConfigurationListReq)(nil), // 189: ScreenConfigurationListReq - (*ScreenConfigurationListResp)(nil), // 190: ScreenConfigurationListResp - (*ScreenConfigurationWriteReq)(nil), // 191: ScreenConfigurationWriteReq - (*ScreenConfigurationWriteResp)(nil), // 192: ScreenConfigurationWriteResp - (*SelectedImagePixelsReq)(nil), // 193: SelectedImagePixelsReq - (*SelectedImagePixelsResp)(nil), // 194: SelectedImagePixelsResp - (*SelectedImagePixelsWriteReq)(nil), // 195: SelectedImagePixelsWriteReq - (*SelectedImagePixelsWriteResp)(nil), // 196: SelectedImagePixelsWriteResp - (*SelectedScanEntriesReq)(nil), // 197: SelectedScanEntriesReq - (*SelectedScanEntriesResp)(nil), // 198: SelectedScanEntriesResp - (*SelectedScanEntriesWriteReq)(nil), // 199: SelectedScanEntriesWriteReq - (*SelectedScanEntriesWriteResp)(nil), // 200: SelectedScanEntriesWriteResp - (*SendUserNotificationReq)(nil), // 201: SendUserNotificationReq - (*SendUserNotificationResp)(nil), // 202: SendUserNotificationResp - (*SpectrumReq)(nil), // 203: SpectrumReq - (*SpectrumResp)(nil), // 204: SpectrumResp - (*TagCreateReq)(nil), // 205: TagCreateReq - (*TagCreateResp)(nil), // 206: TagCreateResp - (*TagDeleteReq)(nil), // 207: TagDeleteReq - (*TagDeleteResp)(nil), // 208: TagDeleteResp - (*TagListReq)(nil), // 209: TagListReq - (*TagListResp)(nil), // 210: TagListResp - (*UserAddRoleReq)(nil), // 211: UserAddRoleReq - (*UserAddRoleResp)(nil), // 212: UserAddRoleResp - (*UserDeleteRoleReq)(nil), // 213: UserDeleteRoleReq - (*UserDeleteRoleResp)(nil), // 214: UserDeleteRoleResp - (*UserDetailsReq)(nil), // 215: UserDetailsReq - (*UserDetailsResp)(nil), // 216: UserDetailsResp - (*UserDetailsWriteReq)(nil), // 217: UserDetailsWriteReq - (*UserDetailsWriteResp)(nil), // 218: UserDetailsWriteResp - (*UserGroupAddAdminReq)(nil), // 219: UserGroupAddAdminReq - (*UserGroupAddAdminResp)(nil), // 220: UserGroupAddAdminResp - (*UserGroupAddMemberReq)(nil), // 221: UserGroupAddMemberReq - (*UserGroupAddMemberResp)(nil), // 222: UserGroupAddMemberResp - (*UserGroupAddViewerReq)(nil), // 223: UserGroupAddViewerReq - (*UserGroupAddViewerResp)(nil), // 224: UserGroupAddViewerResp - (*UserGroupCreateReq)(nil), // 225: UserGroupCreateReq - (*UserGroupCreateResp)(nil), // 226: UserGroupCreateResp - (*UserGroupDeleteAdminReq)(nil), // 227: UserGroupDeleteAdminReq - (*UserGroupDeleteAdminResp)(nil), // 228: UserGroupDeleteAdminResp - (*UserGroupDeleteMemberReq)(nil), // 229: UserGroupDeleteMemberReq - (*UserGroupDeleteMemberResp)(nil), // 230: UserGroupDeleteMemberResp - (*UserGroupDeleteReq)(nil), // 231: UserGroupDeleteReq - (*UserGroupDeleteResp)(nil), // 232: UserGroupDeleteResp - (*UserGroupDeleteViewerReq)(nil), // 233: UserGroupDeleteViewerReq - (*UserGroupDeleteViewerResp)(nil), // 234: UserGroupDeleteViewerResp - (*UserGroupIgnoreJoinReq)(nil), // 235: UserGroupIgnoreJoinReq - (*UserGroupIgnoreJoinResp)(nil), // 236: UserGroupIgnoreJoinResp - (*UserGroupJoinListReq)(nil), // 237: UserGroupJoinListReq - (*UserGroupJoinListResp)(nil), // 238: UserGroupJoinListResp - (*UserGroupJoinReq)(nil), // 239: UserGroupJoinReq - (*UserGroupJoinResp)(nil), // 240: UserGroupJoinResp - (*UserGroupListJoinableReq)(nil), // 241: UserGroupListJoinableReq - (*UserGroupListJoinableResp)(nil), // 242: UserGroupListJoinableResp - (*UserGroupListReq)(nil), // 243: UserGroupListReq - (*UserGroupListResp)(nil), // 244: UserGroupListResp - (*UserGroupReq)(nil), // 245: UserGroupReq - (*UserGroupResp)(nil), // 246: UserGroupResp - (*UserGroupSetNameReq)(nil), // 247: UserGroupSetNameReq - (*UserGroupSetNameResp)(nil), // 248: UserGroupSetNameResp - (*UserListReq)(nil), // 249: UserListReq - (*UserListResp)(nil), // 250: UserListResp - (*UserNotificationSettingsReq)(nil), // 251: UserNotificationSettingsReq - (*UserNotificationSettingsResp)(nil), // 252: UserNotificationSettingsResp - (*UserNotificationSettingsUpd)(nil), // 253: UserNotificationSettingsUpd - (*UserNotificationSettingsWriteReq)(nil), // 254: UserNotificationSettingsWriteReq - (*UserNotificationSettingsWriteResp)(nil), // 255: UserNotificationSettingsWriteResp - (*UserRoleListReq)(nil), // 256: UserRoleListReq - (*UserRoleListResp)(nil), // 257: UserRoleListResp - (*UserRolesListReq)(nil), // 258: UserRolesListReq - (*UserRolesListResp)(nil), // 259: UserRolesListResp - (*UserSearchReq)(nil), // 260: UserSearchReq - (*UserSearchResp)(nil), // 261: UserSearchResp - (*WidgetDataGetReq)(nil), // 262: WidgetDataGetReq - (*WidgetDataGetResp)(nil), // 263: WidgetDataGetResp - (*WidgetDataWriteReq)(nil), // 264: WidgetDataWriteReq - (*WidgetDataWriteResp)(nil), // 265: WidgetDataWriteResp - (*ZenodoDOIGetReq)(nil), // 266: ZenodoDOIGetReq - (*ZenodoDOIGetResp)(nil), // 267: ZenodoDOIGetResp + (*ScanTriggerAutoQuantReq)(nil), // 179: ScanTriggerAutoQuantReq + (*ScanTriggerAutoQuantResp)(nil), // 180: ScanTriggerAutoQuantResp + (*ScanTriggerReImportReq)(nil), // 181: ScanTriggerReImportReq + (*ScanTriggerReImportResp)(nil), // 182: ScanTriggerReImportResp + (*ScanTriggerReImportUpd)(nil), // 183: ScanTriggerReImportUpd + (*ScanUploadReq)(nil), // 184: ScanUploadReq + (*ScanUploadResp)(nil), // 185: ScanUploadResp + (*ScanUploadUpd)(nil), // 186: ScanUploadUpd + (*ScreenConfigurationDeleteReq)(nil), // 187: ScreenConfigurationDeleteReq + (*ScreenConfigurationDeleteResp)(nil), // 188: ScreenConfigurationDeleteResp + (*ScreenConfigurationGetReq)(nil), // 189: ScreenConfigurationGetReq + (*ScreenConfigurationGetResp)(nil), // 190: ScreenConfigurationGetResp + (*ScreenConfigurationListReq)(nil), // 191: ScreenConfigurationListReq + (*ScreenConfigurationListResp)(nil), // 192: ScreenConfigurationListResp + (*ScreenConfigurationWriteReq)(nil), // 193: ScreenConfigurationWriteReq + (*ScreenConfigurationWriteResp)(nil), // 194: ScreenConfigurationWriteResp + (*SelectedImagePixelsReq)(nil), // 195: SelectedImagePixelsReq + (*SelectedImagePixelsResp)(nil), // 196: SelectedImagePixelsResp + (*SelectedImagePixelsWriteReq)(nil), // 197: SelectedImagePixelsWriteReq + (*SelectedImagePixelsWriteResp)(nil), // 198: SelectedImagePixelsWriteResp + (*SelectedScanEntriesReq)(nil), // 199: SelectedScanEntriesReq + (*SelectedScanEntriesResp)(nil), // 200: SelectedScanEntriesResp + (*SelectedScanEntriesWriteReq)(nil), // 201: SelectedScanEntriesWriteReq + (*SelectedScanEntriesWriteResp)(nil), // 202: SelectedScanEntriesWriteResp + (*SendUserNotificationReq)(nil), // 203: SendUserNotificationReq + (*SendUserNotificationResp)(nil), // 204: SendUserNotificationResp + (*SpectrumReq)(nil), // 205: SpectrumReq + (*SpectrumResp)(nil), // 206: SpectrumResp + (*TagCreateReq)(nil), // 207: TagCreateReq + (*TagCreateResp)(nil), // 208: TagCreateResp + (*TagDeleteReq)(nil), // 209: TagDeleteReq + (*TagDeleteResp)(nil), // 210: TagDeleteResp + (*TagListReq)(nil), // 211: TagListReq + (*TagListResp)(nil), // 212: TagListResp + (*UserAddRoleReq)(nil), // 213: UserAddRoleReq + (*UserAddRoleResp)(nil), // 214: UserAddRoleResp + (*UserDeleteRoleReq)(nil), // 215: UserDeleteRoleReq + (*UserDeleteRoleResp)(nil), // 216: UserDeleteRoleResp + (*UserDetailsReq)(nil), // 217: UserDetailsReq + (*UserDetailsResp)(nil), // 218: UserDetailsResp + (*UserDetailsWriteReq)(nil), // 219: UserDetailsWriteReq + (*UserDetailsWriteResp)(nil), // 220: UserDetailsWriteResp + (*UserGroupAddAdminReq)(nil), // 221: UserGroupAddAdminReq + (*UserGroupAddAdminResp)(nil), // 222: UserGroupAddAdminResp + (*UserGroupAddMemberReq)(nil), // 223: UserGroupAddMemberReq + (*UserGroupAddMemberResp)(nil), // 224: UserGroupAddMemberResp + (*UserGroupAddViewerReq)(nil), // 225: UserGroupAddViewerReq + (*UserGroupAddViewerResp)(nil), // 226: UserGroupAddViewerResp + (*UserGroupCreateReq)(nil), // 227: UserGroupCreateReq + (*UserGroupCreateResp)(nil), // 228: UserGroupCreateResp + (*UserGroupDeleteAdminReq)(nil), // 229: UserGroupDeleteAdminReq + (*UserGroupDeleteAdminResp)(nil), // 230: UserGroupDeleteAdminResp + (*UserGroupDeleteMemberReq)(nil), // 231: UserGroupDeleteMemberReq + (*UserGroupDeleteMemberResp)(nil), // 232: UserGroupDeleteMemberResp + (*UserGroupDeleteReq)(nil), // 233: UserGroupDeleteReq + (*UserGroupDeleteResp)(nil), // 234: UserGroupDeleteResp + (*UserGroupDeleteViewerReq)(nil), // 235: UserGroupDeleteViewerReq + (*UserGroupDeleteViewerResp)(nil), // 236: UserGroupDeleteViewerResp + (*UserGroupIgnoreJoinReq)(nil), // 237: UserGroupIgnoreJoinReq + (*UserGroupIgnoreJoinResp)(nil), // 238: UserGroupIgnoreJoinResp + (*UserGroupJoinListReq)(nil), // 239: UserGroupJoinListReq + (*UserGroupJoinListResp)(nil), // 240: UserGroupJoinListResp + (*UserGroupJoinReq)(nil), // 241: UserGroupJoinReq + (*UserGroupJoinResp)(nil), // 242: UserGroupJoinResp + (*UserGroupListJoinableReq)(nil), // 243: UserGroupListJoinableReq + (*UserGroupListJoinableResp)(nil), // 244: UserGroupListJoinableResp + (*UserGroupListReq)(nil), // 245: UserGroupListReq + (*UserGroupListResp)(nil), // 246: UserGroupListResp + (*UserGroupReq)(nil), // 247: UserGroupReq + (*UserGroupResp)(nil), // 248: UserGroupResp + (*UserGroupSetNameReq)(nil), // 249: UserGroupSetNameReq + (*UserGroupSetNameResp)(nil), // 250: UserGroupSetNameResp + (*UserListReq)(nil), // 251: UserListReq + (*UserListResp)(nil), // 252: UserListResp + (*UserNotificationSettingsReq)(nil), // 253: UserNotificationSettingsReq + (*UserNotificationSettingsResp)(nil), // 254: UserNotificationSettingsResp + (*UserNotificationSettingsUpd)(nil), // 255: UserNotificationSettingsUpd + (*UserNotificationSettingsWriteReq)(nil), // 256: UserNotificationSettingsWriteReq + (*UserNotificationSettingsWriteResp)(nil), // 257: UserNotificationSettingsWriteResp + (*UserRoleListReq)(nil), // 258: UserRoleListReq + (*UserRoleListResp)(nil), // 259: UserRoleListResp + (*UserRolesListReq)(nil), // 260: UserRolesListReq + (*UserRolesListResp)(nil), // 261: UserRolesListResp + (*UserSearchReq)(nil), // 262: UserSearchReq + (*UserSearchResp)(nil), // 263: UserSearchResp + (*WidgetDataGetReq)(nil), // 264: WidgetDataGetReq + (*WidgetDataGetResp)(nil), // 265: WidgetDataGetResp + (*WidgetDataWriteReq)(nil), // 266: WidgetDataWriteReq + (*WidgetDataWriteResp)(nil), // 267: WidgetDataWriteResp + (*ZenodoDOIGetReq)(nil), // 268: ZenodoDOIGetReq + (*ZenodoDOIGetResp)(nil), // 269: ZenodoDOIGetResp } var file_websocket_proto_depIdxs = []int32{ 0, // 0: WSMessage.status:type_name -> ResponseStatus @@ -5754,100 +5801,102 @@ var file_websocket_proto_depIdxs = []int32{ 176, // 175: WSMessage.scanMetaLabelsAndTypesResp:type_name -> ScanMetaLabelsAndTypesResp 177, // 176: WSMessage.scanMetaWriteReq:type_name -> ScanMetaWriteReq 178, // 177: WSMessage.scanMetaWriteResp:type_name -> ScanMetaWriteResp - 179, // 178: WSMessage.scanTriggerReImportReq:type_name -> ScanTriggerReImportReq - 180, // 179: WSMessage.scanTriggerReImportResp:type_name -> ScanTriggerReImportResp - 181, // 180: WSMessage.scanTriggerReImportUpd:type_name -> ScanTriggerReImportUpd - 182, // 181: WSMessage.scanUploadReq:type_name -> ScanUploadReq - 183, // 182: WSMessage.scanUploadResp:type_name -> ScanUploadResp - 184, // 183: WSMessage.scanUploadUpd:type_name -> ScanUploadUpd - 185, // 184: WSMessage.screenConfigurationDeleteReq:type_name -> ScreenConfigurationDeleteReq - 186, // 185: WSMessage.screenConfigurationDeleteResp:type_name -> ScreenConfigurationDeleteResp - 187, // 186: WSMessage.screenConfigurationGetReq:type_name -> ScreenConfigurationGetReq - 188, // 187: WSMessage.screenConfigurationGetResp:type_name -> ScreenConfigurationGetResp - 189, // 188: WSMessage.screenConfigurationListReq:type_name -> ScreenConfigurationListReq - 190, // 189: WSMessage.screenConfigurationListResp:type_name -> ScreenConfigurationListResp - 191, // 190: WSMessage.screenConfigurationWriteReq:type_name -> ScreenConfigurationWriteReq - 192, // 191: WSMessage.screenConfigurationWriteResp:type_name -> ScreenConfigurationWriteResp - 193, // 192: WSMessage.selectedImagePixelsReq:type_name -> SelectedImagePixelsReq - 194, // 193: WSMessage.selectedImagePixelsResp:type_name -> SelectedImagePixelsResp - 195, // 194: WSMessage.selectedImagePixelsWriteReq:type_name -> SelectedImagePixelsWriteReq - 196, // 195: WSMessage.selectedImagePixelsWriteResp:type_name -> SelectedImagePixelsWriteResp - 197, // 196: WSMessage.selectedScanEntriesReq:type_name -> SelectedScanEntriesReq - 198, // 197: WSMessage.selectedScanEntriesResp:type_name -> SelectedScanEntriesResp - 199, // 198: WSMessage.selectedScanEntriesWriteReq:type_name -> SelectedScanEntriesWriteReq - 200, // 199: WSMessage.selectedScanEntriesWriteResp:type_name -> SelectedScanEntriesWriteResp - 201, // 200: WSMessage.sendUserNotificationReq:type_name -> SendUserNotificationReq - 202, // 201: WSMessage.sendUserNotificationResp:type_name -> SendUserNotificationResp - 203, // 202: WSMessage.spectrumReq:type_name -> SpectrumReq - 204, // 203: WSMessage.spectrumResp:type_name -> SpectrumResp - 205, // 204: WSMessage.tagCreateReq:type_name -> TagCreateReq - 206, // 205: WSMessage.tagCreateResp:type_name -> TagCreateResp - 207, // 206: WSMessage.tagDeleteReq:type_name -> TagDeleteReq - 208, // 207: WSMessage.tagDeleteResp:type_name -> TagDeleteResp - 209, // 208: WSMessage.tagListReq:type_name -> TagListReq - 210, // 209: WSMessage.tagListResp:type_name -> TagListResp - 211, // 210: WSMessage.userAddRoleReq:type_name -> UserAddRoleReq - 212, // 211: WSMessage.userAddRoleResp:type_name -> UserAddRoleResp - 213, // 212: WSMessage.userDeleteRoleReq:type_name -> UserDeleteRoleReq - 214, // 213: WSMessage.userDeleteRoleResp:type_name -> UserDeleteRoleResp - 215, // 214: WSMessage.userDetailsReq:type_name -> UserDetailsReq - 216, // 215: WSMessage.userDetailsResp:type_name -> UserDetailsResp - 217, // 216: WSMessage.userDetailsWriteReq:type_name -> UserDetailsWriteReq - 218, // 217: WSMessage.userDetailsWriteResp:type_name -> UserDetailsWriteResp - 219, // 218: WSMessage.userGroupAddAdminReq:type_name -> UserGroupAddAdminReq - 220, // 219: WSMessage.userGroupAddAdminResp:type_name -> UserGroupAddAdminResp - 221, // 220: WSMessage.userGroupAddMemberReq:type_name -> UserGroupAddMemberReq - 222, // 221: WSMessage.userGroupAddMemberResp:type_name -> UserGroupAddMemberResp - 223, // 222: WSMessage.userGroupAddViewerReq:type_name -> UserGroupAddViewerReq - 224, // 223: WSMessage.userGroupAddViewerResp:type_name -> UserGroupAddViewerResp - 225, // 224: WSMessage.userGroupCreateReq:type_name -> UserGroupCreateReq - 226, // 225: WSMessage.userGroupCreateResp:type_name -> UserGroupCreateResp - 227, // 226: WSMessage.userGroupDeleteAdminReq:type_name -> UserGroupDeleteAdminReq - 228, // 227: WSMessage.userGroupDeleteAdminResp:type_name -> UserGroupDeleteAdminResp - 229, // 228: WSMessage.userGroupDeleteMemberReq:type_name -> UserGroupDeleteMemberReq - 230, // 229: WSMessage.userGroupDeleteMemberResp:type_name -> UserGroupDeleteMemberResp - 231, // 230: WSMessage.userGroupDeleteReq:type_name -> UserGroupDeleteReq - 232, // 231: WSMessage.userGroupDeleteResp:type_name -> UserGroupDeleteResp - 233, // 232: WSMessage.userGroupDeleteViewerReq:type_name -> UserGroupDeleteViewerReq - 234, // 233: WSMessage.userGroupDeleteViewerResp:type_name -> UserGroupDeleteViewerResp - 235, // 234: WSMessage.userGroupIgnoreJoinReq:type_name -> UserGroupIgnoreJoinReq - 236, // 235: WSMessage.userGroupIgnoreJoinResp:type_name -> UserGroupIgnoreJoinResp - 237, // 236: WSMessage.userGroupJoinListReq:type_name -> UserGroupJoinListReq - 238, // 237: WSMessage.userGroupJoinListResp:type_name -> UserGroupJoinListResp - 239, // 238: WSMessage.userGroupJoinReq:type_name -> UserGroupJoinReq - 240, // 239: WSMessage.userGroupJoinResp:type_name -> UserGroupJoinResp - 241, // 240: WSMessage.userGroupListJoinableReq:type_name -> UserGroupListJoinableReq - 242, // 241: WSMessage.userGroupListJoinableResp:type_name -> UserGroupListJoinableResp - 243, // 242: WSMessage.userGroupListReq:type_name -> UserGroupListReq - 244, // 243: WSMessage.userGroupListResp:type_name -> UserGroupListResp - 245, // 244: WSMessage.userGroupReq:type_name -> UserGroupReq - 246, // 245: WSMessage.userGroupResp:type_name -> UserGroupResp - 247, // 246: WSMessage.userGroupSetNameReq:type_name -> UserGroupSetNameReq - 248, // 247: WSMessage.userGroupSetNameResp:type_name -> UserGroupSetNameResp - 249, // 248: WSMessage.userListReq:type_name -> UserListReq - 250, // 249: WSMessage.userListResp:type_name -> UserListResp - 251, // 250: WSMessage.userNotificationSettingsReq:type_name -> UserNotificationSettingsReq - 252, // 251: WSMessage.userNotificationSettingsResp:type_name -> UserNotificationSettingsResp - 253, // 252: WSMessage.userNotificationSettingsUpd:type_name -> UserNotificationSettingsUpd - 254, // 253: WSMessage.userNotificationSettingsWriteReq:type_name -> UserNotificationSettingsWriteReq - 255, // 254: WSMessage.userNotificationSettingsWriteResp:type_name -> UserNotificationSettingsWriteResp - 256, // 255: WSMessage.userRoleListReq:type_name -> UserRoleListReq - 257, // 256: WSMessage.userRoleListResp:type_name -> UserRoleListResp - 258, // 257: WSMessage.userRolesListReq:type_name -> UserRolesListReq - 259, // 258: WSMessage.userRolesListResp:type_name -> UserRolesListResp - 260, // 259: WSMessage.userSearchReq:type_name -> UserSearchReq - 261, // 260: WSMessage.userSearchResp:type_name -> UserSearchResp - 262, // 261: WSMessage.widgetDataGetReq:type_name -> WidgetDataGetReq - 263, // 262: WSMessage.widgetDataGetResp:type_name -> WidgetDataGetResp - 264, // 263: WSMessage.widgetDataWriteReq:type_name -> WidgetDataWriteReq - 265, // 264: WSMessage.widgetDataWriteResp:type_name -> WidgetDataWriteResp - 266, // 265: WSMessage.zenodoDOIGetReq:type_name -> ZenodoDOIGetReq - 267, // 266: WSMessage.zenodoDOIGetResp:type_name -> ZenodoDOIGetResp - 267, // [267:267] is the sub-list for method output_type - 267, // [267:267] is the sub-list for method input_type - 267, // [267:267] is the sub-list for extension type_name - 267, // [267:267] is the sub-list for extension extendee - 0, // [0:267] is the sub-list for field type_name + 179, // 178: WSMessage.scanTriggerAutoQuantReq:type_name -> ScanTriggerAutoQuantReq + 180, // 179: WSMessage.scanTriggerAutoQuantResp:type_name -> ScanTriggerAutoQuantResp + 181, // 180: WSMessage.scanTriggerReImportReq:type_name -> ScanTriggerReImportReq + 182, // 181: WSMessage.scanTriggerReImportResp:type_name -> ScanTriggerReImportResp + 183, // 182: WSMessage.scanTriggerReImportUpd:type_name -> ScanTriggerReImportUpd + 184, // 183: WSMessage.scanUploadReq:type_name -> ScanUploadReq + 185, // 184: WSMessage.scanUploadResp:type_name -> ScanUploadResp + 186, // 185: WSMessage.scanUploadUpd:type_name -> ScanUploadUpd + 187, // 186: WSMessage.screenConfigurationDeleteReq:type_name -> ScreenConfigurationDeleteReq + 188, // 187: WSMessage.screenConfigurationDeleteResp:type_name -> ScreenConfigurationDeleteResp + 189, // 188: WSMessage.screenConfigurationGetReq:type_name -> ScreenConfigurationGetReq + 190, // 189: WSMessage.screenConfigurationGetResp:type_name -> ScreenConfigurationGetResp + 191, // 190: WSMessage.screenConfigurationListReq:type_name -> ScreenConfigurationListReq + 192, // 191: WSMessage.screenConfigurationListResp:type_name -> ScreenConfigurationListResp + 193, // 192: WSMessage.screenConfigurationWriteReq:type_name -> ScreenConfigurationWriteReq + 194, // 193: WSMessage.screenConfigurationWriteResp:type_name -> ScreenConfigurationWriteResp + 195, // 194: WSMessage.selectedImagePixelsReq:type_name -> SelectedImagePixelsReq + 196, // 195: WSMessage.selectedImagePixelsResp:type_name -> SelectedImagePixelsResp + 197, // 196: WSMessage.selectedImagePixelsWriteReq:type_name -> SelectedImagePixelsWriteReq + 198, // 197: WSMessage.selectedImagePixelsWriteResp:type_name -> SelectedImagePixelsWriteResp + 199, // 198: WSMessage.selectedScanEntriesReq:type_name -> SelectedScanEntriesReq + 200, // 199: WSMessage.selectedScanEntriesResp:type_name -> SelectedScanEntriesResp + 201, // 200: WSMessage.selectedScanEntriesWriteReq:type_name -> SelectedScanEntriesWriteReq + 202, // 201: WSMessage.selectedScanEntriesWriteResp:type_name -> SelectedScanEntriesWriteResp + 203, // 202: WSMessage.sendUserNotificationReq:type_name -> SendUserNotificationReq + 204, // 203: WSMessage.sendUserNotificationResp:type_name -> SendUserNotificationResp + 205, // 204: WSMessage.spectrumReq:type_name -> SpectrumReq + 206, // 205: WSMessage.spectrumResp:type_name -> SpectrumResp + 207, // 206: WSMessage.tagCreateReq:type_name -> TagCreateReq + 208, // 207: WSMessage.tagCreateResp:type_name -> TagCreateResp + 209, // 208: WSMessage.tagDeleteReq:type_name -> TagDeleteReq + 210, // 209: WSMessage.tagDeleteResp:type_name -> TagDeleteResp + 211, // 210: WSMessage.tagListReq:type_name -> TagListReq + 212, // 211: WSMessage.tagListResp:type_name -> TagListResp + 213, // 212: WSMessage.userAddRoleReq:type_name -> UserAddRoleReq + 214, // 213: WSMessage.userAddRoleResp:type_name -> UserAddRoleResp + 215, // 214: WSMessage.userDeleteRoleReq:type_name -> UserDeleteRoleReq + 216, // 215: WSMessage.userDeleteRoleResp:type_name -> UserDeleteRoleResp + 217, // 216: WSMessage.userDetailsReq:type_name -> UserDetailsReq + 218, // 217: WSMessage.userDetailsResp:type_name -> UserDetailsResp + 219, // 218: WSMessage.userDetailsWriteReq:type_name -> UserDetailsWriteReq + 220, // 219: WSMessage.userDetailsWriteResp:type_name -> UserDetailsWriteResp + 221, // 220: WSMessage.userGroupAddAdminReq:type_name -> UserGroupAddAdminReq + 222, // 221: WSMessage.userGroupAddAdminResp:type_name -> UserGroupAddAdminResp + 223, // 222: WSMessage.userGroupAddMemberReq:type_name -> UserGroupAddMemberReq + 224, // 223: WSMessage.userGroupAddMemberResp:type_name -> UserGroupAddMemberResp + 225, // 224: WSMessage.userGroupAddViewerReq:type_name -> UserGroupAddViewerReq + 226, // 225: WSMessage.userGroupAddViewerResp:type_name -> UserGroupAddViewerResp + 227, // 226: WSMessage.userGroupCreateReq:type_name -> UserGroupCreateReq + 228, // 227: WSMessage.userGroupCreateResp:type_name -> UserGroupCreateResp + 229, // 228: WSMessage.userGroupDeleteAdminReq:type_name -> UserGroupDeleteAdminReq + 230, // 229: WSMessage.userGroupDeleteAdminResp:type_name -> UserGroupDeleteAdminResp + 231, // 230: WSMessage.userGroupDeleteMemberReq:type_name -> UserGroupDeleteMemberReq + 232, // 231: WSMessage.userGroupDeleteMemberResp:type_name -> UserGroupDeleteMemberResp + 233, // 232: WSMessage.userGroupDeleteReq:type_name -> UserGroupDeleteReq + 234, // 233: WSMessage.userGroupDeleteResp:type_name -> UserGroupDeleteResp + 235, // 234: WSMessage.userGroupDeleteViewerReq:type_name -> UserGroupDeleteViewerReq + 236, // 235: WSMessage.userGroupDeleteViewerResp:type_name -> UserGroupDeleteViewerResp + 237, // 236: WSMessage.userGroupIgnoreJoinReq:type_name -> UserGroupIgnoreJoinReq + 238, // 237: WSMessage.userGroupIgnoreJoinResp:type_name -> UserGroupIgnoreJoinResp + 239, // 238: WSMessage.userGroupJoinListReq:type_name -> UserGroupJoinListReq + 240, // 239: WSMessage.userGroupJoinListResp:type_name -> UserGroupJoinListResp + 241, // 240: WSMessage.userGroupJoinReq:type_name -> UserGroupJoinReq + 242, // 241: WSMessage.userGroupJoinResp:type_name -> UserGroupJoinResp + 243, // 242: WSMessage.userGroupListJoinableReq:type_name -> UserGroupListJoinableReq + 244, // 243: WSMessage.userGroupListJoinableResp:type_name -> UserGroupListJoinableResp + 245, // 244: WSMessage.userGroupListReq:type_name -> UserGroupListReq + 246, // 245: WSMessage.userGroupListResp:type_name -> UserGroupListResp + 247, // 246: WSMessage.userGroupReq:type_name -> UserGroupReq + 248, // 247: WSMessage.userGroupResp:type_name -> UserGroupResp + 249, // 248: WSMessage.userGroupSetNameReq:type_name -> UserGroupSetNameReq + 250, // 249: WSMessage.userGroupSetNameResp:type_name -> UserGroupSetNameResp + 251, // 250: WSMessage.userListReq:type_name -> UserListReq + 252, // 251: WSMessage.userListResp:type_name -> UserListResp + 253, // 252: WSMessage.userNotificationSettingsReq:type_name -> UserNotificationSettingsReq + 254, // 253: WSMessage.userNotificationSettingsResp:type_name -> UserNotificationSettingsResp + 255, // 254: WSMessage.userNotificationSettingsUpd:type_name -> UserNotificationSettingsUpd + 256, // 255: WSMessage.userNotificationSettingsWriteReq:type_name -> UserNotificationSettingsWriteReq + 257, // 256: WSMessage.userNotificationSettingsWriteResp:type_name -> UserNotificationSettingsWriteResp + 258, // 257: WSMessage.userRoleListReq:type_name -> UserRoleListReq + 259, // 258: WSMessage.userRoleListResp:type_name -> UserRoleListResp + 260, // 259: WSMessage.userRolesListReq:type_name -> UserRolesListReq + 261, // 260: WSMessage.userRolesListResp:type_name -> UserRolesListResp + 262, // 261: WSMessage.userSearchReq:type_name -> UserSearchReq + 263, // 262: WSMessage.userSearchResp:type_name -> UserSearchResp + 264, // 263: WSMessage.widgetDataGetReq:type_name -> WidgetDataGetReq + 265, // 264: WSMessage.widgetDataGetResp:type_name -> WidgetDataGetResp + 266, // 265: WSMessage.widgetDataWriteReq:type_name -> WidgetDataWriteReq + 267, // 266: WSMessage.widgetDataWriteResp:type_name -> WidgetDataWriteResp + 268, // 267: WSMessage.zenodoDOIGetReq:type_name -> ZenodoDOIGetReq + 269, // 268: WSMessage.zenodoDOIGetResp:type_name -> ZenodoDOIGetResp + 269, // [269:269] is the sub-list for method output_type + 269, // [269:269] is the sub-list for method input_type + 269, // [269:269] is the sub-list for extension type_name + 269, // [269:269] is the sub-list for extension extendee + 0, // [0:269] is the sub-list for field type_name } func init() { file_websocket_proto_init() } @@ -6091,6 +6140,8 @@ func file_websocket_proto_init() { (*WSMessage_ScanMetaLabelsAndTypesResp)(nil), (*WSMessage_ScanMetaWriteReq)(nil), (*WSMessage_ScanMetaWriteResp)(nil), + (*WSMessage_ScanTriggerAutoQuantReq)(nil), + (*WSMessage_ScanTriggerAutoQuantResp)(nil), (*WSMessage_ScanTriggerReImportReq)(nil), (*WSMessage_ScanTriggerReImportResp)(nil), (*WSMessage_ScanTriggerReImportUpd)(nil), diff --git a/generated-protos/widget-data-msgs.pb.go b/generated-protos/widget-data-msgs.pb.go index cc100e37..8438a1a9 100644 --- a/generated-protos/widget-data-msgs.pb.go +++ b/generated-protos/widget-data-msgs.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: widget-data-msgs.proto package protos diff --git a/generated-protos/widget-data.pb.go b/generated-protos/widget-data.pb.go index c6733761..6aa7a0f3 100644 --- a/generated-protos/widget-data.pb.go +++ b/generated-protos/widget-data.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.20.3 +// protoc-gen-go v1.30.0 +// protoc v3.19.4 // source: widget-data.proto package protos @@ -768,12 +768,14 @@ type VariogramState struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ExpressionIDs []string `protobuf:"bytes,1,rep,name=expressionIDs,proto3" json:"expressionIDs,omitempty"` - VisibleROIs []*VisibleROI `protobuf:"bytes,2,rep,name=visibleROIs,proto3" json:"visibleROIs,omitempty"` - VarioModel string `protobuf:"bytes,3,opt,name=varioModel,proto3" json:"varioModel,omitempty"` // valid: "exponential", "spherical", "gaussian" - MaxDistance float32 `protobuf:"fixed32,4,opt,name=maxDistance,proto3" json:"maxDistance,omitempty"` - BinCount int32 `protobuf:"varint,5,opt,name=binCount,proto3" json:"binCount,omitempty"` - DrawModeVector bool `protobuf:"varint,6,opt,name=drawModeVector,proto3" json:"drawModeVector,omitempty"` // vector or isotropic + ExpressionIDs []string `protobuf:"bytes,1,rep,name=expressionIDs,proto3" json:"expressionIDs,omitempty"` + VisibleROIs []*VisibleROI `protobuf:"bytes,2,rep,name=visibleROIs,proto3" json:"visibleROIs,omitempty"` + VarioModel string `protobuf:"bytes,3,opt,name=varioModel,proto3" json:"varioModel,omitempty"` // valid: "exponential", "spherical", "gaussian" + MaxDistance float32 `protobuf:"fixed32,4,opt,name=maxDistance,proto3" json:"maxDistance,omitempty"` + BinCount int32 `protobuf:"varint,5,opt,name=binCount,proto3" json:"binCount,omitempty"` + DrawModeVector bool `protobuf:"varint,6,opt,name=drawModeVector,proto3" json:"drawModeVector,omitempty"` // vector or isotropic + ComparisonAlgorithms []string `protobuf:"bytes,7,rep,name=comparisonAlgorithms,proto3" json:"comparisonAlgorithms,omitempty"` // "Subtract", "XOR-Sum", + LiveUpdate bool `protobuf:"varint,8,opt,name=liveUpdate,proto3" json:"liveUpdate,omitempty"` } func (x *VariogramState) Reset() { @@ -850,6 +852,20 @@ func (x *VariogramState) GetDrawModeVector() bool { return false } +func (x *VariogramState) GetComparisonAlgorithms() []string { + if x != nil { + return x.ComparisonAlgorithms + } + return nil +} + +func (x *VariogramState) GetLiveUpdate() bool { + if x != nil { + return x.LiveUpdate + } + return false +} + type MapLayerVisibility struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2090,7 +2106,7 @@ var file_widget_data_proto_rawDesc = []byte{ 0x61, 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x6f, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x6f, 0x69, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x22, 0xeb, 0x01, 0x0a, 0x0e, + 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x22, 0xbf, 0x02, 0x0a, 0x0e, 0x56, 0x61, 0x72, 0x69, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, @@ -2105,235 +2121,240 @@ var file_widget_data_proto_rawDesc = []byte{ 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x64, 0x72, 0x61, 0x77, 0x4d, - 0x6f, 0x64, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x86, 0x02, 0x0a, 0x12, 0x4d, 0x61, - 0x70, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x6f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, - 0x0a, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x69, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x32, 0x0a, 0x14, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x4d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x61, 0x78, - 0x12, 0x30, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x53, 0x68, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x68, 0x61, 0x64, 0x69, - 0x6e, 0x67, 0x22, 0x70, 0x0a, 0x12, 0x52, 0x4f, 0x49, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x56, 0x69, - 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x61, 0x63, + 0x6f, 0x64, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x32, 0x0a, 0x14, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, + 0x73, 0x6f, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x73, 0x12, 0x1e, 0x0a, + 0x0a, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0a, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x86, 0x02, + 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x6f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x63, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, - 0x61, 0x6e, 0x49, 0x64, 0x22, 0x83, 0x07, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, - 0x6e, 0x58, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x70, 0x61, 0x6e, 0x58, 0x12, 0x12, - 0x0a, 0x04, 0x70, 0x61, 0x6e, 0x59, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x70, 0x61, - 0x6e, 0x59, 0x12, 0x14, 0x0a, 0x05, 0x7a, 0x6f, 0x6f, 0x6d, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x05, 0x7a, 0x6f, 0x6f, 0x6d, 0x58, 0x12, 0x14, 0x0a, 0x05, 0x7a, 0x6f, 0x6f, 0x6d, - 0x59, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x7a, 0x6f, 0x6f, 0x6d, 0x59, 0x12, 0x1e, - 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x24, - 0x0a, 0x0d, 0x73, 0x68, 0x6f, 0x77, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x42, 0x6f, 0x78, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x68, 0x6f, 0x77, 0x50, 0x6f, 0x69, 0x6e, 0x74, - 0x42, 0x42, 0x6f, 0x78, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6f, 0x6c, - 0x6f, 0x75, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x11, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x75, 0x72, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x42, 0x6f, 0x78, 0x43, - 0x6f, 0x6c, 0x6f, 0x75, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x15, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x6c, 0x6f, - 0x75, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a, 0x15, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x6d, 0x6f, 0x6f, - 0x74, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x78, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x69, - 0x6e, 0x67, 0x12, 0x31, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, - 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x4d, 0x61, 0x70, 0x4c, 0x61, 0x79, 0x65, 0x72, - 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x09, 0x6d, 0x61, 0x70, 0x4c, - 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x72, 0x6f, 0x69, 0x4c, 0x61, 0x79, 0x65, - 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x52, 0x4f, 0x49, 0x4c, 0x61, - 0x79, 0x65, 0x72, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x09, 0x72, - 0x6f, 0x69, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x68, 0x61, 0x64, 0x69, - 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x68, 0x61, 0x64, 0x69, 0x6e, 0x67, - 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, - 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x67, 0x62, 0x75, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x67, 0x62, 0x75, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x75, 0x6e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x4f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x11, 0x75, 0x6e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x61, 0x63, 0x69, - 0x74, 0x79, 0x12, 0x30, 0x0a, 0x13, 0x75, 0x6e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x47, 0x72, 0x61, 0x79, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x13, 0x75, 0x6e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x47, 0x72, 0x61, 0x79, 0x73, - 0x63, 0x61, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6f, 0x75, 0x72, 0x52, 0x61, - 0x74, 0x69, 0x6f, 0x4d, 0x69, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x63, 0x6f, - 0x6c, 0x6f, 0x75, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x4d, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0e, - 0x63, 0x6f, 0x6c, 0x6f, 0x75, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x4d, 0x61, 0x78, 0x18, 0x13, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6f, 0x75, 0x72, 0x52, 0x61, 0x74, 0x69, - 0x6f, 0x4d, 0x61, 0x78, 0x12, 0x3e, 0x0a, 0x1a, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x6f, - 0x70, 0x53, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x54, 0x6f, 0x70, 0x53, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6f, - 0x74, 0x74, 0x6f, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1d, 0x72, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, - 0x72, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x22, 0x73, 0x0a, 0x0f, 0x41, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x0c, 0x0a, - 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x63, 0x72, - 0x65, 0x65, 0x6e, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, - 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x73, - 0x63, 0x72, 0x65, 0x65, 0x6e, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x0c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, - 0xcc, 0x01, 0x0a, 0x18, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x41, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x28, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, - 0x6c, 0x6f, 0x75, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x6f, - 0x75, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, - 0x78, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x6f, 0x6e, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x6f, 0x6e, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x22, 0x5f, - 0x0a, 0x16, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x45, 0x0a, 0x10, 0x73, 0x61, 0x76, 0x65, - 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x41, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x10, 0x73, - 0x61, 0x76, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, - 0x8f, 0x02, 0x0a, 0x0f, 0x52, 0x4f, 0x49, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x0a, 0x72, 0x6f, 0x69, 0x43, 0x6f, 0x6c, 0x6f, 0x75, 0x72, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x52, 0x4f, 0x49, 0x44, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x69, 0x43, 0x6f, 0x6c, - 0x6f, 0x75, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x72, 0x6f, 0x69, 0x43, 0x6f, - 0x6c, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x3d, 0x0a, 0x09, 0x72, 0x6f, 0x69, 0x53, 0x68, 0x61, 0x70, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x52, 0x4f, 0x49, 0x44, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x69, 0x53, 0x68, - 0x61, 0x70, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x72, 0x6f, 0x69, 0x53, 0x68, - 0x61, 0x70, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x52, 0x6f, 0x69, 0x43, 0x6f, 0x6c, 0x6f, 0x75, - 0x72, 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, 0x3c, 0x0a, 0x0e, 0x52, 0x6f, 0x69, 0x53, 0x68, 0x61, 0x70, 0x65, 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, 0xa7, 0x03, 0x0a, 0x13, 0x52, 0x47, 0x42, 0x55, 0x50, 0x6c, 0x6f, 0x74, 0x57, 0x69, - 0x64, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, - 0x65, 0x72, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6e, - 0x65, 0x72, 0x61, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x41, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x41, 0x12, 0x1c, 0x0a, 0x09, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x42, 0x12, 0x1c, 0x0a, 0x09, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x12, - 0x1c, 0x0a, 0x09, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x12, 0x26, 0x0a, - 0x0e, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x6f, 0x6e, 0x6f, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x6f, 0x6e, 0x6f, 0x63, - 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x4d, 0x69, 0x6e, 0x58, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x11, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4d, 0x69, 0x6e, 0x58, 0x56, 0x61, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x14, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x4d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x69, 0x6e, + 0x12, 0x32, 0x0a, 0x14, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x4d, 0x61, 0x78, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x53, 0x68, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x13, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, + 0x68, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x70, 0x0a, 0x12, 0x52, 0x4f, 0x49, 0x4c, 0x61, 0x79, + 0x65, 0x72, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x6f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x6f, + 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x63, 0x61, 0x6e, 0x49, 0x64, 0x22, 0x83, 0x07, 0x0a, 0x11, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x70, 0x61, 0x6e, 0x58, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x70, 0x61, + 0x6e, 0x58, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x6e, 0x59, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x04, 0x70, 0x61, 0x6e, 0x59, 0x12, 0x14, 0x0a, 0x05, 0x7a, 0x6f, 0x6f, 0x6d, 0x58, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x7a, 0x6f, 0x6f, 0x6d, 0x58, 0x12, 0x14, 0x0a, 0x05, + 0x7a, 0x6f, 0x6f, 0x6d, 0x59, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x7a, 0x6f, 0x6f, + 0x6d, 0x59, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x68, 0x6f, 0x77, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x42, + 0x42, 0x6f, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x68, 0x6f, 0x77, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x42, 0x6f, 0x78, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x75, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x75, 0x72, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, + 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x75, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x42, 0x6f, 0x78, + 0x43, 0x6f, 0x6c, 0x6f, 0x75, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x12, 0x34, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x53, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x15, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x6d, 0x6f, + 0x6f, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x31, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x4c, 0x61, 0x79, + 0x65, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x4d, 0x61, 0x70, 0x4c, + 0x61, 0x79, 0x65, 0x72, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x09, + 0x6d, 0x61, 0x70, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x72, 0x6f, 0x69, + 0x4c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x52, + 0x4f, 0x49, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x52, 0x09, 0x72, 0x6f, 0x69, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x16, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, + 0x68, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x65, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x68, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, + 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x6e, 0x65, 0x73, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x67, 0x62, 0x75, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x67, 0x62, 0x75, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x75, 0x6e, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x11, 0x75, 0x6e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4f, + 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x30, 0x0a, 0x13, 0x75, 0x6e, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x47, 0x72, 0x61, 0x79, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x13, 0x75, 0x6e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x47, + 0x72, 0x61, 0x79, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6f, + 0x75, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x4d, 0x69, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6f, 0x75, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x4d, 0x69, 0x6e, + 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6f, 0x75, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x4d, + 0x61, 0x78, 0x18, 0x13, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6f, 0x75, 0x72, + 0x52, 0x61, 0x74, 0x69, 0x6f, 0x4d, 0x61, 0x78, 0x12, 0x3e, 0x0a, 0x1a, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x54, 0x6f, 0x70, 0x53, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x72, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x6f, 0x70, 0x53, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x41, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x75, 0x6c, 0x61, 0x72, + 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x1d, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x53, 0x70, 0x65, + 0x63, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x22, 0x73, + 0x0a, 0x0f, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, + 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x12, 0x20, 0x0a, + 0x0b, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x0b, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, + 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x48, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x22, 0xcc, 0x01, 0x0a, 0x18, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x63, 0x72, 0x65, + 0x65, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x16, + 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x6f, 0x75, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x63, 0x6f, 0x6c, 0x6f, 0x75, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x6f, 0x6e, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x6f, 0x6e, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x69, 0x64, 0x22, 0x5f, 0x0a, 0x16, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x45, 0x0a, 0x10, + 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x63, 0x72, + 0x65, 0x65, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, + 0x6d, 0x52, 0x10, 0x73, 0x61, 0x76, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x22, 0x8f, 0x02, 0x0a, 0x0f, 0x52, 0x4f, 0x49, 0x44, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x0a, 0x72, 0x6f, 0x69, 0x43, 0x6f, + 0x6c, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x52, 0x4f, + 0x49, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x6f, + 0x69, 0x43, 0x6f, 0x6c, 0x6f, 0x75, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x72, + 0x6f, 0x69, 0x43, 0x6f, 0x6c, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x3d, 0x0a, 0x09, 0x72, 0x6f, 0x69, + 0x53, 0x68, 0x61, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x52, + 0x4f, 0x49, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, + 0x6f, 0x69, 0x53, 0x68, 0x61, 0x70, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x72, + 0x6f, 0x69, 0x53, 0x68, 0x61, 0x70, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x52, 0x6f, 0x69, 0x43, + 0x6f, 0x6c, 0x6f, 0x75, 0x72, 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, 0x3c, 0x0a, 0x0e, 0x52, 0x6f, 0x69, 0x53, 0x68, + 0x61, 0x70, 0x65, 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, 0xa7, 0x03, 0x0a, 0x13, 0x52, 0x47, 0x42, 0x55, 0x50, 0x6c, + 0x6f, 0x74, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x08, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x79, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x79, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x12, 0x1c, 0x0a, 0x09, 0x79, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x42, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x79, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x12, 0x1c, 0x0a, 0x09, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x41, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x41, 0x12, 0x1c, 0x0a, 0x09, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x42, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x6f, 0x6e, 0x6f, 0x63, 0x68, 0x72, + 0x6f, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x64, 0x72, 0x61, 0x77, 0x4d, + 0x6f, 0x6e, 0x6f, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x4d, 0x69, 0x6e, 0x58, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4d, 0x69, + 0x6e, 0x58, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x58, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x11, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x58, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x4d, 0x69, 0x6e, 0x59, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x11, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4d, 0x69, 0x6e, 0x59, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4d, - 0x61, 0x78, 0x58, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x58, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4d, 0x69, 0x6e, - 0x59, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4d, 0x69, 0x6e, 0x59, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x2c, 0x0a, 0x11, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x59, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x59, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, - 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xdf, 0x02, 0x0a, 0x19, - 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x78, 0x69, 0x73, 0x52, 0x47, 0x42, 0x55, 0x57, 0x69, - 0x64, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, - 0x65, 0x72, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6e, - 0x65, 0x72, 0x61, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x41, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x41, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x12, 0x2c, 0x0a, - 0x11, 0x72, 0x6f, 0x69, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x6c, - 0x61, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x72, 0x6f, 0x69, 0x53, 0x74, 0x61, - 0x63, 0x6b, 0x65, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x69, - 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x4d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4d, 0x69, 0x6e, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x4d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x69, 0x49, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x06, 0x72, 0x6f, 0x69, 0x49, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x73, 0x68, 0x6f, + 0x61, 0x78, 0x59, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x59, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0xdf, 0x02, 0x0a, 0x19, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x78, 0x69, 0x73, 0x52, 0x47, + 0x42, 0x55, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x08, 0x6d, 0x69, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x42, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x42, 0x12, 0x2c, 0x0a, 0x11, 0x72, 0x6f, 0x69, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x4f, + 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x72, 0x6f, + 0x69, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x12, + 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, + 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x4d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4d, 0x61, 0x78, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x69, 0x49, 0x64, 0x73, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x69, 0x49, 0x64, 0x73, 0x12, 0x32, 0x0a, + 0x14, 0x73, 0x68, 0x6f, 0x77, 0x41, 0x6c, 0x6c, 0x4d, 0x69, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x68, 0x6f, 0x77, 0x41, 0x6c, 0x6c, 0x4d, 0x69, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x68, 0x6f, 0x77, 0x41, 0x6c, 0x6c, - 0x4d, 0x69, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x22, 0x55, 0x0a, - 0x15, 0x52, 0x47, 0x42, 0x55, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x57, 0x69, 0x64, 0x67, 0x65, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x6e, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x62, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x6e, 0x0a, 0x18, 0x50, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, - 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xa1, 0x05, 0x0a, 0x0a, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x08, 0x73, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, - 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x73, 0x70, 0x65, - 0x63, 0x74, 0x72, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x06, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x06, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x07, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x54, - 0x65, 0x72, 0x6e, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x07, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x72, 0x79, 0x12, 0x2d, 0x0a, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, - 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, - 0x72, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, - 0x72, 0x61, 0x6d, 0x12, 0x36, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x05, 0x63, - 0x68, 0x6f, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x68, 0x6f, - 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x63, 0x68, 0x6f, 0x72, 0x64, 0x12, 0x21, - 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x39, 0x0a, 0x0d, 0x72, 0x6f, 0x69, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x52, 0x4f, 0x49, 0x51, 0x75, - 0x61, 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x72, - 0x6f, 0x69, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2d, 0x0a, 0x09, - 0x76, 0x61, 0x72, 0x69, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0f, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x09, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x30, 0x0a, 0x08, 0x72, - 0x67, 0x62, 0x75, 0x50, 0x6c, 0x6f, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x52, 0x47, 0x42, 0x55, 0x50, 0x6c, 0x6f, 0x74, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x08, 0x72, 0x67, 0x62, 0x75, 0x50, 0x6c, 0x6f, 0x74, 0x12, 0x42, 0x0a, - 0x0e, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x78, 0x69, 0x73, 0x52, 0x47, 0x42, 0x55, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x78, - 0x69, 0x73, 0x52, 0x47, 0x42, 0x55, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x0e, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x78, 0x69, 0x73, 0x52, 0x47, 0x42, - 0x55, 0x12, 0x34, 0x0a, 0x09, 0x72, 0x67, 0x62, 0x75, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x52, 0x47, 0x42, 0x55, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x73, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x72, 0x67, - 0x62, 0x75, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x61, 0x6c, - 0x6c, 0x65, 0x6c, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x57, 0x69, - 0x64, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x61, 0x6c, - 0x6c, 0x65, 0x6c, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x3b, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x22, 0x55, 0x0a, 0x15, 0x52, 0x47, 0x42, 0x55, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x57, + 0x69, 0x64, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, + 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x6e, 0x0a, 0x18, 0x50, 0x61, 0x72, 0x61, + 0x6c, 0x6c, 0x65, 0x6c, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, + 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xa1, 0x05, 0x0a, 0x0a, 0x57, 0x69, 0x64, + 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x08, 0x73, 0x70, 0x65, 0x63, 0x74, + 0x72, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x53, 0x70, 0x65, 0x63, + 0x74, 0x72, 0x75, 0x6d, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x08, 0x73, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x06, 0x62, 0x69, 0x6e, + 0x61, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x42, 0x69, 0x6e, 0x61, + 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x06, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, + 0x27, 0x0a, 0x07, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x54, 0x65, 0x72, 0x6e, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x07, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x2d, 0x0a, 0x09, 0x68, 0x69, 0x73, 0x74, + 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x68, 0x69, + 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x36, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, + 0x21, 0x0a, 0x05, 0x63, 0x68, 0x6f, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x43, 0x68, 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x63, 0x68, 0x6f, + 0x72, 0x64, 0x12, 0x21, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x39, 0x0a, 0x0d, 0x72, 0x6f, 0x69, 0x51, 0x75, 0x61, 0x6e, + 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x52, + 0x4f, 0x49, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x0d, 0x72, 0x6f, 0x69, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x12, 0x2d, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x76, 0x61, 0x72, 0x69, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, + 0x30, 0x0a, 0x08, 0x72, 0x67, 0x62, 0x75, 0x50, 0x6c, 0x6f, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x52, 0x47, 0x42, 0x55, 0x50, 0x6c, 0x6f, 0x74, 0x57, 0x69, 0x64, 0x67, + 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x72, 0x67, 0x62, 0x75, 0x50, 0x6c, 0x6f, + 0x74, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x78, 0x69, 0x73, 0x52, + 0x47, 0x42, 0x55, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x53, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x41, 0x78, 0x69, 0x73, 0x52, 0x47, 0x42, 0x55, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x78, 0x69, + 0x73, 0x52, 0x47, 0x42, 0x55, 0x12, 0x34, 0x0a, 0x09, 0x72, 0x67, 0x62, 0x75, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x52, 0x47, 0x42, 0x55, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x73, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x09, 0x72, 0x67, 0x62, 0x75, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x70, + 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x6f, 0x67, 0x72, + 0x61, 0x6d, 0x57, 0x69, 0x64, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x70, + 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x42, 0x0a, 0x5a, 0x08, + 0x2e, 0x3b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/internal/api/main.go b/internal/api/main.go index a8146643..8b141739 100644 --- a/internal/api/main.go +++ b/internal/api/main.go @@ -320,14 +320,25 @@ func (h autoImportHandler) handleAutoImportJobStatus(status *protos.JobStatus) { // Determine if it's a new scan or an update if status.JobType == protos.JobStatus_JT_IMPORT_SCAN { - h.svcs.Notifier.NotifyNewScan(scan.Title, scan.Id) - - // At this point, we can run a new quantification. Note however that we have to ensure this is only done by 1 active - // API instance, so we don't end up running the quant on each instance! - singleinstance.HandleOnce(scan.Id+"-quant", h.instanceId, func(sourceId string) { - quantification.RunAutoQuantifications(scan.Id, h.svcs) - }, h.svcs.MongoDB, h.svcs.TimeStamper, h.svcs.Log) + // Is this an updated scan? + if len(scan.PreviousImportTimesUnixSec) == 0 { + // No previous times, must be new + h.svcs.Notifier.NotifyNewScan(scan.Title, scan.Id) + } else { + // There are previous times, must be an update + h.svcs.Notifier.NotifyUpdatedScan(scan.Title, scan.Id) + } + // If this is the first time the scan was found to be complete (we have all spectra), run auto quants + // NOTE: We have to ensure this is only done by 1 active API instance, so we don't end up running the quant on each instance! + if scan.CompleteTimeStampUnixSec == scan.TimestampUnixSec { + h.svcs.Log.Infof("Scan complete detected, running auto-quantifications...") + singleinstance.HandleOnce(scan.Id+"-quant", h.instanceId, func(sourceId string) { + quantification.RunAutoQuantifications(scan.Id, h.svcs) + }, h.svcs.MongoDB, h.svcs.TimeStamper, h.svcs.Log) + } else { + h.svcs.Log.Infof("Scan complete time doesn't match current time, assuming auto-quantification not required.") + } } else if status.JobType == protos.JobStatus_JT_REIMPORT_SCAN { h.svcs.Notifier.NotifyUpdatedScan(scan.Title, scan.Id) } diff --git a/internal/cmd-line-tools/api-integration-test/testScanData.go b/internal/cmd-line-tools/api-integration-test/testScanData.go index cbdca51f..3b865043 100644 --- a/internal/cmd-line-tools/api-integration-test/testScanData.go +++ b/internal/cmd-line-tools/api-integration-test/testScanData.go @@ -1593,7 +1593,7 @@ func testScanDataHasPermission(apiHost string, actionMsg string, editAllowed boo // Check that the file was created exists, err := apiStorageFileAccess.ObjectExists(apiDatasetBucket, "Image-Cache/048300551/PCW_0125_0678031992_000RCM_N00417120483005510091075J02-width200.png") failIf(err != nil, fmt.Errorf("Failed to check generated GET thumbnail exists: %v", err)) - failIf(!exists, fmt.Errorf("generated GET thumbnail not found in Image-Cache/")) + failIf(!exists, fmt.Errorf("generated GET thumbnail not found in Image-Cache/ width 200")) // Now run it again, because this time it should be using the cached copy testImageGetScaled_OK(apiHost, imageGetJWT, 12, 200, 154) @@ -1607,7 +1607,7 @@ func testScanDataHasPermission(apiHost string, actionMsg string, editAllowed boo // Check that the file was created exists, err = apiStorageFileAccess.ObjectExists(apiDatasetBucket, "Image-Cache/048300551/PCW_0125_0678031992_000RCM_N00417120483005510091075J02-width400.png") failIf(err != nil, fmt.Errorf("Failed to check generated GET thumbnail exists: %v", err)) - failIf(!exists, fmt.Errorf("generated GET thumbnail not found in Image-Cache/")) + failIf(!exists, fmt.Errorf("generated GET thumbnail not found in Image-Cache/ width 400")) // Now run it again, because this time it should be using the cached copy testImageGetScaled_OK(apiHost, imageGetJWT, 450, 400, 308)