// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: report.proto

/*
	Package telemetry is a generated protocol buffer package.

	It is generated from these files:
		report.proto

	It has these top-level messages:
		Report
		ClusterReport
		NodeInfo
		CPUInfo
		HardwareInfo
		OSInfo
		MemInfo
*/
package telemetry

import (
	"fmt"

	proto "github.com/golang/protobuf/proto"

	math "math"

	encoding_binary "encoding/binary"

	io "io"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package

type Report struct {
	EventUUID          string `protobuf:"bytes,1,opt,name=eventUUID,proto3" json:"eventUUID,omitempty"`
	EventUnixTimestamp int64  `protobuf:"varint,2,opt,name=event_unix_timestamp,json=eventUnixTimestamp,proto3" json:"event_unix_timestamp,omitempty"`
	// Types that are valid to be assigned to EventDetail:
	//	*Report_Cluster
	EventDetail isReport_EventDetail `protobuf_oneof:"event_detail"`
}

func (m *Report) Reset()                    { *m = Report{} }
func (m *Report) String() string            { return proto.CompactTextString(m) }
func (*Report) ProtoMessage()               {}
func (*Report) Descriptor() ([]byte, []int) { return fileDescriptorReport, []int{0} }

type isReport_EventDetail interface {
	isReport_EventDetail()
	MarshalTo([]byte) (int, error)
	Size() int
}

type Report_Cluster struct {
	Cluster *ClusterReport `protobuf:"bytes,3,opt,name=cluster,oneof"`
}

func (*Report_Cluster) isReport_EventDetail() {}

func (m *Report) GetEventDetail() isReport_EventDetail {
	if m != nil {
		return m.EventDetail
	}
	return nil
}

func (m *Report) GetEventUUID() string {
	if m != nil {
		return m.EventUUID
	}
	return ""
}

func (m *Report) GetEventUnixTimestamp() int64 {
	if m != nil {
		return m.EventUnixTimestamp
	}
	return 0
}

func (m *Report) GetCluster() *ClusterReport {
	if x, ok := m.GetEventDetail().(*Report_Cluster); ok {
		return x.Cluster
	}
	return nil
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*Report) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _Report_OneofMarshaler, _Report_OneofUnmarshaler, _Report_OneofSizer, []interface{}{
		(*Report_Cluster)(nil),
	}
}

func _Report_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*Report)
	// event_detail
	switch x := m.EventDetail.(type) {
	case *Report_Cluster:
		_ = b.EncodeVarint(3<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.Cluster); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("Report.EventDetail has unexpected type %T", x)
	}
	return nil
}

func _Report_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*Report)
	switch tag {
	case 3: // event_detail.cluster
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(ClusterReport)
		err := b.DecodeMessage(msg)
		m.EventDetail = &Report_Cluster{msg}
		return true, err
	default:
		return false, nil
	}
}

