| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702 | // Code generated by protoc-gen-go. DO NOT EDIT.// versions:// 	protoc-gen-go v1.28.1// 	protoc        v3.21.9// source: backend/operation/statistic.protopackage operationPbimport (	protoreflect "google.golang.org/protobuf/reflect/protoreflect"	protoimpl "google.golang.org/protobuf/runtime/protoimpl"	reflect "reflect"	sync "sync")const (	// Verify that this generated code is sufficiently up-to-date.	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)	// Verify that runtime/protoimpl is sufficiently up-to-date.	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20))// 添加配方评估 具体字段含义参照formula_estimate表对应的字段type AddFormulaEstimateRequest struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	Id                   int32  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`	PastureId            int32  `protobuf:"varint,2,opt,name=pasture_id,json=pastureId,proto3" json:"pasture_id,omitempty"`	PastureName          string `protobuf:"bytes,3,opt,name=pasture_name,json=pastureName,proto3" json:"pasture_name,omitempty"`	BarnId               int32  `protobuf:"varint,4,opt,name=barn_id,json=barnId,proto3" json:"barn_id,omitempty"`	FeedFormulaId        int32  `protobuf:"varint,5,opt,name=feed_formula_id,json=feedFormulaId,proto3" json:"feed_formula_id,omitempty"`	FeedFormulaName      string `protobuf:"bytes,6,opt,name=feed_formula_name,json=feedFormulaName,proto3" json:"feed_formula_name,omitempty"`	CowNumber            int32  `protobuf:"varint,7,opt,name=cow_number,json=cowNumber,proto3" json:"cow_number,omitempty"`	DryFormulaNumber     int32  `protobuf:"varint,8,opt,name=dry_formula_number,json=dryFormulaNumber,proto3" json:"dry_formula_number,omitempty"`	DryTmrFeed           int32  `protobuf:"varint,9,opt,name=dry_tmr_feed,json=dryTmrFeed,proto3" json:"dry_tmr_feed,omitempty"`	DryFoodIntake        int32  `protobuf:"varint,10,opt,name=dry_food_intake,json=dryFoodIntake,proto3" json:"dry_food_intake,omitempty"`	MjFormulaNumber      int32  `protobuf:"varint,11,opt,name=mj_formula_number,json=mjFormulaNumber,proto3" json:"mj_formula_number,omitempty"`	MjTmrFeed            int32  `protobuf:"varint,12,opt,name=mj_tmr_feed,json=mjTmrFeed,proto3" json:"mj_tmr_feed,omitempty"`	MjFoodIntake         int32  `protobuf:"varint,13,opt,name=mj_food_intake,json=mjFoodIntake,proto3" json:"mj_food_intake,omitempty"`	NndFormulaNumber     int32  `protobuf:"varint,14,opt,name=nnd_formula_number,json=nndFormulaNumber,proto3" json:"nnd_formula_number,omitempty"`	NndTmrFeed           int32  `protobuf:"varint,15,opt,name=nnd_tmr_feed,json=nndTmrFeed,proto3" json:"nnd_tmr_feed,omitempty"`	NndFoodIntake        int32  `protobuf:"varint,16,opt,name=nnd_food_intake,json=nndFoodIntake,proto3" json:"nnd_food_intake,omitempty"`	CpgFormulaNumber     int32  `protobuf:"varint,17,opt,name=cpg_formula_number,json=cpgFormulaNumber,proto3" json:"cpg_formula_number,omitempty"`	CpgTmrFeed           int32  `protobuf:"varint,18,opt,name=cpg_tmr_feed,json=cpgTmrFeed,proto3" json:"cpg_tmr_feed,omitempty"`	CpgFoodIntake        int32  `protobuf:"varint,19,opt,name=cpg_food_intake,json=cpgFoodIntake,proto3" json:"cpg_food_intake,omitempty"`	PgFormulaNumber      int32  `protobuf:"varint,20,opt,name=pg_formula_number,json=pgFormulaNumber,proto3" json:"pg_formula_number,omitempty"`	PgTmrFeed            int32  `protobuf:"varint,21,opt,name=pg_tmr_feed,json=pgTmrFeed,proto3" json:"pg_tmr_feed,omitempty"`	PgFoodIntake         int32  `protobuf:"varint,22,opt,name=pg_food_intake,json=pgFoodIntake,proto3" json:"pg_food_intake,omitempty"`	DmFormulaNumber      int32  `protobuf:"varint,23,opt,name=dm_formula_number,json=dmFormulaNumber,proto3" json:"dm_formula_number,omitempty"`	DmTmrFeed            int32  `protobuf:"varint,24,opt,name=dm_tmr_feed,json=dmTmrFeed,proto3" json:"dm_tmr_feed,omitempty"`	DmFoodIntake         int32  `protobuf:"varint,25,opt,name=dm_food_intake,json=dmFoodIntake,proto3" json:"dm_food_intake,omitempty"`	CpdmFormulaNumber    int32  `protobuf:"varint,26,opt,name=cpdm_formula_number,json=cpdmFormulaNumber,proto3" json:"cpdm_formula_number,omitempty"`	CpdmTmrFeed          int32  `protobuf:"varint,27,opt,name=cpdm_tmr_feed,json=cpdmTmrFeed,proto3" json:"cpdm_tmr_feed,omitempty"`	CpdmFoodIntake       int32  `protobuf:"varint,28,opt,name=cpdm_food_intake,json=cpdmFoodIntake,proto3" json:"cpdm_food_intake,omitempty"`	FatFormulaNumber     int32  `protobuf:"varint,29,opt,name=fat_formula_number,json=fatFormulaNumber,proto3" json:"fat_formula_number,omitempty"`	FatTmrFeed           int32  `protobuf:"varint,30,opt,name=fat_tmr_feed,json=fatTmrFeed,proto3" json:"fat_tmr_feed,omitempty"`	FatFoodIntake        int32  `protobuf:"varint,31,opt,name=fat_food_intake,json=fatFoodIntake,proto3" json:"fat_food_intake,omitempty"`	StarchFormulaNumber  int32  `protobuf:"varint,32,opt,name=starch_formula_number,json=starchFormulaNumber,proto3" json:"starch_formula_number,omitempty"`	StarchTmrFeed        int32  `protobuf:"varint,33,opt,name=starch_tmr_feed,json=starchTmrFeed,proto3" json:"starch_tmr_feed,omitempty"`	StarchFoodIntake     int32  `protobuf:"varint,34,opt,name=starch_food_intake,json=starchFoodIntake,proto3" json:"starch_food_intake,omitempty"`	NdfFormulaNumber     int32  `protobuf:"varint,35,opt,name=ndf_formula_number,json=ndfFormulaNumber,proto3" json:"ndf_formula_number,omitempty"`	NdfTmrFeed           int32  `protobuf:"varint,36,opt,name=ndf_tmr_feed,json=ndfTmrFeed,proto3" json:"ndf_tmr_feed,omitempty"`	NdfFoodIntake        int32  `protobuf:"varint,37,opt,name=ndf_food_intake,json=ndfFoodIntake,proto3" json:"ndf_food_intake,omitempty"`	CpNdfFormulaNumber   int32  `protobuf:"varint,38,opt,name=cp_ndf_formula_number,json=cpNdfFormulaNumber,proto3" json:"cp_ndf_formula_number,omitempty"`	CpNdfTmrFeed         int32  `protobuf:"varint,39,opt,name=cp_ndf_tmr_feed,json=cpNdfTmrFeed,proto3" json:"cp_ndf_tmr_feed,omitempty"`	CpNdfFoodIntake      int32  `protobuf:"varint,40,opt,name=cp_ndf_food_intake,json=cpNdfFoodIntake,proto3" json:"cp_ndf_food_intake,omitempty"`	AdfFormulaNumber     int32  `protobuf:"varint,41,opt,name=adf_formula_number,json=adfFormulaNumber,proto3" json:"adf_formula_number,omitempty"`	AdfTmrFeed           int32  `protobuf:"varint,42,opt,name=adf_tmr_feed,json=adfTmrFeed,proto3" json:"adf_tmr_feed,omitempty"`	AdfFoodIntake        int32  `protobuf:"varint,43,opt,name=adf_food_intake,json=adfFoodIntake,proto3" json:"adf_food_intake,omitempty"`	CalciumFormulaNumber int32  `protobuf:"varint,44,opt,name=calcium_formula_number,json=calciumFormulaNumber,proto3" json:"calcium_formula_number,omitempty"`	CalciumTmrFeed       int32  `protobuf:"varint,45,opt,name=calcium_tmr_feed,json=calciumTmrFeed,proto3" json:"calcium_tmr_feed,omitempty"`	CalciumFoodIntake    int32  `protobuf:"varint,46,opt,name=calcium_food_intake,json=calciumFoodIntake,proto3" json:"calcium_food_intake,omitempty"`	PdmFormulaNumber     int32  `protobuf:"varint,47,opt,name=pdm_formula_number,json=pdmFormulaNumber,proto3" json:"pdm_formula_number,omitempty"`	PdmTmrFeed           int32  `protobuf:"varint,48,opt,name=pdm_tmr_feed,json=pdmTmrFeed,proto3" json:"pdm_tmr_feed,omitempty"`	PdmFoodIntake        int32  `protobuf:"varint,49,opt,name=pdm_food_intake,json=pdmFoodIntake,proto3" json:"pdm_food_intake,omitempty"`	CfRatioFormulaNumber int32  `protobuf:"varint,50,opt,name=cf_ratio_formula_number,json=cfRatioFormulaNumber,proto3" json:"cf_ratio_formula_number,omitempty"`	CfRatioTmrFeed       int32  `protobuf:"varint,51,opt,name=cf_ratio_tmr_feed,json=cfRatioTmrFeed,proto3" json:"cf_ratio_tmr_feed,omitempty"`	CfRatioFoodIntake    int32  `protobuf:"varint,52,opt,name=cf_ratio_food_intake,json=cfRatioFoodIntake,proto3" json:"cf_ratio_food_intake,omitempty"`	CreatedAt            int32  `protobuf:"varint,53,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`	CreatedAtFormat      string `protobuf:"bytes,54,opt,name=created_at_format,json=createdAtFormat,proto3" json:"created_at_format,omitempty"`}func (x *AddFormulaEstimateRequest) Reset() {	*x = AddFormulaEstimateRequest{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_statistic_proto_msgTypes[0]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *AddFormulaEstimateRequest) String() string {	return protoimpl.X.MessageStringOf(x)}func (*AddFormulaEstimateRequest) ProtoMessage() {}func (x *AddFormulaEstimateRequest) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_statistic_proto_msgTypes[0]	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 AddFormulaEstimateRequest.ProtoReflect.Descriptor instead.func (*AddFormulaEstimateRequest) Descriptor() ([]byte, []int) {	return file_backend_operation_statistic_proto_rawDescGZIP(), []int{0}}func (x *AddFormulaEstimateRequest) GetId() int32 {	if x != nil {		return x.Id	}	return 0}func (x *AddFormulaEstimateRequest) GetPastureId() int32 {	if x != nil {		return x.PastureId	}	return 0}func (x *AddFormulaEstimateRequest) GetPastureName() string {	if x != nil {		return x.PastureName	}	return ""}func (x *AddFormulaEstimateRequest) GetBarnId() int32 {	if x != nil {		return x.BarnId	}	return 0}func (x *AddFormulaEstimateRequest) GetFeedFormulaId() int32 {	if x != nil {		return x.FeedFormulaId	}	return 0}func (x *AddFormulaEstimateRequest) GetFeedFormulaName() string {	if x != nil {		return x.FeedFormulaName	}	return ""}func (x *AddFormulaEstimateRequest) GetCowNumber() int32 {	if x != nil {		return x.CowNumber	}	return 0}func (x *AddFormulaEstimateRequest) GetDryFormulaNumber() int32 {	if x != nil {		return x.DryFormulaNumber	}	return 0}func (x *AddFormulaEstimateRequest) GetDryTmrFeed() int32 {	if x != nil {		return x.DryTmrFeed	}	return 0}func (x *AddFormulaEstimateRequest) GetDryFoodIntake() int32 {	if x != nil {		return x.DryFoodIntake	}	return 0}func (x *AddFormulaEstimateRequest) GetMjFormulaNumber() int32 {	if x != nil {		return x.MjFormulaNumber	}	return 0}func (x *AddFormulaEstimateRequest) GetMjTmrFeed() int32 {	if x != nil {		return x.MjTmrFeed	}	return 0}func (x *AddFormulaEstimateRequest) GetMjFoodIntake() int32 {	if x != nil {		return x.MjFoodIntake	}	return 0}func (x *AddFormulaEstimateRequest) GetNndFormulaNumber() int32 {	if x != nil {		return x.NndFormulaNumber	}	return 0}func (x *AddFormulaEstimateRequest) GetNndTmrFeed() int32 {	if x != nil {		return x.NndTmrFeed	}	return 0}func (x *AddFormulaEstimateRequest) GetNndFoodIntake() int32 {	if x != nil {		return x.NndFoodIntake	}	return 0}func (x *AddFormulaEstimateRequest) GetCpgFormulaNumber() int32 {	if x != nil {		return x.CpgFormulaNumber	}	return 0}func (x *AddFormulaEstimateRequest) GetCpgTmrFeed() int32 {	if x != nil {		return x.CpgTmrFeed	}	return 0}func (x *AddFormulaEstimateRequest) GetCpgFoodIntake() int32 {	if x != nil {		return x.CpgFoodIntake	}	return 0}func (x *AddFormulaEstimateRequest) GetPgFormulaNumber() int32 {	if x != nil {		return x.PgFormulaNumber	}	return 0}func (x *AddFormulaEstimateRequest) GetPgTmrFeed() int32 {	if x != nil {		return x.PgTmrFeed	}	return 0}func (x *AddFormulaEstimateRequest) GetPgFoodIntake() int32 {	if x != nil {		return x.PgFoodIntake	}	return 0}func (x *AddFormulaEstimateRequest) GetDmFormulaNumber() int32 {	if x != nil {		return x.DmFormulaNumber	}	return 0}func (x *AddFormulaEstimateRequest) GetDmTmrFeed() int32 {	if x != nil {		return x.DmTmrFeed	}	return 0}func (x *AddFormulaEstimateRequest) GetDmFoodIntake() int32 {	if x != nil {		return x.DmFoodIntake	}	return 0}func (x *AddFormulaEstimateRequest) GetCpdmFormulaNumber() int32 {	if x != nil {		return x.CpdmFormulaNumber	}	return 0}func (x *AddFormulaEstimateRequest) GetCpdmTmrFeed() int32 {	if x != nil {		return x.CpdmTmrFeed	}	return 0}func (x *AddFormulaEstimateRequest) GetCpdmFoodIntake() int32 {	if x != nil {		return x.CpdmFoodIntake	}	return 0}func (x *AddFormulaEstimateRequest) GetFatFormulaNumber() int32 {	if x != nil {		return x.FatFormulaNumber	}	return 0}func (x *AddFormulaEstimateRequest) GetFatTmrFeed() int32 {	if x != nil {		return x.FatTmrFeed	}	return 0}func (x *AddFormulaEstimateRequest) GetFatFoodIntake() int32 {	if x != nil {		return x.FatFoodIntake	}	return 0}func (x *AddFormulaEstimateRequest) GetStarchFormulaNumber() int32 {	if x != nil {		return x.StarchFormulaNumber	}	return 0}func (x *AddFormulaEstimateRequest) GetStarchTmrFeed() int32 {	if x != nil {		return x.StarchTmrFeed	}	return 0}func (x *AddFormulaEstimateRequest) GetStarchFoodIntake() int32 {	if x != nil {		return x.StarchFoodIntake	}	return 0}func (x *AddFormulaEstimateRequest) GetNdfFormulaNumber() int32 {	if x != nil {		return x.NdfFormulaNumber	}	return 0}func (x *AddFormulaEstimateRequest) GetNdfTmrFeed() int32 {	if x != nil {		return x.NdfTmrFeed	}	return 0}func (x *AddFormulaEstimateRequest) GetNdfFoodIntake() int32 {	if x != nil {		return x.NdfFoodIntake	}	return 0}func (x *AddFormulaEstimateRequest) GetCpNdfFormulaNumber() int32 {	if x != nil {		return x.CpNdfFormulaNumber	}	return 0}func (x *AddFormulaEstimateRequest) GetCpNdfTmrFeed() int32 {	if x != nil {		return x.CpNdfTmrFeed	}	return 0}func (x *AddFormulaEstimateRequest) GetCpNdfFoodIntake() int32 {	if x != nil {		return x.CpNdfFoodIntake	}	return 0}func (x *AddFormulaEstimateRequest) GetAdfFormulaNumber() int32 {	if x != nil {		return x.AdfFormulaNumber	}	return 0}func (x *AddFormulaEstimateRequest) GetAdfTmrFeed() int32 {	if x != nil {		return x.AdfTmrFeed	}	return 0}func (x *AddFormulaEstimateRequest) GetAdfFoodIntake() int32 {	if x != nil {		return x.AdfFoodIntake	}	return 0}func (x *AddFormulaEstimateRequest) GetCalciumFormulaNumber() int32 {	if x != nil {		return x.CalciumFormulaNumber	}	return 0}func (x *AddFormulaEstimateRequest) GetCalciumTmrFeed() int32 {	if x != nil {		return x.CalciumTmrFeed	}	return 0}func (x *AddFormulaEstimateRequest) GetCalciumFoodIntake() int32 {	if x != nil {		return x.CalciumFoodIntake	}	return 0}func (x *AddFormulaEstimateRequest) GetPdmFormulaNumber() int32 {	if x != nil {		return x.PdmFormulaNumber	}	return 0}func (x *AddFormulaEstimateRequest) GetPdmTmrFeed() int32 {	if x != nil {		return x.PdmTmrFeed	}	return 0}func (x *AddFormulaEstimateRequest) GetPdmFoodIntake() int32 {	if x != nil {		return x.PdmFoodIntake	}	return 0}func (x *AddFormulaEstimateRequest) GetCfRatioFormulaNumber() int32 {	if x != nil {		return x.CfRatioFormulaNumber	}	return 0}func (x *AddFormulaEstimateRequest) GetCfRatioTmrFeed() int32 {	if x != nil {		return x.CfRatioTmrFeed	}	return 0}func (x *AddFormulaEstimateRequest) GetCfRatioFoodIntake() int32 {	if x != nil {		return x.CfRatioFoodIntake	}	return 0}func (x *AddFormulaEstimateRequest) GetCreatedAt() int32 {	if x != nil {		return x.CreatedAt	}	return 0}func (x *AddFormulaEstimateRequest) GetCreatedAtFormat() string {	if x != nil {		return x.CreatedAtFormat	}	return ""}type SearchFormulaEstimateRequest struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	StartTime  string           `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`     // 开始时间	EndTime    string           `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`           // 结束时间	SearchType int32            `protobuf:"varint,3,opt,name=search_type,json=searchType,proto3" json:"search_type,omitempty"` // 查询方式  1 安照配方 2 按照栏舍	Name       string           `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`                                // 名称	Pagination *PaginationModel `protobuf:"bytes,5,opt,name=pagination,proto3" json:"pagination,omitempty"`                    // 分页}func (x *SearchFormulaEstimateRequest) Reset() {	*x = SearchFormulaEstimateRequest{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_statistic_proto_msgTypes[1]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *SearchFormulaEstimateRequest) String() string {	return protoimpl.X.MessageStringOf(x)}func (*SearchFormulaEstimateRequest) ProtoMessage() {}func (x *SearchFormulaEstimateRequest) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_statistic_proto_msgTypes[1]	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 SearchFormulaEstimateRequest.ProtoReflect.Descriptor instead.func (*SearchFormulaEstimateRequest) Descriptor() ([]byte, []int) {	return file_backend_operation_statistic_proto_rawDescGZIP(), []int{1}}func (x *SearchFormulaEstimateRequest) GetStartTime() string {	if x != nil {		return x.StartTime	}	return ""}func (x *SearchFormulaEstimateRequest) GetEndTime() string {	if x != nil {		return x.EndTime	}	return ""}func (x *SearchFormulaEstimateRequest) GetSearchType() int32 {	if x != nil {		return x.SearchType	}	return 0}func (x *SearchFormulaEstimateRequest) GetName() string {	if x != nil {		return x.Name	}	return ""}func (x *SearchFormulaEstimateRequest) GetPagination() *PaginationModel {	if x != nil {		return x.Pagination	}	return nil}type SearchFormulaEstimateResponse struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	Code int32                  `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`	Msg  string                 `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`	Data *SearchFormulaEstimate `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`}func (x *SearchFormulaEstimateResponse) Reset() {	*x = SearchFormulaEstimateResponse{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_statistic_proto_msgTypes[2]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *SearchFormulaEstimateResponse) String() string {	return protoimpl.X.MessageStringOf(x)}func (*SearchFormulaEstimateResponse) ProtoMessage() {}func (x *SearchFormulaEstimateResponse) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_statistic_proto_msgTypes[2]	if protoimpl.UnsafeEnabled && x != nil {		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		if ms.LoadMessageInfo() == nil {			ms.StoreMessageInfo(mi)		}		return ms	}	return mi.MessageOf(x)}// Deprecated: Use SearchFormulaEstimateResponse.ProtoReflect.Descriptor instead.func (*SearchFormulaEstimateResponse) Descriptor() ([]byte, []int) {	return file_backend_operation_statistic_proto_rawDescGZIP(), []int{2}}func (x *SearchFormulaEstimateResponse) GetCode() int32 {	if x != nil {		return x.Code	}	return 0}func (x *SearchFormulaEstimateResponse) GetMsg() string {	if x != nil {		return x.Msg	}	return ""}func (x *SearchFormulaEstimateResponse) GetData() *SearchFormulaEstimate {	if x != nil {		return x.Data	}	return nil}type SearchFormulaEstimate struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	Page     int32                        `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"`	Total    int32                        `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"`	PageSize int32                        `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`	List     []*AddFormulaEstimateRequest `protobuf:"bytes,4,rep,name=list,proto3" json:"list,omitempty"`}func (x *SearchFormulaEstimate) Reset() {	*x = SearchFormulaEstimate{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_statistic_proto_msgTypes[3]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *SearchFormulaEstimate) String() string {	return protoimpl.X.MessageStringOf(x)}func (*SearchFormulaEstimate) ProtoMessage() {}func (x *SearchFormulaEstimate) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_statistic_proto_msgTypes[3]	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 SearchFormulaEstimate.ProtoReflect.Descriptor instead.func (*SearchFormulaEstimate) Descriptor() ([]byte, []int) {	return file_backend_operation_statistic_proto_rawDescGZIP(), []int{3}}func (x *SearchFormulaEstimate) GetPage() int32 {	if x != nil {		return x.Page	}	return 0}func (x *SearchFormulaEstimate) GetTotal() int32 {	if x != nil {		return x.Total	}	return 0}func (x *SearchFormulaEstimate) GetPageSize() int32 {	if x != nil {		return x.PageSize	}	return 0}func (x *SearchFormulaEstimate) GetList() []*AddFormulaEstimateRequest {	if x != nil {		return x.List	}	return nil}// 首页 dashboard 准确性分析type SearchAnalysisAccuracyRequest struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	CattleParentCategoryId CattleCategoryParent_Kind `protobuf:"varint,1,opt,name=cattle_parent_category_id,json=cattleParentCategoryId,proto3,enum=backend.operation.CattleCategoryParent_Kind" json:"cattle_parent_category_id,omitempty"` // 牧畜分类id 泌乳牛	FeedFormulaId          int32                     `protobuf:"varint,2,opt,name=feed_formula_id,json=feedFormulaId,proto3" json:"feed_formula_id,omitempty"`                                                                               // 配方id	StartDate              string                    `protobuf:"bytes,3,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"`                                                                                              // 开始时间	EndDate                string                    `protobuf:"bytes,4,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"`                                                                                                    // 结束时间	PastureIds             []int32                   `protobuf:"varint,5,rep,packed,name=pasture_ids,json=pastureIds,proto3" json:"pasture_ids,omitempty"`                                                                                   //牧场ids}func (x *SearchAnalysisAccuracyRequest) Reset() {	*x = SearchAnalysisAccuracyRequest{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_statistic_proto_msgTypes[4]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *SearchAnalysisAccuracyRequest) String() string {	return protoimpl.X.MessageStringOf(x)}func (*SearchAnalysisAccuracyRequest) ProtoMessage() {}func (x *SearchAnalysisAccuracyRequest) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_statistic_proto_msgTypes[4]	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 SearchAnalysisAccuracyRequest.ProtoReflect.Descriptor instead.func (*SearchAnalysisAccuracyRequest) Descriptor() ([]byte, []int) {	return file_backend_operation_statistic_proto_rawDescGZIP(), []int{4}}func (x *SearchAnalysisAccuracyRequest) GetCattleParentCategoryId() CattleCategoryParent_Kind {	if x != nil {		return x.CattleParentCategoryId	}	return CattleCategoryParent_INVALID}func (x *SearchAnalysisAccuracyRequest) GetFeedFormulaId() int32 {	if x != nil {		return x.FeedFormulaId	}	return 0}func (x *SearchAnalysisAccuracyRequest) GetStartDate() string {	if x != nil {		return x.StartDate	}	return ""}func (x *SearchAnalysisAccuracyRequest) GetEndDate() string {	if x != nil {		return x.EndDate	}	return ""}func (x *SearchAnalysisAccuracyRequest) GetPastureIds() []int32 {	if x != nil {		return x.PastureIds	}	return nil}type SearchAnalysisAccuracyResponse struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	Code int32             `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`	Msg  string            `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`	Data *AnalysisAccuracy `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`}func (x *SearchAnalysisAccuracyResponse) Reset() {	*x = SearchAnalysisAccuracyResponse{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_statistic_proto_msgTypes[5]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *SearchAnalysisAccuracyResponse) String() string {	return protoimpl.X.MessageStringOf(x)}func (*SearchAnalysisAccuracyResponse) ProtoMessage() {}func (x *SearchAnalysisAccuracyResponse) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_statistic_proto_msgTypes[5]	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 SearchAnalysisAccuracyResponse.ProtoReflect.Descriptor instead.func (*SearchAnalysisAccuracyResponse) Descriptor() ([]byte, []int) {	return file_backend_operation_statistic_proto_rawDescGZIP(), []int{5}}func (x *SearchAnalysisAccuracyResponse) GetCode() int32 {	if x != nil {		return x.Code	}	return 0}func (x *SearchAnalysisAccuracyResponse) GetMsg() string {	if x != nil {		return x.Msg	}	return ""}func (x *SearchAnalysisAccuracyResponse) GetData() *AnalysisAccuracy {	if x != nil {		return x.Data	}	return nil}type AnalysisAccuracy struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	Chart *Chart `protobuf:"bytes,1,opt,name=chart,proto3" json:"chart,omitempty"`	Table *Table `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"`}func (x *AnalysisAccuracy) Reset() {	*x = AnalysisAccuracy{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_statistic_proto_msgTypes[6]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *AnalysisAccuracy) String() string {	return protoimpl.X.MessageStringOf(x)}func (*AnalysisAccuracy) ProtoMessage() {}func (x *AnalysisAccuracy) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_statistic_proto_msgTypes[6]	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 AnalysisAccuracy.ProtoReflect.Descriptor instead.func (*AnalysisAccuracy) Descriptor() ([]byte, []int) {	return file_backend_operation_statistic_proto_rawDescGZIP(), []int{6}}func (x *AnalysisAccuracy) GetChart() *Chart {	if x != nil {		return x.Chart	}	return nil}func (x *AnalysisAccuracy) GetTable() *Table {	if x != nil {		return x.Table	}	return nil}type Chart struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	MixedFodderAccurateRatio    *CommonValueRatio `protobuf:"bytes,4,opt,name=mixed_fodder_accurate_ratio,json=mixedFodderAccurateRatio,proto3" json:"mixed_fodder_accurate_ratio,omitempty"`          // 混料准确率	MixedFodderCorrectRatio     *CommonValueRatio `protobuf:"bytes,5,opt,name=mixed_fodder_correct_ratio,json=mixedFodderCorrectRatio,proto3" json:"mixed_fodder_correct_ratio,omitempty"`             // 混料正确率	SprinkleFodderAccurateRatio *CommonValueRatio `protobuf:"bytes,6,opt,name=sprinkle_fodder_accurate_ratio,json=sprinkleFodderAccurateRatio,proto3" json:"sprinkle_fodder_accurate_ratio,omitempty"` // 撒料准确率	SprinkleFodderCorrectRatio  *CommonValueRatio `protobuf:"bytes,7,opt,name=sprinkle_fodder_correct_ratio,json=sprinkleFodderCorrectRatio,proto3" json:"sprinkle_fodder_correct_ratio,omitempty"`    // 撒料正确率}func (x *Chart) Reset() {	*x = Chart{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_statistic_proto_msgTypes[7]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *Chart) String() string {	return protoimpl.X.MessageStringOf(x)}func (*Chart) ProtoMessage() {}func (x *Chart) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_statistic_proto_msgTypes[7]	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 Chart.ProtoReflect.Descriptor instead.func (*Chart) Descriptor() ([]byte, []int) {	return file_backend_operation_statistic_proto_rawDescGZIP(), []int{7}}func (x *Chart) GetMixedFodderAccurateRatio() *CommonValueRatio {	if x != nil {		return x.MixedFodderAccurateRatio	}	return nil}func (x *Chart) GetMixedFodderCorrectRatio() *CommonValueRatio {	if x != nil {		return x.MixedFodderCorrectRatio	}	return nil}func (x *Chart) GetSprinkleFodderAccurateRatio() *CommonValueRatio {	if x != nil {		return x.SprinkleFodderAccurateRatio	}	return nil}func (x *Chart) GetSprinkleFodderCorrectRatio() *CommonValueRatio {	if x != nil {		return x.SprinkleFodderCorrectRatio	}	return nil}type Table struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	TableList []*Table_TableList `protobuf:"bytes,1,rep,name=table_list,json=tableList,proto3" json:"table_list,omitempty"`}func (x *Table) Reset() {	*x = Table{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_statistic_proto_msgTypes[8]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *Table) String() string {	return protoimpl.X.MessageStringOf(x)}func (*Table) ProtoMessage() {}func (x *Table) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_statistic_proto_msgTypes[8]	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 Table.ProtoReflect.Descriptor instead.func (*Table) Descriptor() ([]byte, []int) {	return file_backend_operation_statistic_proto_rawDescGZIP(), []int{8}}func (x *Table) GetTableList() []*Table_TableList {	if x != nil {		return x.TableList	}	return nil}type CommonValueRatio struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	MaxValue    string        `protobuf:"bytes,1,opt,name=max_value,json=maxValue,proto3" json:"max_value,omitempty"`          // 最高值	MiddleValue string        `protobuf:"bytes,2,opt,name=middle_value,json=middleValue,proto3" json:"middle_value,omitempty"` // 中位值	MinValue    string        `protobuf:"bytes,3,opt,name=min_value,json=minValue,proto3" json:"min_value,omitempty"`          // 最低值	DataList    []*ValueRatio `protobuf:"bytes,4,rep,name=data_list,json=dataList,proto3" json:"data_list,omitempty"`          // 数据集合	PastureName []string      `protobuf:"bytes,5,rep,name=pasture_name,json=pastureName,proto3" json:"pasture_name,omitempty"` // 牧场名称集合	DateDay     []string      `protobuf:"bytes,6,rep,name=date_day,json=dateDay,proto3" json:"date_day,omitempty"`             // 日期集合}func (x *CommonValueRatio) Reset() {	*x = CommonValueRatio{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_statistic_proto_msgTypes[9]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *CommonValueRatio) String() string {	return protoimpl.X.MessageStringOf(x)}func (*CommonValueRatio) ProtoMessage() {}func (x *CommonValueRatio) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_statistic_proto_msgTypes[9]	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 CommonValueRatio.ProtoReflect.Descriptor instead.func (*CommonValueRatio) Descriptor() ([]byte, []int) {	return file_backend_operation_statistic_proto_rawDescGZIP(), []int{9}}func (x *CommonValueRatio) GetMaxValue() string {	if x != nil {		return x.MaxValue	}	return ""}func (x *CommonValueRatio) GetMiddleValue() string {	if x != nil {		return x.MiddleValue	}	return ""}func (x *CommonValueRatio) GetMinValue() string {	if x != nil {		return x.MinValue	}	return ""}func (x *CommonValueRatio) GetDataList() []*ValueRatio {	if x != nil {		return x.DataList	}	return nil}func (x *CommonValueRatio) GetPastureName() []string {	if x != nil {		return x.PastureName	}	return nil}func (x *CommonValueRatio) GetDateDay() []string {	if x != nil {		return x.DateDay	}	return nil}type ValueRatio struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	ValueRatio []string `protobuf:"bytes,1,rep,name=value_ratio,json=valueRatio,proto3" json:"value_ratio,omitempty"`}func (x *ValueRatio) Reset() {	*x = ValueRatio{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_statistic_proto_msgTypes[10]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *ValueRatio) String() string {	return protoimpl.X.MessageStringOf(x)}func (*ValueRatio) ProtoMessage() {}func (x *ValueRatio) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_statistic_proto_msgTypes[10]	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 ValueRatio.ProtoReflect.Descriptor instead.func (*ValueRatio) Descriptor() ([]byte, []int) {	return file_backend_operation_statistic_proto_rawDescGZIP(), []int{10}}func (x *ValueRatio) GetValueRatio() []string {	if x != nil {		return x.ValueRatio	}	return nil}type Table_TableList struct {	state         protoimpl.MessageState	sizeCache     protoimpl.SizeCache	unknownFields protoimpl.UnknownFields	Id   int32  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`}func (x *Table_TableList) Reset() {	*x = Table_TableList{}	if protoimpl.UnsafeEnabled {		mi := &file_backend_operation_statistic_proto_msgTypes[11]		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))		ms.StoreMessageInfo(mi)	}}func (x *Table_TableList) String() string {	return protoimpl.X.MessageStringOf(x)}func (*Table_TableList) ProtoMessage() {}func (x *Table_TableList) ProtoReflect() protoreflect.Message {	mi := &file_backend_operation_statistic_proto_msgTypes[11]	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 Table_TableList.ProtoReflect.Descriptor instead.func (*Table_TableList) Descriptor() ([]byte, []int) {	return file_backend_operation_statistic_proto_rawDescGZIP(), []int{8, 0}}func (x *Table_TableList) GetId() int32 {	if x != nil {		return x.Id	}	return 0}func (x *Table_TableList) GetName() string {	if x != nil {		return x.Name	}	return ""}var File_backend_operation_statistic_proto protoreflect.FileDescriptorvar file_backend_operation_statistic_proto_rawDesc = []byte{	0x0a, 0x21, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,	0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x70, 0x72,	0x6f, 0x74, 0x6f, 0x12, 0x11, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65,	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x22, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2f,	0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61,	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x62, 0x61, 0x63, 0x6b,	0x65, 0x6e, 0x64, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x65, 0x6e,	0x75, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x94, 0x11, 0x0a, 0x19, 0x41, 0x64, 0x64,	0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x52,	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,	0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72,	0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x73, 0x74,	0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65,	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x73,	0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x62, 0x61, 0x72, 0x6e,	0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x62, 0x61, 0x72, 0x6e, 0x49,	0x64, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x65, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c,	0x61, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x64,	0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x65, 0x65,	0x64, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06,	0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c,	0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x77, 0x5f, 0x6e, 0x75, 0x6d,	0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6f, 0x77, 0x4e, 0x75,	0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x72, 0x79, 0x5f, 0x66, 0x6f, 0x72, 0x6d,	0x75, 0x6c, 0x61, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05,	0x52, 0x10, 0x64, 0x72, 0x79, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x4e, 0x75, 0x6d, 0x62,	0x65, 0x72, 0x12, 0x20, 0x0a, 0x0c, 0x64, 0x72, 0x79, 0x5f, 0x74, 0x6d, 0x72, 0x5f, 0x66, 0x65,	0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, 0x72, 0x79, 0x54, 0x6d, 0x72,	0x46, 0x65, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x72, 0x79, 0x5f, 0x66, 0x6f, 0x6f, 0x64,	0x5f, 0x69, 0x6e, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x64,	0x72, 0x79, 0x46, 0x6f, 0x6f, 0x64, 0x49, 0x6e, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x2a, 0x0a, 0x11,	0x6d, 0x6a, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65,	0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6d, 0x6a, 0x46, 0x6f, 0x72, 0x6d, 0x75,	0x6c, 0x61, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0b, 0x6d, 0x6a, 0x5f, 0x74,	0x6d, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d,	0x6a, 0x54, 0x6d, 0x72, 0x46, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x6a, 0x5f, 0x66,	0x6f, 0x6f, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05,	0x52, 0x0c, 0x6d, 0x6a, 0x46, 0x6f, 0x6f, 0x64, 0x49, 0x6e, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x2c,	0x0a, 0x12, 0x6e, 0x6e, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x6e, 0x75,	0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x6e, 0x64, 0x46,	0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0c,	0x6e, 0x6e, 0x64, 0x5f, 0x74, 0x6d, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01,	0x28, 0x05, 0x52, 0x0a, 0x6e, 0x6e, 0x64, 0x54, 0x6d, 0x72, 0x46, 0x65, 0x65, 0x64, 0x12, 0x26,	0x0a, 0x0f, 0x6e, 0x6e, 0x64, 0x5f, 0x66, 0x6f, 0x6f, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x61, 0x6b,	0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6e, 0x6e, 0x64, 0x46, 0x6f, 0x6f, 0x64,	0x49, 0x6e, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x70, 0x67, 0x5f, 0x66, 0x6f,	0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01,	0x28, 0x05, 0x52, 0x10, 0x63, 0x70, 0x67, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x4e, 0x75,	0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0c, 0x63, 0x70, 0x67, 0x5f, 0x74, 0x6d, 0x72, 0x5f,	0x66, 0x65, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x70, 0x67, 0x54,	0x6d, 0x72, 0x46, 0x65, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x70, 0x67, 0x5f, 0x66, 0x6f,	0x6f, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52,	0x0d, 0x63, 0x70, 0x67, 0x46, 0x6f, 0x6f, 0x64, 0x49, 0x6e, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x2a,	0x0a, 0x11, 0x70, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x6e, 0x75, 0x6d,	0x62, 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x70, 0x67, 0x46, 0x6f, 0x72,	0x6d, 0x75, 0x6c, 0x61, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x67,	0x5f, 0x74, 0x6d, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52,	0x09, 0x70, 0x67, 0x54, 0x6d, 0x72, 0x46, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x67,	0x5f, 0x66, 0x6f, 0x6f, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x16, 0x20, 0x01,	0x28, 0x05, 0x52, 0x0c, 0x70, 0x67, 0x46, 0x6f, 0x6f, 0x64, 0x49, 0x6e, 0x74, 0x61, 0x6b, 0x65,	0x12, 0x2a, 0x0a, 0x11, 0x64, 0x6d, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x6e,	0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x64, 0x6d, 0x46,	0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0b,	0x64, 0x6d, 0x5f, 0x74, 0x6d, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28,	0x05, 0x52, 0x09, 0x64, 0x6d, 0x54, 0x6d, 0x72, 0x46, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0e,	0x64, 0x6d, 0x5f, 0x66, 0x6f, 0x6f, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x19,	0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, 0x6d, 0x46, 0x6f, 0x6f, 0x64, 0x49, 0x6e, 0x74, 0x61,	0x6b, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x70, 0x64, 0x6d, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75,	0x6c, 0x61, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52,	0x11, 0x63, 0x70, 0x64, 0x6d, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x4e, 0x75, 0x6d, 0x62,	0x65, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x70, 0x64, 0x6d, 0x5f, 0x74, 0x6d, 0x72, 0x5f, 0x66,	0x65, 0x65, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x70, 0x64, 0x6d, 0x54,	0x6d, 0x72, 0x46, 0x65, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x70, 0x64, 0x6d, 0x5f, 0x66,	0x6f, 0x6f, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05,	0x52, 0x0e, 0x63, 0x70, 0x64, 0x6d, 0x46, 0x6f, 0x6f, 0x64, 0x49, 0x6e, 0x74, 0x61, 0x6b, 0x65,	0x12, 0x2c, 0x0a, 0x12, 0x66, 0x61, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f,	0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x66, 0x61,	0x74, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20,	0x0a, 0x0c, 0x66, 0x61, 0x74, 0x5f, 0x74, 0x6d, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x18, 0x1e,	0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x61, 0x74, 0x54, 0x6d, 0x72, 0x46, 0x65, 0x65, 0x64,	0x12, 0x26, 0x0a, 0x0f, 0x66, 0x61, 0x74, 0x5f, 0x66, 0x6f, 0x6f, 0x64, 0x5f, 0x69, 0x6e, 0x74,	0x61, 0x6b, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x66, 0x61, 0x74, 0x46, 0x6f,	0x6f, 0x64, 0x49, 0x6e, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x74, 0x61, 0x72,	0x63, 0x68, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65,	0x72, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x73, 0x74, 0x61, 0x72, 0x63, 0x68, 0x46,	0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0f,	0x73, 0x74, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x74, 0x6d, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x18,	0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x63, 0x68, 0x54, 0x6d, 0x72,	0x46, 0x65, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x66,	0x6f, 0x6f, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x05,	0x52, 0x10, 0x73, 0x74, 0x61, 0x72, 0x63, 0x68, 0x46, 0x6f, 0x6f, 0x64, 0x49, 0x6e, 0x74, 0x61,	0x6b, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x64, 0x66, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c,	0x61, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x23, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10,	0x6e, 0x64, 0x66, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72,	0x12, 0x20, 0x0a, 0x0c, 0x6e, 0x64, 0x66, 0x5f, 0x74, 0x6d, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x64,	0x18, 0x24, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e, 0x64, 0x66, 0x54, 0x6d, 0x72, 0x46, 0x65,	0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x64, 0x66, 0x5f, 0x66, 0x6f, 0x6f, 0x64, 0x5f, 0x69,	0x6e, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6e, 0x64, 0x66,	0x46, 0x6f, 0x6f, 0x64, 0x49, 0x6e, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x63, 0x70,	0x5f, 0x6e, 0x64, 0x66, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x6e, 0x75, 0x6d,	0x62, 0x65, 0x72, 0x18, 0x26, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x63, 0x70, 0x4e, 0x64, 0x66,	0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x25, 0x0a,	0x0f, 0x63, 0x70, 0x5f, 0x6e, 0x64, 0x66, 0x5f, 0x74, 0x6d, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x64,	0x18, 0x27, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x70, 0x4e, 0x64, 0x66, 0x54, 0x6d, 0x72,	0x46, 0x65, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x63, 0x70, 0x5f, 0x6e, 0x64, 0x66, 0x5f, 0x66,	0x6f, 0x6f, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05,	0x52, 0x0f, 0x63, 0x70, 0x4e, 0x64, 0x66, 0x46, 0x6f, 0x6f, 0x64, 0x49, 0x6e, 0x74, 0x61, 0x6b,	0x65, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x64, 0x66, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61,	0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x29, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x61,	0x64, 0x66, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12,	0x20, 0x0a, 0x0c, 0x61, 0x64, 0x66, 0x5f, 0x74, 0x6d, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x18,	0x2a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x64, 0x66, 0x54, 0x6d, 0x72, 0x46, 0x65, 0x65,	0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x64, 0x66, 0x5f, 0x66, 0x6f, 0x6f, 0x64, 0x5f, 0x69, 0x6e,	0x74, 0x61, 0x6b, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x64, 0x66, 0x46,	0x6f, 0x6f, 0x64, 0x49, 0x6e, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x61, 0x6c,	0x63, 0x69, 0x75, 0x6d, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x6e, 0x75, 0x6d,	0x62, 0x65, 0x72, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x63, 0x61, 0x6c, 0x63, 0x69,	0x75, 0x6d, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12,	0x28, 0x0a, 0x10, 0x63, 0x61, 0x6c, 0x63, 0x69, 0x75, 0x6d, 0x5f, 0x74, 0x6d, 0x72, 0x5f, 0x66,	0x65, 0x65, 0x64, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x61, 0x6c, 0x63, 0x69,	0x75, 0x6d, 0x54, 0x6d, 0x72, 0x46, 0x65, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x61, 0x6c,	0x63, 0x69, 0x75, 0x6d, 0x5f, 0x66, 0x6f, 0x6f, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x61, 0x6b, 0x65,	0x18, 0x2e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x63, 0x61, 0x6c, 0x63, 0x69, 0x75, 0x6d, 0x46,	0x6f, 0x6f, 0x64, 0x49, 0x6e, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x64, 0x6d,	0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18,	0x2f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x70, 0x64, 0x6d, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c,	0x61, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x64, 0x6d, 0x5f, 0x74,	0x6d, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x18, 0x30, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70,	0x64, 0x6d, 0x54, 0x6d, 0x72, 0x46, 0x65, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x64, 0x6d,	0x5f, 0x66, 0x6f, 0x6f, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x31, 0x20, 0x01,	0x28, 0x05, 0x52, 0x0d, 0x70, 0x64, 0x6d, 0x46, 0x6f, 0x6f, 0x64, 0x49, 0x6e, 0x74, 0x61, 0x6b,	0x65, 0x12, 0x35, 0x0a, 0x17, 0x63, 0x66, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x5f, 0x66, 0x6f,	0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x32, 0x20, 0x01,	0x28, 0x05, 0x52, 0x14, 0x63, 0x66, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x46, 0x6f, 0x72, 0x6d, 0x75,	0x6c, 0x61, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x11, 0x63, 0x66, 0x5f, 0x72,	0x61, 0x74, 0x69, 0x6f, 0x5f, 0x74, 0x6d, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x18, 0x33, 0x20,	0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x66, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x54, 0x6d, 0x72, 0x46,	0x65, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x14, 0x63, 0x66, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x5f,	0x66, 0x6f, 0x6f, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x34, 0x20, 0x01, 0x28,	0x05, 0x52, 0x11, 0x63, 0x66, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x46, 0x6f, 0x6f, 0x64, 0x49, 0x6e,	0x74, 0x61, 0x6b, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f,	0x61, 0x74, 0x18, 0x35, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,	0x64, 0x41, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61,	0x74, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x36, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f,	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22,	0xd1, 0x01, 0x0a, 0x1c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c,	0x61, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,	0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01,	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12,	0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,	0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65,	0x61, 0x72, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,	0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e,	0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,	0x42, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20,	0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70,	0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69,	0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74,	0x69, 0x6f, 0x6e, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x6f,	0x72, 0x6d, 0x75, 0x6c, 0x61, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73,	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,	0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67,	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3c, 0x0a, 0x04, 0x64,	0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x61, 0x63, 0x6b,	0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65,	0x61, 0x72, 0x63, 0x68, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x45, 0x73, 0x74, 0x69, 0x6d,	0x61, 0x74, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa0, 0x01, 0x0a, 0x15, 0x53, 0x65,	0x61, 0x72, 0x63, 0x68, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x45, 0x73, 0x74, 0x69, 0x6d,	0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,	0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c,	0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1b, 0x0a,	0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,	0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x6c, 0x69,	0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65,	0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x64,	0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x52,	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x8b, 0x02, 0x0a,	0x1d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x41,	0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x67,	0x0a, 0x19, 0x63, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f,	0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,	0x0e, 0x32, 0x2c, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72,	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x61, 0x74, 0x65,	0x67, 0x6f, 0x72, 0x79, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52,	0x16, 0x63, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x74,	0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x65, 0x65, 0x64, 0x5f,	0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,	0x52, 0x0d, 0x66, 0x65, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x49, 0x64, 0x12,	0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20,	0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x19,	0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,	0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x73,	0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a,	0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x73, 0x22, 0x7f, 0x0a, 0x1e, 0x53, 0x65,	0x61, 0x72, 0x63, 0x68, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x41, 0x63, 0x63, 0x75,	0x72, 0x61, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04,	0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65,	0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d,	0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,	0x32, 0x23, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61,	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x41, 0x63, 0x63,	0x75, 0x72, 0x61, 0x63, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x72, 0x0a, 0x10, 0x41,	0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x41, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x12,	0x2e, 0x0a, 0x05, 0x63, 0x68, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,	0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,	0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x74, 0x52, 0x05, 0x63, 0x68, 0x61, 0x72, 0x74, 0x12,	0x2e, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,	0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,	0x6f, 0x6e, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x22,	0x9f, 0x03, 0x0a, 0x05, 0x43, 0x68, 0x61, 0x72, 0x74, 0x12, 0x62, 0x0a, 0x1b, 0x6d, 0x69, 0x78,	0x65, 0x64, 0x5f, 0x66, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61,	0x74, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23,	0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,	0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61,	0x74, 0x69, 0x6f, 0x52, 0x18, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x64, 0x64, 0x65, 0x72,	0x41, 0x63, 0x63, 0x75, 0x72, 0x61, 0x74, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x60, 0x0a,	0x1a, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6f,	0x72, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28,	0x0b, 0x32, 0x23, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72,	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75,	0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x17, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x46, 0x6f, 0x64,	0x64, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12,	0x68, 0x0a, 0x1e, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x5f, 0x66, 0x6f, 0x64, 0x64,	0x65, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69,	0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e,	0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,	0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x1b, 0x73, 0x70,	0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x46, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x41, 0x63, 0x63, 0x75,	0x72, 0x61, 0x74, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x66, 0x0a, 0x1d, 0x73, 0x70, 0x72,	0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x5f, 0x66, 0x6f, 0x64, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x72,	0x72, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,	0x32, 0x23, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61,	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65,	0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x1a, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x6b, 0x6c, 0x65, 0x46,	0x6f, 0x64, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x74, 0x69,	0x6f, 0x22, 0x7b, 0x0a, 0x05, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x74, 0x61,	0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22,	0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,	0x6f, 0x6e, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69,	0x73, 0x74, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x2f, 0x0a,	0x09, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,	0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe9,	0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61,	0x74, 0x69, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65,	0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x56, 0x61,	0x6c, 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65,	0x12, 0x3a, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20,	0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x6f, 0x70,	0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x74,	0x69, 0x6f, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c,	0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x03,	0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x73, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12,	0x19, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x79, 0x18, 0x06, 0x20, 0x03, 0x28,	0x09, 0x52, 0x07, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x79, 0x22, 0x2d, 0x0a, 0x0a, 0x56, 0x61,	0x6c, 0x75, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x61, 0x6c, 0x75,	0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x76,	0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x3b, 0x6f,	0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,	0x6f, 0x33,}var (	file_backend_operation_statistic_proto_rawDescOnce sync.Once	file_backend_operation_statistic_proto_rawDescData = file_backend_operation_statistic_proto_rawDesc)func file_backend_operation_statistic_proto_rawDescGZIP() []byte {	file_backend_operation_statistic_proto_rawDescOnce.Do(func() {		file_backend_operation_statistic_proto_rawDescData = protoimpl.X.CompressGZIP(file_backend_operation_statistic_proto_rawDescData)	})	return file_backend_operation_statistic_proto_rawDescData}var file_backend_operation_statistic_proto_msgTypes = make([]protoimpl.MessageInfo, 12)var file_backend_operation_statistic_proto_goTypes = []interface{}{	(*AddFormulaEstimateRequest)(nil),      // 0: backend.operation.AddFormulaEstimateRequest	(*SearchFormulaEstimateRequest)(nil),   // 1: backend.operation.SearchFormulaEstimateRequest	(*SearchFormulaEstimateResponse)(nil),  // 2: backend.operation.SearchFormulaEstimateResponse	(*SearchFormulaEstimate)(nil),          // 3: backend.operation.SearchFormulaEstimate	(*SearchAnalysisAccuracyRequest)(nil),  // 4: backend.operation.SearchAnalysisAccuracyRequest	(*SearchAnalysisAccuracyResponse)(nil), // 5: backend.operation.SearchAnalysisAccuracyResponse	(*AnalysisAccuracy)(nil),               // 6: backend.operation.AnalysisAccuracy	(*Chart)(nil),                          // 7: backend.operation.Chart	(*Table)(nil),                          // 8: backend.operation.Table	(*CommonValueRatio)(nil),               // 9: backend.operation.CommonValueRatio	(*ValueRatio)(nil),                     // 10: backend.operation.ValueRatio	(*Table_TableList)(nil),                // 11: backend.operation.Table.TableList	(*PaginationModel)(nil),                // 12: backend.operation.PaginationModel	(CattleCategoryParent_Kind)(0),         // 13: backend.operation.CattleCategoryParent.Kind}var file_backend_operation_statistic_proto_depIdxs = []int32{	12, // 0: backend.operation.SearchFormulaEstimateRequest.pagination:type_name -> backend.operation.PaginationModel	3,  // 1: backend.operation.SearchFormulaEstimateResponse.data:type_name -> backend.operation.SearchFormulaEstimate	0,  // 2: backend.operation.SearchFormulaEstimate.list:type_name -> backend.operation.AddFormulaEstimateRequest	13, // 3: backend.operation.SearchAnalysisAccuracyRequest.cattle_parent_category_id:type_name -> backend.operation.CattleCategoryParent.Kind	6,  // 4: backend.operation.SearchAnalysisAccuracyResponse.data:type_name -> backend.operation.AnalysisAccuracy	7,  // 5: backend.operation.AnalysisAccuracy.chart:type_name -> backend.operation.Chart	8,  // 6: backend.operation.AnalysisAccuracy.table:type_name -> backend.operation.Table	9,  // 7: backend.operation.Chart.mixed_fodder_accurate_ratio:type_name -> backend.operation.CommonValueRatio	9,  // 8: backend.operation.Chart.mixed_fodder_correct_ratio:type_name -> backend.operation.CommonValueRatio	9,  // 9: backend.operation.Chart.sprinkle_fodder_accurate_ratio:type_name -> backend.operation.CommonValueRatio	9,  // 10: backend.operation.Chart.sprinkle_fodder_correct_ratio:type_name -> backend.operation.CommonValueRatio	11, // 11: backend.operation.Table.table_list:type_name -> backend.operation.Table.TableList	10, // 12: backend.operation.CommonValueRatio.data_list:type_name -> backend.operation.ValueRatio	13, // [13:13] is the sub-list for method output_type	13, // [13:13] is the sub-list for method input_type	13, // [13:13] is the sub-list for extension type_name	13, // [13:13] is the sub-list for extension extendee	0,  // [0:13] is the sub-list for field type_name}func init() { file_backend_operation_statistic_proto_init() }func file_backend_operation_statistic_proto_init() {	if File_backend_operation_statistic_proto != nil {		return	}	file_backend_operation_pagination_proto_init()	file_backend_operation_enum_proto_init()	if !protoimpl.UnsafeEnabled {		file_backend_operation_statistic_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*AddFormulaEstimateRequest); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_statistic_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*SearchFormulaEstimateRequest); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_statistic_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*SearchFormulaEstimateResponse); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_statistic_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*SearchFormulaEstimate); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_statistic_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*SearchAnalysisAccuracyRequest); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_statistic_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*SearchAnalysisAccuracyResponse); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_statistic_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*AnalysisAccuracy); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_statistic_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*Chart); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_statistic_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*Table); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_statistic_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*CommonValueRatio); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_statistic_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*ValueRatio); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}		file_backend_operation_statistic_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {			switch v := v.(*Table_TableList); i {			case 0:				return &v.state			case 1:				return &v.sizeCache			case 2:				return &v.unknownFields			default:				return nil			}		}	}	type x struct{}	out := protoimpl.TypeBuilder{		File: protoimpl.DescBuilder{			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),			RawDescriptor: file_backend_operation_statistic_proto_rawDesc,			NumEnums:      0,			NumMessages:   12,			NumExtensions: 0,			NumServices:   0,		},		GoTypes:           file_backend_operation_statistic_proto_goTypes,		DependencyIndexes: file_backend_operation_statistic_proto_depIdxs,		MessageInfos:      file_backend_operation_statistic_proto_msgTypes,	}.Build()	File_backend_operation_statistic_proto = out.File	file_backend_operation_statistic_proto_rawDesc = nil	file_backend_operation_statistic_proto_goTypes = nil	file_backend_operation_statistic_proto_depIdxs = nil}
 |