func _Report_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*Report)
	// event_detail
	switch x := m.EventDetail.(type) {
	case *Report_Cluster:
		s := proto.Size(x.Cluster)
		n += proto.SizeVarint(3<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

type ClusterReport struct {
	UUID             string `protobuf:"bytes,1,opt,name=UUID,proto3" json:"UUID,omitempty"`
	Command          string `protobuf:"bytes,2,opt,name=command,proto3" json:"command,omitempty"`
	TakeMilliseconds uint64 `protobuf:"varint,3,opt,name=take_milliseconds,json=takeMilliseconds,proto3" json:"take_milliseconds,omitempty"`
	ExitCode         int32  `protobuf:"varint,4,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"`
	// only deploy and scale-out is setted:
	Topology string      `protobuf:"bytes,5,opt,name=topology,proto3" json:"topology,omitempty"`
	Nodes    []*NodeInfo `protobuf:"bytes,6,rep,name=nodes" json:"nodes,omitempty"`
}

func (m *ClusterReport) Reset()                    { *m = ClusterReport{} }
func (m *ClusterReport) String() string            { return proto.CompactTextString(m) }
func (*ClusterReport) ProtoMessage()               {}
func (*ClusterReport) Descriptor() ([]byte, []int) { return fileDescriptorReport, []int{1} }

func (m *ClusterReport) GetUUID() string {
	if m != nil {
		return m.UUID
	}
	return ""
}

func (m *ClusterReport) GetCommand() string {
	if m != nil {
		return m.Command
	}
	return ""
}

func (m *ClusterReport) GetTakeMilliseconds() uint64 {
	if m != nil {
		return m.TakeMilliseconds
	}
	return 0
}

func (m *ClusterReport) GetExitCode() int32 {
	if m != nil {
		return m.ExitCode
	}
	return 0
}

func (m *ClusterReport) GetTopology() string {
	if m != nil {
		return m.Topology
	}
	return ""
}

func (m *ClusterReport) GetNodes() []*NodeInfo {
	if m != nil {
		return m.Nodes
	}
	return nil
}

type NodeInfo struct {
	NodeId   string       `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
	Hardware HardwareInfo `protobuf:"bytes,6,opt,name=hardware" json:"hardware"`
	Os       OSInfo       `protobuf:"bytes,7,opt,name=os" json:"os"`
}

func (m *NodeInfo) Reset()                    { *m = NodeInfo{} }
func (m *NodeInfo) String() string            { return proto.CompactTextString(m) }
func (*NodeInfo) ProtoMessage()               {}
func (*NodeInfo) Descriptor() ([]byte, []int) { return fileDescriptorReport, []int{2} }

func (m *NodeInfo) GetNodeId() string {
	if m != nil {
		return m.NodeId
	}
	return ""
}

func (m *NodeInfo) GetHardware() HardwareInfo {
	if m != nil {
		return m.Hardware
	}
	return HardwareInfo{}
}

func (m *NodeInfo) GetOs() OSInfo {
	if m != nil {
		return m.Os
	}
	return OSInfo{}
}

type CPUInfo struct {
	Numcpu   int32    `protobuf:"varint,1,opt,name=numcpu,proto3" json:"numcpu,omitempty"`
	Sockets  int32    `protobuf:"varint,2,opt,name=sockets,proto3" json:"sockets,omitempty"`
	Cores    int32    `protobuf:"varint,3,opt,name=cores,proto3" json:"cores,omitempty"`
	Model    string   `protobuf:"bytes,4,opt,name=model,proto3" json:"model,omitempty"`
	Mhz      float32  `protobuf:"fixed32,5,opt,name=mhz,proto3" json:"mhz,omitempty"`
	Features []string `protobuf:"bytes,6,rep,name=features" json:"features,omitempty"`
}

func (m *CPUInfo) Reset()                    { *m = CPUInfo{} }
func (m *CPUInfo) String() string            { return proto.CompactTextString(m) }
func (*CPUInfo) ProtoMessage()               {}
func (*CPUInfo) Descriptor() ([]byte, []int) { return fileDescriptorReport, []int{3} }

func (m *CPUInfo) GetNumcpu() int32 {
	if m != nil {
		return m.Numcpu
	}
	return 0
}

func (m *CPUInfo) GetSockets() int32 {
	if m != nil {
		return m.Sockets
	}
	return 0
}

func (m *CPUInfo) GetCores() int32 {
	if m != nil {
		return m.Cores
	}
	return 0
}

func (m *CPUInfo) GetModel() string {
	if m != nil {
		return m.Model
	}
	return ""
}

func (m *CPUInfo) GetMhz() float32 {
	if m != nil {
		return m.Mhz
	}
	return 0
}

func (m *CPUInfo) GetFeatures() []string {
	if m != nil {
		return m.Features
	}
	return nil
}

type HardwareInfo struct {
	Virtualization string  `protobuf:"bytes,1,opt,name=virtualization,proto3" json:"virtualization,omitempty"`
	Cpu            CPUInfo `protobuf:"bytes,2,opt,name=cpu" json:"cpu"`
	Mem            MemInfo `protobuf:"bytes,3,opt,name=mem" json:"mem"`
	Loadavg15      float32 `protobuf:"fixed32,4,opt,name=loadavg15,proto3" json:"loadavg15,omitempty"`
}

func (m *HardwareInfo) Reset()                    { *m = HardwareInfo{} }
func (m *HardwareInfo) String() string            { return proto.CompactTextString(m) }
func (*HardwareInfo) ProtoMessage()               {}
func (*HardwareInfo) Descriptor() ([]byte, []int) { return fileDescriptorReport, []int{4} }

func (m *HardwareInfo) GetVirtualization() string {
	if m != nil {
		return m.Virtualization
	}
	return ""
}

func (m *HardwareInfo) GetCpu() CPUInfo {
	if m != nil {
		return m.Cpu
	}
	return CPUInfo{}
}

func (m *HardwareInfo) GetMem() MemInfo {
	if m != nil {
		return m.Mem
	}
	return MemInfo{}
}

func (m *HardwareInfo) GetLoadavg15() float32 {
	if m != nil {
		return m.Loadavg15
	}
	return 0
}

type OSInfo struct {
	Family   string `protobuf:"bytes,1,opt,name=family,proto3" json:"family,omitempty"`
	Platform string `protobuf:"bytes,2,opt,name=platform,proto3" json:"platform,omitempty"`
	Version  string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
}

func (m *OSInfo) Reset()                    { *m = OSInfo{} }
func (m *OSInfo) String() string            { return proto.CompactTextString(m) }
func (*OSInfo) ProtoMessage()               {}
func (*OSInfo) Descriptor() ([]byte, []int) { return fileDescriptorReport, []int{5} }

func (m *OSInfo) GetFamily() string {
	if m != nil {
		return m.Family
	}
	return ""
}

func (m *OSInfo) GetPlatform() string {
	if m != nil {
		return m.Platform
	}
	return ""
}

func (m *OSInfo) GetVersion() string {
	if m != nil {
		return m.Version
	}
	return ""
}

type MemInfo struct {
	Total     uint64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
	Available uint64 `protobuf:"varint,2,opt,name=available,proto3" json:"available,omitempty"`
}

func (m *MemInfo) Reset()                    { *m = MemInfo{} }
func (m *MemInfo) String() string            { return proto.CompactTextString(m) }
func (*MemInfo) ProtoMessage()               {}
func (*MemInfo) Descriptor() ([]byte, []int) { return fileDescriptorReport, []int{6} }

func (m *MemInfo) GetTotal() uint64 {
	if m != nil {
		return m.Total
	}
	return 0
}

func (m *MemInfo) GetAvailable() uint64 {
	if m != nil {
		return m.Available
	}
	return 0
}

func init() {
	proto.RegisterType((*Report)(nil), "telemetry.Report")
	proto.RegisterType((*ClusterReport)(nil), "telemetry.ClusterReport")
	proto.RegisterType((*NodeInfo)(nil), "telemetry.NodeInfo")
	proto.RegisterType((*CPUInfo)(nil), "telemetry.CPUInfo")
	proto.RegisterType((*HardwareInfo)(nil), "telemetry.HardwareInfo")
	proto.RegisterType((*OSInfo)(nil), "telemetry.OSInfo")
	proto.RegisterType((*MemInfo)(nil), "telemetry.MemInfo")
}
func (m *Report) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalTo(dAtA)
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *Report) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if len(m.EventUUID) > 0 {
		dAtA[i] = 0xa
		i++
		i = encodeVarintReport(dAtA, i, uint64(len(m.EventUUID)))
		i += copy(dAtA[i:], m.EventUUID)
	}
	if m.EventUnixTimestamp != 0 {
		dAtA[i] = 0x10
		i++
		i = encodeVarintReport(dAtA, i, uint64(m.EventUnixTimestamp))
	}
	if m.EventDetail != nil {
		nn1, err := m.EventDetail.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += nn1
	}
	return i, nil
}

func (m *Report_Cluster) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	if m.Cluster != nil {
		dAtA[i] = 0x1a
		i++
		i = encodeVarintReport(dAtA, i, uint64(m.Cluster.Size()))
		n2, err := m.Cluster.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n2
	}
	return i, nil
}
func (m *ClusterReport) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalTo(dAtA)
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *ClusterReport) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if len(m.UUID) > 0 {
		dAtA[i] = 0xa
		i++
		i = encodeVarintReport(dAtA, i, uint64(len(m.UUID)))
		i += copy(dAtA[i:], m.UUID)
	}
	if len(m.Command) > 0 {
		dAtA[i] = 0x12
		i++
		i = encodeVarintReport(dAtA, i, uint64(len(m.Command)))
		i += copy(dAtA[i:], m.Command)
	}
	if m.TakeMilliseconds != 0 {
		dAtA[i] = 0x18
		i++
		i = encodeVarintReport(dAtA, i, uint64(m.TakeMilliseconds))
	}
	if m.ExitCode != 0 {
		dAtA[i] = 0x20
		i++
		i = encodeVarintReport(dAtA, i, uint64(m.ExitCode))
	}
	if len(m.Topology) > 0 {
		dAtA[i] = 0x2a
		i++
		i = encodeVarintReport(dAtA, i, uint64(len(m.Topology)))
		i += copy(dAtA[i:], m.Topology)
	}
	if len(m.Nodes) > 0 {
		for _, msg := range m.Nodes {
			dAtA[i] = 0x32
			i++
			i = encodeVarintReport(dAtA, i, uint64(msg.Size()))
			n, err := msg.MarshalTo(dAtA[i:])
			if err != nil {
				return 0, err
			}
			i += n
		}
	}
	return i, nil
}

func (m *NodeInfo) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalTo(dAtA)
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *NodeInfo) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if len(m.NodeId) > 0 {
		dAtA[i] = 0xa
		i++
		i = encodeVarintReport(dAtA, i, uint64(len(m.NodeId)))
		i += copy(dAtA[i:], m.NodeId)
	}
	dAtA[i] = 0x32
	i++
	i = encodeVarintReport(dAtA, i, uint64(m.Hardware.Size()))
	n3, err := m.Hardware.MarshalTo(dAtA[i:])
	if err != nil {
		return 0, err
	}
	i += n3
	dAtA[i] = 0x3a
	i++
	i = encodeVarintReport(dAtA, i, uint64(m.Os.Size()))
	n4, err := m.Os.MarshalTo(dAtA[i:])
	if err != nil {
		return 0, err
	}
	i += n4
	return i, nil
}

func (m *CPUInfo) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalTo(dAtA)
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *CPUInfo) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if m.Numcpu != 0 {
		dAtA[i] = 0x8
		i++
		i = encodeVarintReport(dAtA, i, uint64(m.Numcpu))
	}
	if m.Sockets != 0 {
		dAtA[i] = 0x10
		i++
		i = encodeVarintReport(dAtA, i, uint64(m.Sockets))
	}
	if m.Cores != 0 {
		dAtA[i] = 0x18
		i++
		i = encodeVarintReport(dAtA, i, uint64(m.Cores))
	}
	if len(m.Model) > 0 {
		dAtA[i] = 0x22
		i++
		i = encodeVarintReport(dAtA, i, uint64(len(m.Model)))
		i += copy(dAtA[i:], m.Model)
	}
	if m.Mhz != 0 {
		dAtA[i] = 0x2d
		i++
		encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Mhz))))
		i += 4
	}
	if len(m.Features) > 0 {
		for _, s := range m.Features {
			dAtA[i] = 0x32
			i++
			l = len(s)
			for l >= 1<<7 {
				dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
				l >>= 7
				i++
			}
			dAtA[i] = uint8(l)
			i++
			i += copy(dAtA[i:], s)
		}
	}
	return i, nil
}

func (m *HardwareInfo) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalTo(dAtA)
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *HardwareInfo) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if len(m.Virtualization) > 0 {
		dAtA[i] = 0xa
		i++
		i = encodeVarintReport(dAtA, i, uint64(len(m.Virtualization)))
		i += copy(dAtA[i:], m.Virtualization)
	}
	dAtA[i] = 0x12
	i++
	i = encodeVarintReport(dAtA, i, uint64(m.Cpu.Size()))
	n5, err := m.Cpu.MarshalTo(dAtA[i:])
	if err != nil {
		return 0, err
	}
	i += n5
	dAtA[i] = 0x1a
	i++
	i = encodeVarintReport(dAtA, i, uint64(m.Mem.Size()))
	n6, err := m.Mem.MarshalTo(dAtA[i:])
	if err != nil {
		return 0, err
	}
	i += n6
	if m.Loadavg15 != 0 {
		dAtA[i] = 0x25
		i++
		encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Loadavg15))))
		i += 4
	}
	return i, nil
}

func (m *OSInfo) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalTo(dAtA)
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *OSInfo) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if len(m.Family) > 0 {
		dAtA[i] = 0xa
		i++
		i = encodeVarintReport(dAtA, i, uint64(len(m.Family)))
		i += copy(dAtA[i:], m.Family)
	}
	if len(m.Platform) > 0 {
		dAtA[i] = 0x12
		i++
		i = encodeVarintReport(dAtA, i, uint64(len(m.Platform)))
		i += copy(dAtA[i:], m.Platform)
	}
	if len(m.Version) > 0 {
		dAtA[i] = 0x1a
		i++
		i = encodeVarintReport(dAtA, i, uint64(len(m.Version)))
		i += copy(dAtA[i:], m.Version)
	}
	return i, nil
}

func (m *MemInfo) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalTo(dAtA)
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *MemInfo) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if m.Total != 0 {
		dAtA[i] = 0x8
		i++
		i = encodeVarintReport(dAtA, i, uint64(m.Total))
	}
	if m.Available != 0 {
		dAtA[i] = 0x10
		i++
		i = encodeVarintReport(dAtA, i, uint64(m.Available))
	}
	return i, nil
}

func encodeVarintReport(dAtA []byte, offset int, v uint64) int {
	for v >= 1<<7 {
		dAtA[offset] = uint8(v&0x7f | 0x80)
		v >>= 7
		offset++
	}
	dAtA[offset] = uint8(v)
	return offset + 1
}
func (m *Report) Size() (n int) {
	var l int
	_ = l
	l = len(m.EventUUID)
	if l > 0 {
		n += 1 + l + sovReport(uint64(l))
	}
	if m.EventUnixTimestamp != 0 {
		n += 1 + sovReport(uint64(m.EventUnixTimestamp))
	}
	if m.EventDetail != nil {
		n += m.EventDetail.Size()
	}
	return n
}

func (m *Report_Cluster) Size() (n int) {
	var l int
	_ = l
	if m.Cluster != nil {
		l = m.Cluster.Size()
		n += 1 + l + sovReport(uint64(l))
	}
	return n
}
func (m *ClusterReport) Size() (n int) {
	var l int
	_ = l
	l = len(m.UUID)
	if l > 0 {
		n += 1 + l + sovReport(uint64(l))
	}
	l = len(m.Command)
	if l > 0 {
		n += 1 + l + sovReport(uint64(l))
	}
	if m.TakeMilliseconds != 0 {
		n += 1 + sovReport(uint64(m.TakeMilliseconds))
	}
	if m.ExitCode != 0 {
		n += 1 + sovReport(uint64(m.ExitCode))
	}
	l = len(m.Topology)
	if l > 0 {
		n += 1 + l + sovReport(uint64(l))
	}
	if len(m.Nodes) > 0 {
		for _, e := range m.Nodes {
			l = e.Size()
			n += 1 + l + sovReport(uint64(l))
		}
	}
	return n
}

func (m *NodeInfo) Size() (n int) {
	var l int
	_ = l
	l = len(m.NodeId)
	if l > 0 {
		n += 1 + l + sovReport(uint64(l))
	}
	l = m.Hardware.Size()
	n += 1 + l + sovReport(uint64(l))
	l = m.Os.Size()
	n += 1 + l + sovReport(uint64(l))
	return n
}

func (m *CPUInfo) Size() (n int) {
	var l int
	_ = l
	if m.Numcpu != 0 {
		n += 1 + sovReport(uint64(m.Numcpu))
	}
	if m.Sockets != 0 {
		n += 1 + sovReport(uint64(m.Sockets))
	}
	if m.Cores != 0 {
		n += 1 + sovReport(uint64(m.Cores))
	}
	l = len(m.Model)
	if l > 0 {
		n += 1 + l + sovReport(uint64(l))
	}
	if m.Mhz != 0 {
		n += 5
	}
	if len(m.Features) > 0 {
		for _, s := range m.Features {
			l = len(s)
			n += 1 + l + sovReport(uint64(l))
		}
	}
	return n
}

func (m *HardwareInfo) Size() (n int) {
	var l int
	_ = l
	l = len(m.Virtualization)
	if l > 0 {
		n += 1 + l + sovReport(uint64(l))
	}
	l = m.Cpu.Size()
	n += 1 + l + sovReport(uint64(l))
	l = m.Mem.Size()
	n += 1 + l + sovReport(uint64(l))
	if m.Loadavg15 != 0 {
		n += 5
	}
	return n
}

func (m *OSInfo) Size() (n int) {
	var l int
	_ = l
	l = len(m.Family)
	if l > 0 {
		n += 1 + l + sovReport(uint64(l))
	}
	l = len(m.Platform)
	if l > 0 {
		n += 1 + l + sovReport(uint64(l))
	}
	l = len(m.Version)
	if l > 0 {
		n += 1 + l + sovReport(uint64(l))
	}
	return n
}

func (m *MemInfo) Size() (n int) {
	var l int
	_ = l
	if m.Total != 0 {
		n += 1 + sovReport(uint64(m.Total))
	}
	if m.Available != 0 {
		n += 1 + sovReport(uint64(m.Available))
	}
	return n
}

func sovReport(x uint64) (n int) {
	for {
		n++
		x >>= 7
		if x == 0 {
			break
		}
	}
	return n
}
func sozReport(x uint64) (n int) {
	return sovReport(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (m *Report) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowReport
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Report: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Report: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field EventUUID", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthReport
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.EventUUID = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field EventUnixTimestamp", wireType)
			}
			m.EventUnixTimestamp = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.EventUnixTimestamp |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Cluster", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthReport
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &ClusterReport{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.EventDetail = &Report_Cluster{v}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipReport(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthReport
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *ClusterReport) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowReport
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: ClusterReport: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ClusterReport: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field UUID", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthReport
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.UUID = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Command", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthReport
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Command = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field TakeMilliseconds", wireType)
			}
			m.TakeMilliseconds = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.TakeMilliseconds |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field ExitCode", wireType)
			}
			m.ExitCode = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.ExitCode |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 5:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Topology", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthReport
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Topology = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 6:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Nodes", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthReport
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Nodes = append(m.Nodes, &NodeInfo{})
			if err := m.Nodes[len(m.Nodes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipReport(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthReport
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NodeInfo) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowReport
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NodeInfo: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NodeInfo: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NodeId", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthReport
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.NodeId = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 6:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Hardware", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthReport
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Hardware.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 7:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Os", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthReport
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Os.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipReport(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthReport
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *CPUInfo) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowReport
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: CPUInfo: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CPUInfo: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Numcpu", wireType)
			}
			m.Numcpu = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Numcpu |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Sockets", wireType)
			}
			m.Sockets = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Sockets |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Cores", wireType)
			}
			m.Cores = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Cores |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Model", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthReport
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Model = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 5:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Mhz", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
			m.Mhz = float32(math.Float32frombits(v))
		case 6:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Features", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthReport
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Features = append(m.Features, string(dAtA[iNdEx:postIndex]))
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipReport(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthReport
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *HardwareInfo) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowReport
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: HardwareInfo: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: HardwareInfo: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Virtualization", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthReport
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Virtualization = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Cpu", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthReport
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Cpu.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Mem", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthReport
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Mem.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Loadavg15", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
			m.Loadavg15 = float32(math.Float32frombits(v))
		default:
			iNdEx = preIndex
			skippy, err := skipReport(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthReport
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *OSInfo) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowReport
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: OSInfo: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: OSInfo: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Family", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthReport
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Family = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Platform", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthReport
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Platform = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthReport
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Version = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipReport(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthReport
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *MemInfo) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowReport
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: MemInfo: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: MemInfo: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Total", wireType)
			}
			m.Total = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Total |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Available", wireType)
			}
			m.Available = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowReport
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Available |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipReport(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthReport
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func skipReport(dAtA []byte) (n int, err error) {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return 0, ErrIntOverflowReport
			}
			if iNdEx >= l {
				return 0, io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		wireType := int(wire & 0x7)
		switch wireType {
		case 0:
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowReport
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				iNdEx++
				if dAtA[iNdEx-1] < 0x80 {
					break
				}
			}
			return iNdEx, nil
		case 1:
			iNdEx += 8
			return iNdEx, nil
		case 2:
			var length int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowReport
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				length |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			iNdEx += length
			if length < 0 {
				return 0, ErrInvalidLengthReport
			}
			return iNdEx, nil
		case 3:
			for {
				var innerWire uint64
				var start int = iNdEx
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return 0, ErrIntOverflowReport
					}
					if iNdEx >= l {
						return 0, io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					innerWire |= (uint64(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				innerWireType := int(innerWire & 0x7)
				if innerWireType == 4 {
					break
				}
				next, err := skipReport(dAtA[start:])
				if err != nil {
					return 0, err
				}
				iNdEx = start + next
			}
			return iNdEx, nil
		case 4:
			return iNdEx, nil
		case 5:
			iNdEx += 4
			return iNdEx, nil
		default:
			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
		}
	}
	panic("unreachable")
}

var (
	ErrInvalidLengthReport = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowReport   = fmt.Errorf("proto: integer overflow")
)

func init() { proto.RegisterFile("report.proto", fileDescriptorReport) }

var fileDescriptorReport = []byte{
	// 610 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x53, 0xc1, 0x6e, 0xd3, 0x30,
	0x18, 0x9e, 0xdb, 0x26, 0x6d, 0xfe, 0x8d, 0x69, 0x33, 0x13, 0x8b, 0x06, 0x2a, 0x55, 0x0e, 0x50,
	0x40, 0x1a, 0x30, 0xe0, 0xc0, 0x81, 0xcb, 0xc6, 0x61, 0x3b, 0x0c, 0x90, 0x61, 0x5c, 0x2b, 0x2f,
	0xf9, 0xdb, 0x59, 0xb3, 0xe3, 0x2a, 0x71, 0xcb, 0xb6, 0x17, 0xe0, 0x09, 0x90, 0x38, 0xf1, 0x04,
	0x3c, 0xc8, 0x4e, 0x88, 0x27, 0x40, 0x68, 0xbc, 0x08, 0xb2, 0x9d, 0x74, 0x81, 0x9b, 0xbf, 0xcf,
	0x9f, 0xed, 0xef, 0xfb, 0xf2, 0x07, 0x56, 0x0a, 0x9c, 0xea, 0xc2, 0x6c, 0x4f, 0x0b, 0x6d, 0x34,
	0x8d, 0x0c, 0x4a, 0x54, 0x68, 0x8a, 0xf3, 0xad, 0x8d, 0x89, 0x9e, 0x68, 0xc7, 0x3e, 0xb6, 0x2b,
	0x2f, 0x48, 0xbe, 0x11, 0x08, 0x99, 0x3b, 0x41, 0xef, 0x40, 0x84, 0x73, 0xcc, 0xcd, 0xd1, 0xd1,
	0xc1, 0xeb, 0x98, 0x0c, 0xc8, 0x30, 0x62, 0xd7, 0x04, 0x7d, 0x02, 0x1b, 0x0e, 0x8c, 0x66, 0xb9,
	0x38, 0x1b, 0x19, 0xa1, 0xb0, 0x34, 0x5c, 0x4d, 0xe3, 0xd6, 0x80, 0x0c, 0xdb, 0x8c, 0x7a, 0x61,
	0x2e, 0xce, 0x3e, 0xd4, 0x3b, 0xf4, 0x39, 0x74, 0x53, 0x39, 0x2b, 0x0d, 0x16, 0x71, 0x7b, 0x40,
	0x86, 0xcb, 0x3b, 0xf1, 0xf6, 0xc2, 0xcd, 0xf6, 0x9e, 0xdf, 0xf1, 0x4f, 0xef, 0x2f, 0xb1, 0x5a,
	0xba, 0xbb, 0x0a, 0x2b, 0xfe, 0x9d, 0x0c, 0x0d, 0x17, 0x32, 0xf9, 0x41, 0xe0, 0xc6, 0x3f, 0x62,
	0x4a, 0xa1, 0xd3, 0xb0, 0xe8, 0xd6, 0x34, 0x86, 0x6e, 0xaa, 0x95, 0xe2, 0x79, 0xe6, 0x0c, 0x45,
	0xac, 0x86, 0xf4, 0x11, 0xac, 0x1b, 0x7e, 0x8a, 0x23, 0x25, 0xa4, 0x14, 0x25, 0xa6, 0x3a, 0xcf,
	0x4a, 0xe7, 0xa7, 0xc3, 0xd6, 0xec, 0xc6, 0x61, 0x83, 0xa7, 0xb7, 0x21, 0xc2, 0x33, 0x61, 0x46,
	0xa9, 0xce, 0x30, 0xee, 0x0c, 0xc8, 0x30, 0x60, 0x3d, 0x4b, 0xec, 0xe9, 0x0c, 0xe9, 0x16, 0xf4,
	0x8c, 0x9e, 0x6a, 0xa9, 0x27, 0xe7, 0x71, 0xe0, 0x1e, 0x59, 0x60, 0xfa, 0x00, 0x82, 0x5c, 0x67,
	0x58, 0xc6, 0xe1, 0xa0, 0x3d, 0x5c, 0xde, 0xb9, 0xd9, 0x48, 0xfa, 0x46, 0x67, 0x78, 0x90, 0x8f,
	0x35, 0xf3, 0x8a, 0xe4, 0x33, 0x81, 0x5e, 0xcd, 0xd1, 0x4d, 0xe8, 0x5a, 0x76, 0x24, 0xb2, 0x2a,
	0x4e, 0x68, 0xe1, 0x41, 0x46, 0x5f, 0x42, 0xef, 0x84, 0x17, 0xd9, 0x27, 0x5e, 0x60, 0x1c, 0xba,
	0xf6, 0x36, 0x1b, 0x77, 0xee, 0x57, 0x5b, 0xf6, 0x8e, 0xdd, 0xce, 0xe5, 0xaf, 0xbb, 0x4b, 0x6c,
	0x21, 0xa7, 0xf7, 0xa1, 0xa5, 0xcb, 0xb8, 0xeb, 0x0e, 0xad, 0x37, 0x0e, 0xbd, 0x7d, 0xdf, 0x90,
	0xb7, 0x74, 0x99, 0x7c, 0x21, 0xd0, 0xdd, 0x7b, 0x77, 0xe4, 0x8c, 0xdc, 0x82, 0x30, 0x9f, 0xa9,
	0x74, 0x3a, 0x73, 0x3e, 0x02, 0x56, 0x21, 0x5b, 0x6c, 0xa9, 0xd3, 0x53, 0x34, 0xa5, 0x2b, 0x36,
	0x60, 0x35, 0xa4, 0x1b, 0x10, 0xa4, 0xba, 0x40, 0x5f, 0x66, 0xc0, 0x3c, 0xb0, 0xac, 0xd2, 0x19,
	0x4a, 0xd7, 0x5e, 0xc4, 0x3c, 0xa0, 0x6b, 0xd0, 0x56, 0x27, 0x17, 0xae, 0xb5, 0x16, 0xb3, 0x4b,
	0x5b, 0xe6, 0x18, 0xb9, 0x99, 0x15, 0x55, 0x67, 0x11, 0x5b, 0xe0, 0xe4, 0x3b, 0x81, 0x95, 0x66,
	0x42, 0x7a, 0x0f, 0x56, 0xe7, 0xa2, 0x30, 0x33, 0x2e, 0xc5, 0x05, 0x37, 0x42, 0xe7, 0x55, 0x59,
	0xff, 0xb1, 0xf4, 0x21, 0xb4, 0x6d, 0x82, 0x96, 0x8b, 0x4e, 0x9b, 0xd3, 0xe6, 0x53, 0x56, 0xd9,
	0xad, 0xc8, 0x6a, 0x15, 0xaa, 0x6a, 0x32, 0x9b, 0xda, 0x43, 0x54, 0x4d, 0xad, 0x42, 0x65, 0xff,
	0x0c, 0xa9, 0x79, 0xc6, 0xe7, 0x93, 0xa7, 0x2f, 0x5c, 0xb0, 0x16, 0xbb, 0x26, 0x92, 0x8f, 0x10,
	0xfa, 0x6a, 0x6d, 0x89, 0x63, 0xae, 0x84, 0x3c, 0xaf, 0x3f, 0xa6, 0x47, 0x36, 0xec, 0x54, 0x72,
	0x33, 0xd6, 0x85, 0xaa, 0xc6, 0x73, 0x81, 0x6d, 0xc1, 0x73, 0x2c, 0x4a, 0x1b, 0xaa, 0xed, 0x27,
	0xb7, 0x82, 0xc9, 0x2b, 0xe8, 0x56, 0x5e, 0x6c, 0xab, 0x46, 0x1b, 0x2e, 0xdd, 0xbd, 0x1d, 0xe6,
	0x81, 0xb5, 0xc5, 0xe7, 0x5c, 0x48, 0x7e, 0x2c, 0xd1, 0xdd, 0xdb, 0x61, 0xd7, 0xc4, 0xee, 0xda,
	0xe5, 0x55, 0x9f, 0xfc, 0xbc, 0xea, 0x93, 0xdf, 0x57, 0x7d, 0xf2, 0xf5, 0x4f, 0x7f, 0xe9, 0x38,
	0x74, 0xbf, 0xfc, 0xb3, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x4d, 0x3b, 0x95, 0x25, 0x23, 0x04,
	0x00, 0x00,
}
