// Code generated by protoc-gen-gogo.
// source: combos/unsafeunmarshaler/one.proto
// DO NOT EDIT!

/*
	Package one is a generated protocol buffer package.

	It is generated from these files:
		combos/unsafeunmarshaler/one.proto

	It has these top-level messages:
		Subby
		SampleOneOf
*/
package one

import proto "github.com/gogo/protobuf/proto"
import fmt "fmt"
import math "math"
import _ "github.com/gogo/protobuf/gogoproto"

import github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
import compress_gzip "compress/gzip"
import bytes "bytes"
import io_ioutil "io/ioutil"

import strings "strings"
import reflect "reflect"

import io "io"
import unsafe "unsafe"

// 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.GoGoProtoPackageIsVersion2 // please upgrade the proto package

type Subby struct {
	Sub string `protobuf:"bytes,1,opt,name=sub,proto3" json:"sub,omitempty"`
}

func (m *Subby) Reset()                    { *m = Subby{} }
func (*Subby) ProtoMessage()               {}
func (*Subby) Descriptor() ([]byte, []int) { return fileDescriptorOne, []int{0} }

type SampleOneOf struct {
	// Types that are valid to be assigned to TestOneof:
	//	*SampleOneOf_Field1
	//	*SampleOneOf_Field2
	//	*SampleOneOf_Field3
	//	*SampleOneOf_Field4
	//	*SampleOneOf_Field5
	//	*SampleOneOf_Field6
	//	*SampleOneOf_Field7
	//	*SampleOneOf_Field8
	//	*SampleOneOf_Field9
	//	*SampleOneOf_Field10
	//	*SampleOneOf_Field11
	//	*SampleOneOf_Field12
	//	*SampleOneOf_Field13
	//	*SampleOneOf_Field14
	//	*SampleOneOf_Field15
	//	*SampleOneOf_SubMessage
	TestOneof isSampleOneOf_TestOneof `protobuf_oneof:"test_oneof"`
}

func (m *SampleOneOf) Reset()                    { *m = SampleOneOf{} }
func (*SampleOneOf) ProtoMessage()               {}
func (*SampleOneOf) Descriptor() ([]byte, []int) { return fileDescriptorOne, []int{1} }

type isSampleOneOf_TestOneof interface {
	isSampleOneOf_TestOneof()
	Equal(interface{}) bool
	VerboseEqual(interface{}) error
	Size() int
}

type SampleOneOf_Field1 struct {
	Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,proto3,oneof"`
}
type SampleOneOf_Field2 struct {
	Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,proto3,oneof"`
}
type SampleOneOf_Field3 struct {
	Field3 int32 `protobuf:"varint,3,opt,name=Field3,proto3,oneof"`
}
type SampleOneOf_Field4 struct {
	Field4 int64 `protobuf:"varint,4,opt,name=Field4,proto3,oneof"`
}
type SampleOneOf_Field5 struct {
	Field5 uint32 `protobuf:"varint,5,opt,name=Field5,proto3,oneof"`
}
type SampleOneOf_Field6 struct {
	Field6 uint64 `protobuf:"varint,6,opt,name=Field6,proto3,oneof"`
}
type SampleOneOf_Field7 struct {
	Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,proto3,oneof"`
}
type SampleOneOf_Field8 struct {
	Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,proto3,oneof"`
}
type SampleOneOf_Field9 struct {
	Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,proto3,oneof"`
}
type SampleOneOf_Field10 struct {
	Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,proto3,oneof"`
}
type SampleOneOf_Field11 struct {
	Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,proto3,oneof"`
}
type SampleOneOf_Field12 struct {
	Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,proto3,oneof"`
}
type SampleOneOf_Field13 struct {
	Field13 bool `protobuf:"varint,13,opt,name=Field13,proto3,oneof"`
}
type SampleOneOf_Field14 struct {
	Field14 string `protobuf:"bytes,14,opt,name=Field14,proto3,oneof"`
}
type SampleOneOf_Field15 struct {
	Field15 []byte `protobuf:"bytes,15,opt,name=Field15,proto3,oneof"`
}
type SampleOneOf_SubMessage struct {
	SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"`
}

func (*SampleOneOf_Field1) isSampleOneOf_TestOneof()     {}
func (*SampleOneOf_Field2) isSampleOneOf_TestOneof()     {}
func (*SampleOneOf_Field3) isSampleOneOf_TestOneof()     {}
func (*SampleOneOf_Field4) isSampleOneOf_TestOneof()     {}
func (*SampleOneOf_Field5) isSampleOneOf_TestOneof()     {}
func (*SampleOneOf_Field6) isSampleOneOf_TestOneof()     {}
func (*SampleOneOf_Field7) isSampleOneOf_TestOneof()     {}
func (*SampleOneOf_Field8) isSampleOneOf_TestOneof()     {}
func (*SampleOneOf_Field9) isSampleOneOf_TestOneof()     {}
func (*SampleOneOf_Field10) isSampleOneOf_TestOneof()    {}
func (*SampleOneOf_Field11) isSampleOneOf_TestOneof()    {}
func (*SampleOneOf_Field12) isSampleOneOf_TestOneof()    {}
func (*SampleOneOf_Field13) isSampleOneOf_TestOneof()    {}
func (*SampleOneOf_Field14) isSampleOneOf_TestOneof()    {}
func (*SampleOneOf_Field15) isSampleOneOf_TestOneof()    {}
func (*SampleOneOf_SubMessage) isSampleOneOf_TestOneof() {}

func (m *SampleOneOf) GetTestOneof() isSampleOneOf_TestOneof {
	if m != nil {
		return m.TestOneof
	}
	return nil
}

func (m *SampleOneOf) GetField1() float64 {
	if x, ok := m.GetTestOneof().(*SampleOneOf_Field1); ok {
		return x.Field1
	}
	return 0
}

func (m *SampleOneOf) GetField2() float32 {
	if x, ok := m.GetTestOneof().(*SampleOneOf_Field2); ok {
		return x.Field2
	}
	return 0
}

func (m *SampleOneOf) GetField3() int32 {
	if x, ok := m.GetTestOneof().(*SampleOneOf_Field3); ok {
		return x.Field3
	}
	return 0
}

func (m *SampleOneOf) GetField4() int64 {
	if x, ok := m.GetTestOneof().(*SampleOneOf_Field4); ok {
		return x.Field4
	}
	return 0
}

func (m *SampleOneOf) GetField5() uint32 {
	if x, ok := m.GetTestOneof().(*SampleOneOf_Field5); ok {
		return x.Field5
	}
	return 0
}

func (m *SampleOneOf) GetField6() uint64 {
	if x, ok := m.GetTestOneof().(*SampleOneOf_Field6); ok {
		return x.Field6
	}
	return 0
}

func (m *SampleOneOf) GetField7() int32 {
	if x, ok := m.GetTestOneof().(*SampleOneOf_Field7); ok {
		return x.Field7
	}
	return 0
}

func (m *SampleOneOf) GetField8() int64 {
	if x, ok := m.GetTestOneof().(*SampleOneOf_Field8); ok {
		return x.Field8
	}
	return 0
}

func (m *SampleOneOf) GetField9() uint32 {
	if x, ok := m.GetTestOneof().(*SampleOneOf_Field9); ok {
		return x.Field9
	}
	return 0
}

func (m *SampleOneOf) GetField10() int32 {
	if x, ok := m.GetTestOneof().(*SampleOneOf_Field10); ok {
		return x.Field10
	}
	return 0
}

func (m *SampleOneOf) GetField11() uint64 {
	if x, ok := m.GetTestOneof().(*SampleOneOf_Field11); ok {
		return x.Field11
	}
	return 0
}

func (m *SampleOneOf) GetField12() int64 {
	if x, ok := m.GetTestOneof().(*SampleOneOf_Field12); ok {
		return x.Field12
	}
	return 0
}

func (m *SampleOneOf) GetField13() bool {
	if x, ok := m.GetTestOneof().(*SampleOneOf_Field13); ok {
		return x.Field13
	}
	return false
}

func (m *SampleOneOf) GetField14() string {
	if x, ok := m.GetTestOneof().(*SampleOneOf_Field14); ok {
		return x.Field14
	}
	return ""
}

func (m *SampleOneOf) GetField15() []byte {
	if x, ok := m.GetTestOneof().(*SampleOneOf_Field15); ok {
		return x.Field15
	}
	return nil
}

func (m *SampleOneOf) GetSubMessage() *Subby {
	if x, ok := m.GetTestOneof().(*SampleOneOf_SubMessage); ok {
		return x.SubMessage
	}
	return nil
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*SampleOneOf) 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 _SampleOneOf_OneofMarshaler, _SampleOneOf_OneofUnmarshaler, _SampleOneOf_OneofSizer, []interface{}{
		(*SampleOneOf_Field1)(nil),
		(*SampleOneOf_Field2)(nil),
		(*SampleOneOf_Field3)(nil),
		(*SampleOneOf_Field4)(nil),
		(*SampleOneOf_Field5)(nil),
		(*SampleOneOf_Field6)(nil),
		(*SampleOneOf_Field7)(nil),
		(*SampleOneOf_Field8)(nil),
		(*SampleOneOf_Field9)(nil),
		(*SampleOneOf_Field10)(nil),
		(*SampleOneOf_Field11)(nil),
		(*SampleOneOf_Field12)(nil),
		(*SampleOneOf_Field13)(nil),
		(*SampleOneOf_Field14)(nil),
		(*SampleOneOf_Field15)(nil),
		(*SampleOneOf_SubMessage)(nil),
	}
}

func _SampleOneOf_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*SampleOneOf)
	// test_oneof
	switch x := m.TestOneof.(type) {
	case *SampleOneOf_Field1:
		_ = b.EncodeVarint(1<<3 | proto.WireFixed64)
		_ = b.EncodeFixed64(math.Float64bits(x.Field1))
	case *SampleOneOf_Field2:
		_ = b.EncodeVarint(2<<3 | proto.WireFixed32)
		_ = b.EncodeFixed32(uint64(math.Float32bits(x.Field2)))
	case *SampleOneOf_Field3:
		_ = b.EncodeVarint(3<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.Field3))
	case *SampleOneOf_Field4:
		_ = b.EncodeVarint(4<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.Field4))
	case *SampleOneOf_Field5:
		_ = b.EncodeVarint(5<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.Field5))
	case *SampleOneOf_Field6:
		_ = b.EncodeVarint(6<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.Field6))
	case *SampleOneOf_Field7:
		_ = b.EncodeVarint(7<<3 | proto.WireVarint)
		_ = b.EncodeZigzag32(uint64(x.Field7))
	case *SampleOneOf_Field8:
		_ = b.EncodeVarint(8<<3 | proto.WireVarint)
		_ = b.EncodeZigzag64(uint64(x.Field8))
	case *SampleOneOf_Field9:
		_ = b.EncodeVarint(9<<3 | proto.WireFixed32)
		_ = b.EncodeFixed32(uint64(x.Field9))
	case *SampleOneOf_Field10:
		_ = b.EncodeVarint(10<<3 | proto.WireFixed32)
		_ = b.EncodeFixed32(uint64(x.Field10))
	case *SampleOneOf_Field11:
		_ = b.EncodeVarint(11<<3 | proto.WireFixed64)
		_ = b.EncodeFixed64(uint64(x.Field11))
	case *SampleOneOf_Field12:
		_ = b.EncodeVarint(12<<3 | proto.WireFixed64)
		_ = b.EncodeFixed64(uint64(x.Field12))
	case *SampleOneOf_Field13:
		t := uint64(0)
		if x.Field13 {
			t = 1
		}
		_ = b.EncodeVarint(13<<3 | proto.WireVarint)
		_ = b.EncodeVarint(t)
	case *SampleOneOf_Field14:
		_ = b.EncodeVarint(14<<3 | proto.WireBytes)
		_ = b.EncodeStringBytes(x.Field14)
	case *SampleOneOf_Field15:
		_ = b.EncodeVarint(15<<3 | proto.WireBytes)
		_ = b.EncodeRawBytes(x.Field15)
	case *SampleOneOf_SubMessage:
		_ = b.EncodeVarint(16<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.SubMessage); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("SampleOneOf.TestOneof has unexpected type %T", x)
	}
	return nil
}

func _SampleOneOf_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*SampleOneOf)
	switch tag {
	case 1: // test_oneof.Field1
		if wire != proto.WireFixed64 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed64()
		m.TestOneof = &SampleOneOf_Field1{math.Float64frombits(x)}
		return true, err
	case 2: // test_oneof.Field2
		if wire != proto.WireFixed32 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed32()
		m.TestOneof = &SampleOneOf_Field2{math.Float32frombits(uint32(x))}
		return true, err
	case 3: // test_oneof.Field3
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.TestOneof = &SampleOneOf_Field3{int32(x)}
		return true, err
	case 4: // test_oneof.Field4
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.TestOneof = &SampleOneOf_Field4{int64(x)}
		return true, err
	case 5: // test_oneof.Field5
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.TestOneof = &SampleOneOf_Field5{uint32(x)}
		return true, err
	case 6: // test_oneof.Field6
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.TestOneof = &SampleOneOf_Field6{x}
		return true, err
	case 7: // test_oneof.Field7
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeZigzag32()
		m.TestOneof = &SampleOneOf_Field7{int32(x)}
		return true, err
	case 8: // test_oneof.Field8
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeZigzag64()
		m.TestOneof = &SampleOneOf_Field8{int64(x)}
		return true, err
	case 9: // test_oneof.Field9
		if wire != proto.WireFixed32 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed32()
		m.TestOneof = &SampleOneOf_Field9{uint32(x)}
		return true, err
	case 10: // test_oneof.Field10
		if wire != proto.WireFixed32 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed32()
		m.TestOneof = &SampleOneOf_Field10{int32(x)}
		return true, err
	case 11: // test_oneof.Field11
		if wire != proto.WireFixed64 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed64()
		m.TestOneof = &SampleOneOf_Field11{x}
		return true, err
	case 12: // test_oneof.Field12
		if wire != proto.WireFixed64 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed64()
		m.TestOneof = &SampleOneOf_Field12{int64(x)}
		return true, err
	case 13: // test_oneof.Field13
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.TestOneof = &SampleOneOf_Field13{x != 0}
		return true, err
	case 14: // test_oneof.Field14
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.TestOneof = &SampleOneOf_Field14{x}
		return true, err
	case 15: // test_oneof.Field15
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeRawBytes(true)
		m.TestOneof = &SampleOneOf_Field15{x}
		return true, err
	case 16: // test_oneof.sub_message
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(Subby)
		err := b.DecodeMessage(msg)
		m.TestOneof = &SampleOneOf_SubMessage{msg}
		return true, err
	default:
		return false, nil
	}
}

func _SampleOneOf_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*SampleOneOf)
	// test_oneof
	switch x := m.TestOneof.(type) {
	case *SampleOneOf_Field1:
		n += proto.SizeVarint(1<<3 | proto.WireFixed64)
		n += 8
	case *SampleOneOf_Field2:
		n += proto.SizeVarint(2<<3 | proto.WireFixed32)
		n += 4
	case *SampleOneOf_Field3:
		n += proto.SizeVarint(3<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64(x.Field3))
	case *SampleOneOf_Field4:
		n += proto.SizeVarint(4<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64(x.Field4))
	case *SampleOneOf_Field5:
		n += proto.SizeVarint(5<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64(x.Field5))
	case *SampleOneOf_Field6:
		n += proto.SizeVarint(6<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64(x.Field6))
	case *SampleOneOf_Field7:
		n += proto.SizeVarint(7<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64((uint32(x.Field7) << 1) ^ uint32((int32(x.Field7) >> 31))))
	case *SampleOneOf_Field8:
		n += proto.SizeVarint(8<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64(uint64(x.Field8<<1) ^ uint64((int64(x.Field8) >> 63))))
	case *SampleOneOf_Field9:
		n += proto.SizeVarint(9<<3 | proto.WireFixed32)
		n += 4
	case *SampleOneOf_Field10:
		n += proto.SizeVarint(10<<3 | proto.WireFixed32)
		n += 4
	case *SampleOneOf_Field11:
		n += proto.SizeVarint(11<<3 | proto.WireFixed64)
		n += 8
	case *SampleOneOf_Field12:
		n += proto.SizeVarint(12<<3 | proto.WireFixed64)
		n += 8
	case *SampleOneOf_Field13:
		n += proto.SizeVarint(13<<3 | proto.WireVarint)
		n += 1
	case *SampleOneOf_Field14:
		n += proto.SizeVarint(14<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(len(x.Field14)))
		n += len(x.Field14)
	case *SampleOneOf_Field15:
		n += proto.SizeVarint(15<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(len(x.Field15)))
		n += len(x.Field15)
	case *SampleOneOf_SubMessage:
		s := proto.Size(x.SubMessage)
		n += proto.SizeVarint(16<<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
}

func init() {
	proto.RegisterType((*Subby)(nil), "one.Subby")
	proto.RegisterType((*SampleOneOf)(nil), "one.SampleOneOf")
}
func (this *Subby) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return OneDescription()
}
func (this *SampleOneOf) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return OneDescription()
}
func OneDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
	var gzipped = []byte{
		// 3728 bytes of a gzipped FileDescriptorSet
		0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x5a, 0x5b, 0x70, 0xe3, 0xe6,
		0x75, 0x16, 0x78, 0x13, 0x79, 0x48, 0x51, 0xd0, 0x2f, 0x79, 0x8d, 0x95, 0x63, 0xae, 0x56, 0xb1,
		0x63, 0xd9, 0xae, 0xb5, 0xb6, 0x56, 0xda, 0x0b, 0xb7, 0x89, 0x87, 0x92, 0x68, 0xad, 0x3c, 0x92,
		0xa8, 0x82, 0x52, 0x62, 0x27, 0x0f, 0x18, 0x10, 0xfc, 0x49, 0x61, 0x17, 0x04, 0x58, 0x00, 0x5c,
		0x5b, 0x7e, 0xda, 0x8c, 0x7b, 0x99, 0x4c, 0xa6, 0xf7, 0xce, 0x34, 0x71, 0x1c, 0xd7, 0xcd, 0x4c,
		0xeb, 0x34, 0xbd, 0x25, 0xbd, 0xa4, 0x9d, 0x3e, 0xf5, 0x25, 0xad, 0x9f, 0x3a, 0xc9, 0x5b, 0x1f,
		0xf2, 0x90, 0x55, 0x3d, 0xd3, 0xb4, 0x75, 0x5b, 0xb7, 0xf5, 0x4c, 0x33, 0xb3, 0x2f, 0x9d, 0xff,
		0x06, 0x80, 0x17, 0x2d, 0xa8, 0xcc, 0xe4, 0xf2, 0x24, 0xe1, 0x9c, 0xf3, 0x7d, 0x38, 0x38, 0xff,
		0xf9, 0xcf, 0x39, 0xf8, 0x41, 0xf8, 0xec, 0x2a, 0x2c, 0xb4, 0x1d, 0xa7, 0x6d, 0xe1, 0x4b, 0x5d,
		0xd7, 0xf1, 0x9d, 0x46, 0xaf, 0x75, 0xa9, 0x89, 0x3d, 0xc3, 0x35, 0xbb, 0xbe, 0xe3, 0x2e, 0x53,
		0x19, 0x9a, 0x66, 0x16, 0xcb, 0xc2, 0x62, 0x71, 0x17, 0x66, 0x5e, 0x30, 0x2d, 0xbc, 0x19, 0x18,
		0xd6, 0xb1, 0x8f, 0xae, 0x41, 0xaa, 0x65, 0x5a, 0x58, 0x91, 0x16, 0x92, 0x4b, 0xf9, 0x95, 0xc7,
		0x96, 0x07, 0x40, 0xcb, 0xfd, 0x88, 0x7d, 0x22, 0x56, 0x29, 0x62, 0xf1, 0xbd, 0x14, 0xcc, 0x8e,
		0xd0, 0x22, 0x04, 0x29, 0x5b, 0xef, 0x10, 0x46, 0x69, 0x29, 0xa7, 0xd2, 0xff, 0x91, 0x02, 0x93,
		0x5d, 0xdd, 0xb8, 0xad, 0xb7, 0xb1, 0x92, 0xa0, 0x62, 0x71, 0x89, 0x4a, 0x00, 0x4d, 0xdc, 0xc5,
		0x76, 0x13, 0xdb, 0xc6, 0xb1, 0x92, 0x5c, 0x48, 0x2e, 0xe5, 0xd4, 0x88, 0x04, 0x3d, 0x0d, 0x33,
		0xdd, 0x5e, 0xc3, 0x32, 0x0d, 0x2d, 0x62, 0x06, 0x0b, 0xc9, 0xa5, 0xb4, 0x2a, 0x33, 0xc5, 0x66,
		0x68, 0xfc, 0x04, 0x4c, 0xbf, 0x82, 0xf5, 0xdb, 0x51, 0xd3, 0x3c, 0x35, 0x2d, 0x12, 0x71, 0xc4,
		0x70, 0x03, 0x0a, 0x1d, 0xec, 0x79, 0x7a, 0x1b, 0x6b, 0xfe, 0x71, 0x17, 0x2b, 0x29, 0xfa, 0xf4,
		0x0b, 0x43, 0x4f, 0x3f, 0xf8, 0xe4, 0x79, 0x8e, 0x3a, 0x38, 0xee, 0x62, 0x54, 0x81, 0x1c, 0xb6,
		0x7b, 0x1d, 0xc6, 0x90, 0x3e, 0x25, 0x7e, 0x55, 0xbb, 0xd7, 0x19, 0x64, 0xc9, 0x12, 0x18, 0xa7,
		0x98, 0xf4, 0xb0, 0x7b, 0xc7, 0x34, 0xb0, 0x92, 0xa1, 0x04, 0x4f, 0x0c, 0x11, 0xd4, 0x99, 0x7e,
		0x90, 0x43, 0xe0, 0xd0, 0x06, 0xe4, 0xf0, 0xab, 0x3e, 0xb6, 0x3d, 0xd3, 0xb1, 0x95, 0x49, 0x4a,
		0xf2, 0xf8, 0x88, 0x55, 0xc4, 0x56, 0x73, 0x90, 0x22, 0xc4, 0xa1, 0x2b, 0x30, 0xe9, 0x74, 0x7d,
		0xd3, 0xb1, 0x3d, 0x25, 0xbb, 0x20, 0x2d, 0xe5, 0x57, 0x3e, 0x32, 0x32, 0x11, 0x6a, 0xcc, 0x46,
		0x15, 0xc6, 0x68, 0x1b, 0x64, 0xcf, 0xe9, 0xb9, 0x06, 0xd6, 0x0c, 0xa7, 0x89, 0x35, 0xd3, 0x6e,
		0x39, 0x4a, 0x8e, 0x12, 0x5c, 0x18, 0x7e, 0x10, 0x6a, 0xb8, 0xe1, 0x34, 0xf1, 0xb6, 0xdd, 0x72,
		0xd4, 0xa2, 0xd7, 0x77, 0x8d, 0xce, 0x41, 0xc6, 0x3b, 0xb6, 0x7d, 0xfd, 0x55, 0xa5, 0x40, 0x33,
		0x84, 0x5f, 0x2d, 0xfe, 0x5f, 0x1a, 0xa6, 0xc7, 0x49, 0xb1, 0x1b, 0x90, 0x6e, 0x91, 0xa7, 0x54,
		0x12, 0x67, 0x89, 0x01, 0xc3, 0xf4, 0x07, 0x31, 0xf3, 0x43, 0x06, 0xb1, 0x02, 0x79, 0x1b, 0x7b,
		0x3e, 0x6e, 0xb2, 0x8c, 0x48, 0x8e, 0x99, 0x53, 0xc0, 0x40, 0xc3, 0x29, 0x95, 0xfa, 0xa1, 0x52,
		0xea, 0x25, 0x98, 0x0e, 0x5c, 0xd2, 0x5c, 0xdd, 0x6e, 0x8b, 0xdc, 0xbc, 0x14, 0xe7, 0xc9, 0x72,
		0x55, 0xe0, 0x54, 0x02, 0x53, 0x8b, 0xb8, 0xef, 0x1a, 0x6d, 0x02, 0x38, 0x36, 0x76, 0x5a, 0x5a,
		0x13, 0x1b, 0x96, 0x92, 0x3d, 0x25, 0x4a, 0x35, 0x62, 0x32, 0x14, 0x25, 0x87, 0x49, 0x0d, 0x0b,
		0x5d, 0x0f, 0x53, 0x6d, 0xf2, 0x94, 0x4c, 0xd9, 0x65, 0x9b, 0x6c, 0x28, 0xdb, 0x0e, 0xa1, 0xe8,
		0x62, 0x92, 0xf7, 0xb8, 0xc9, 0x9f, 0x2c, 0x47, 0x9d, 0x58, 0x8e, 0x7d, 0x32, 0x95, 0xc3, 0xd8,
		0x83, 0x4d, 0xb9, 0xd1, 0x4b, 0xf4, 0x51, 0x08, 0x04, 0x1a, 0x4d, 0x2b, 0xa0, 0x55, 0xa8, 0x20,
		0x84, 0x7b, 0x7a, 0x07, 0xcf, 0x5f, 0x83, 0x62, 0x7f, 0x78, 0xd0, 0x1c, 0xa4, 0x3d, 0x5f, 0x77,
		0x7d, 0x9a, 0x85, 0x69, 0x95, 0x5d, 0x20, 0x19, 0x92, 0xd8, 0x6e, 0xd2, 0x2a, 0x97, 0x56, 0xc9,
		0xbf, 0xf3, 0x57, 0x61, 0xaa, 0xef, 0xf6, 0xe3, 0x02, 0x17, 0xbf, 0x90, 0x81, 0xb9, 0x51, 0x39,
		0x37, 0x32, 0xfd, 0xcf, 0x41, 0xc6, 0xee, 0x75, 0x1a, 0xd8, 0x55, 0x92, 0x94, 0x81, 0x5f, 0xa1,
		0x0a, 0xa4, 0x2d, 0xbd, 0x81, 0x2d, 0x25, 0xb5, 0x20, 0x2d, 0x15, 0x57, 0x9e, 0x1e, 0x2b, 0xab,
		0x97, 0x77, 0x08, 0x44, 0x65, 0x48, 0xf4, 0x09, 0x48, 0xf1, 0x12, 0x47, 0x18, 0x9e, 0x1a, 0x8f,
		0x81, 0xe4, 0xa2, 0x4a, 0x71, 0xe8, 0x11, 0xc8, 0x91, 0xbf, 0x2c, 0xb6, 0x19, 0xea, 0x73, 0x96,
		0x08, 0x48, 0x5c, 0xd1, 0x3c, 0x64, 0x69, 0x9a, 0x35, 0xb1, 0x68, 0x0d, 0xc1, 0x35, 0x59, 0x98,
		0x26, 0x6e, 0xe9, 0x3d, 0xcb, 0xd7, 0xee, 0xe8, 0x56, 0x0f, 0xd3, 0x84, 0xc9, 0xa9, 0x05, 0x2e,
		0xfc, 0x24, 0x91, 0xa1, 0x0b, 0x90, 0x67, 0x59, 0x69, 0xda, 0x4d, 0xfc, 0x2a, 0xad, 0x3e, 0x69,
		0x95, 0x25, 0xea, 0x36, 0x91, 0x90, 0xdb, 0xdf, 0xf2, 0x1c, 0x5b, 0x2c, 0x2d, 0xbd, 0x05, 0x11,
		0xd0, 0xdb, 0x5f, 0x1d, 0x2c, 0x7c, 0x8f, 0x8e, 0x7e, 0xbc, 0xc1, 0x5c, 0x5c, 0xfc, 0x66, 0x02,
		0x52, 0x74, 0xbf, 0x4d, 0x43, 0xfe, 0xe0, 0xe5, 0xfd, 0xaa, 0xb6, 0x59, 0x3b, 0x5c, 0xdf, 0xa9,
		0xca, 0x12, 0x2a, 0x02, 0x50, 0xc1, 0x0b, 0x3b, 0xb5, 0xca, 0x81, 0x9c, 0x08, 0xae, 0xb7, 0xf7,
		0x0e, 0xae, 0xac, 0xca, 0xc9, 0x00, 0x70, 0xc8, 0x04, 0xa9, 0xa8, 0xc1, 0xe5, 0x15, 0x39, 0x8d,
		0x64, 0x28, 0x30, 0x82, 0xed, 0x97, 0xaa, 0x9b, 0x57, 0x56, 0xe5, 0x4c, 0xbf, 0xe4, 0xf2, 0x8a,
		0x3c, 0x89, 0xa6, 0x20, 0x47, 0x25, 0xeb, 0xb5, 0xda, 0x8e, 0x9c, 0x0d, 0x38, 0xeb, 0x07, 0xea,
		0xf6, 0xde, 0x96, 0x9c, 0x0b, 0x38, 0xb7, 0xd4, 0xda, 0xe1, 0xbe, 0x0c, 0x01, 0xc3, 0x6e, 0xb5,
		0x5e, 0xaf, 0x6c, 0x55, 0xe5, 0x7c, 0x60, 0xb1, 0xfe, 0xf2, 0x41, 0xb5, 0x2e, 0x17, 0xfa, 0xdc,
		0xba, 0xbc, 0x22, 0x4f, 0x05, 0xb7, 0xa8, 0xee, 0x1d, 0xee, 0xca, 0x45, 0x34, 0x03, 0x53, 0xec,
		0x16, 0xc2, 0x89, 0xe9, 0x01, 0xd1, 0x95, 0x55, 0x59, 0x0e, 0x1d, 0x61, 0x2c, 0x33, 0x7d, 0x82,
		0x2b, 0xab, 0x32, 0x5a, 0xdc, 0x80, 0x34, 0xcd, 0x2e, 0x84, 0xa0, 0xb8, 0x53, 0x59, 0xaf, 0xee,
		0x68, 0xb5, 0xfd, 0x83, 0xed, 0xda, 0x5e, 0x65, 0x47, 0x96, 0x42, 0x99, 0x5a, 0xfd, 0xb9, 0xc3,
		0x6d, 0xb5, 0xba, 0x29, 0x27, 0xa2, 0xb2, 0xfd, 0x6a, 0xe5, 0xa0, 0xba, 0x29, 0x27, 0x17, 0x0d,
		0x98, 0x1b, 0x55, 0x67, 0x46, 0xee, 0x8c, 0xc8, 0x12, 0x27, 0x4e, 0x59, 0x62, 0xca, 0x35, 0xb4,
		0xc4, 0x5f, 0x91, 0x60, 0x76, 0x44, 0xad, 0x1d, 0x79, 0x93, 0xe7, 0x21, 0xcd, 0x52, 0x94, 0x75,
		0x9f, 0x27, 0x47, 0x16, 0x6d, 0x9a, 0xb0, 0x43, 0x1d, 0x88, 0xe2, 0xa2, 0x1d, 0x38, 0x79, 0x4a,
		0x07, 0x26, 0x14, 0x43, 0x4e, 0xbe, 0x2e, 0x81, 0x72, 0x1a, 0x77, 0x4c, 0xa1, 0x48, 0xf4, 0x15,
		0x8a, 0x1b, 0x83, 0x0e, 0x5c, 0x3c, 0xfd, 0x19, 0x86, 0xbc, 0x78, 0x47, 0x82, 0x73, 0xa3, 0x07,
		0x95, 0x91, 0x3e, 0x7c, 0x02, 0x32, 0x1d, 0xec, 0x1f, 0x39, 0xa2, 0x59, 0x7f, 0x6c, 0x44, 0x0b,
		0x20, 0xea, 0xc1, 0x58, 0x71, 0x54, 0xb4, 0x87, 0x24, 0x4f, 0x9b, 0x36, 0x98, 0x37, 0x43, 0x9e,
		0x7e, 0x2e, 0x01, 0x0f, 0x8d, 0x24, 0x1f, 0xe9, 0xe8, 0xa3, 0x00, 0xa6, 0xdd, 0xed, 0xf9, 0xac,
		0x21, 0xb3, 0xfa, 0x94, 0xa3, 0x12, 0xba, 0xf7, 0x49, 0xed, 0xe9, 0xf9, 0x81, 0x3e, 0x49, 0xf5,
		0xc0, 0x44, 0xd4, 0xe0, 0x5a, 0xe8, 0x68, 0x8a, 0x3a, 0x5a, 0x3a, 0xe5, 0x49, 0x87, 0x7a, 0xdd,
		0xb3, 0x20, 0x1b, 0x96, 0x89, 0x6d, 0x5f, 0xf3, 0x7c, 0x17, 0xeb, 0x1d, 0xd3, 0x6e, 0xd3, 0x02,
		0x9c, 0x2d, 0xa7, 0x5b, 0xba, 0xe5, 0x61, 0x75, 0x9a, 0xa9, 0xeb, 0x42, 0x4b, 0x10, 0xb4, 0xcb,
		0xb8, 0x11, 0x44, 0xa6, 0x0f, 0xc1, 0xd4, 0x01, 0x62, 0xf1, 0xf3, 0x93, 0x90, 0x8f, 0x8c, 0x75,
		0xe8, 0x22, 0x14, 0x6e, 0xe9, 0x77, 0x74, 0x4d, 0x8c, 0xea, 0x2c, 0x12, 0x79, 0x22, 0xdb, 0xe7,
		0xe3, 0xfa, 0xb3, 0x30, 0x47, 0x4d, 0x9c, 0x9e, 0x8f, 0x5d, 0xcd, 0xb0, 0x74, 0xcf, 0xa3, 0x41,
		0xcb, 0x52, 0x53, 0x44, 0x74, 0x35, 0xa2, 0xda, 0x10, 0x1a, 0xb4, 0x06, 0xb3, 0x14, 0xd1, 0xe9,
		0x59, 0xbe, 0xd9, 0xb5, 0xb0, 0x46, 0x5e, 0x1e, 0x3c, 0x5a, 0x88, 0x03, 0xcf, 0x66, 0x88, 0xc5,
		0x2e, 0x37, 0x20, 0x1e, 0x79, 0x68, 0x0b, 0x1e, 0xa5, 0xb0, 0x36, 0xb6, 0xb1, 0xab, 0xfb, 0x58,
		0xc3, 0x3f, 0xdf, 0xd3, 0x2d, 0x4f, 0xd3, 0xed, 0xa6, 0x76, 0xa4, 0x7b, 0x47, 0xca, 0x5c, 0x94,
		0xe0, 0x3c, 0xb1, 0xdd, 0xe2, 0xa6, 0x55, 0x6a, 0x59, 0xb1, 0x9b, 0x37, 0x75, 0xef, 0x08, 0x95,
		0xe1, 0x1c, 0x25, 0xf2, 0x7c, 0xd7, 0xb4, 0xdb, 0x9a, 0x71, 0x84, 0x8d, 0xdb, 0x5a, 0xcf, 0x6f,
		0x5d, 0x53, 0x1e, 0x89, 0x32, 0x50, 0x27, 0xeb, 0xd4, 0x66, 0x83, 0x98, 0x1c, 0xfa, 0xad, 0x6b,
		0xa8, 0x0e, 0x05, 0xb2, 0x1e, 0x1d, 0xf3, 0x35, 0xac, 0xb5, 0x1c, 0x97, 0x36, 0x97, 0xe2, 0x88,
		0xcd, 0x1d, 0x09, 0xe2, 0x72, 0x8d, 0x03, 0x76, 0x9d, 0x26, 0x2e, 0xa7, 0xeb, 0xfb, 0xd5, 0xea,
		0xa6, 0x9a, 0x17, 0x2c, 0x2f, 0x38, 0x2e, 0xc9, 0xa9, 0xb6, 0x13, 0xc4, 0x38, 0xcf, 0x72, 0xaa,
		0xed, 0x88, 0x08, 0xaf, 0xc1, 0xac, 0x61, 0xb0, 0xc7, 0x36, 0x0d, 0x8d, 0x4f, 0xf9, 0x9e, 0x22,
		0xf7, 0xc5, 0xcb, 0x30, 0xb6, 0x98, 0x01, 0x4f, 0x73, 0x0f, 0x5d, 0x87, 0x87, 0xc2, 0x78, 0x45,
		0x81, 0x33, 0x43, 0x4f, 0x39, 0x08, 0x5d, 0x83, 0xd9, 0xee, 0xf1, 0x30, 0x10, 0xf5, 0xdd, 0xb1,
		0x7b, 0x3c, 0x08, 0x7b, 0x9c, 0xbe, 0xb9, 0xb9, 0xd8, 0xd0, 0x7d, 0xdc, 0x54, 0x1e, 0x8e, 0x5a,
		0x47, 0x14, 0xe8, 0x12, 0xc8, 0x86, 0xa1, 0x61, 0x5b, 0x6f, 0x58, 0x58, 0xd3, 0x5d, 0x6c, 0xeb,
		0x9e, 0x72, 0x21, 0x6a, 0x5c, 0x34, 0x8c, 0x2a, 0xd5, 0x56, 0xa8, 0x12, 0x3d, 0x05, 0x33, 0x4e,
		0xe3, 0x96, 0xc1, 0x92, 0x4b, 0xeb, 0xba, 0xb8, 0x65, 0xbe, 0xaa, 0x3c, 0x46, 0xc3, 0x34, 0x4d,
		0x14, 0x34, 0xb5, 0xf6, 0xa9, 0x18, 0x3d, 0x09, 0xb2, 0xe1, 0x1d, 0xe9, 0x6e, 0x97, 0x76, 0x77,
		0xaf, 0xab, 0x1b, 0x58, 0x79, 0x9c, 0x99, 0x32, 0xf9, 0x9e, 0x10, 0xa3, 0x97, 0x60, 0xae, 0x67,
		0x9b, 0xb6, 0x8f, 0xdd, 0xae, 0x8b, 0xc9, 0x90, 0xce, 0x76, 0x9a, 0xf2, 0x2f, 0x93, 0xa7, 0x8c,
		0xd9, 0x87, 0x51, 0x6b, 0xb6, 0xba, 0xea, 0x6c, 0x6f, 0x58, 0xb8, 0x58, 0x86, 0x42, 0x74, 0xd1,
		0x51, 0x0e, 0xd8, 0xb2, 0xcb, 0x12, 0xe9, 0xa1, 0x1b, 0xb5, 0x4d, 0xd2, 0xfd, 0x3e, 0x5d, 0x95,
		0x13, 0xa4, 0x0b, 0xef, 0x6c, 0x1f, 0x54, 0x35, 0xf5, 0x70, 0xef, 0x60, 0x7b, 0xb7, 0x2a, 0x27,
		0x9f, 0xca, 0x65, 0xbf, 0x3f, 0x29, 0xdf, 0xbd, 0x7b, 0xf7, 0x6e, 0x62, 0xf1, 0x5b, 0x09, 0x28,
		0xf6, 0x4f, 0xbe, 0xe8, 0x67, 0xe1, 0x61, 0xf1, 0x9a, 0xea, 0x61, 0x5f, 0x7b, 0xc5, 0x74, 0x69,
		0x1e, 0x76, 0x74, 0x36, 0x3b, 0x06, 0x21, 0x9c, 0xe3, 0x56, 0x75, 0xec, 0x7f, 0xca, 0x74, 0x49,
		0x96, 0x75, 0x74, 0x1f, 0xed, 0xc0, 0x05, 0xdb, 0xd1, 0x3c, 0x5f, 0xb7, 0x9b, 0xba, 0xdb, 0xd4,
		0xc2, 0x03, 0x02, 0x4d, 0x37, 0x0c, 0xec, 0x79, 0x0e, 0x6b, 0x01, 0x01, 0xcb, 0x47, 0x6c, 0xa7,
		0xce, 0x8d, 0xc3, 0xda, 0x58, 0xe1, 0xa6, 0x03, 0xcb, 0x9d, 0x3c, 0x6d, 0xb9, 0x1f, 0x81, 0x5c,
		0x47, 0xef, 0x6a, 0xd8, 0xf6, 0xdd, 0x63, 0x3a, 0xaf, 0x65, 0xd5, 0x6c, 0x47, 0xef, 0x56, 0xc9,
		0xf5, 0x8f, 0x6e, 0x0d, 0xa2, 0x71, 0xfc, 0x6e, 0x12, 0x0a, 0xd1, 0x99, 0x8d, 0x8c, 0xc0, 0x06,
		0xad, 0xcf, 0x12, 0xdd, 0xbe, 0x1f, 0x7d, 0xe0, 0x84, 0xb7, 0xbc, 0x41, 0x0a, 0x77, 0x39, 0xc3,
		0x26, 0x29, 0x95, 0x21, 0x49, 0xd3, 0x24, 0x1b, 0x16, 0xb3, 0xf9, 0x3c, 0xab, 0xf2, 0x2b, 0xb4,
		0x05, 0x99, 0x5b, 0x1e, 0xe5, 0xce, 0x50, 0xee, 0xc7, 0x1e, 0xcc, 0xfd, 0x62, 0x9d, 0x92, 0xe7,
		0x5e, 0xac, 0x6b, 0x7b, 0x35, 0x75, 0xb7, 0xb2, 0xa3, 0x72, 0x38, 0x3a, 0x0f, 0x29, 0x4b, 0x7f,
		0xed, 0xb8, 0xbf, 0xc4, 0x53, 0xd1, 0xb8, 0x81, 0x3f, 0x0f, 0xa9, 0x57, 0xb0, 0x7e, 0xbb, 0xbf,
		0xb0, 0x52, 0xd1, 0x8f, 0x30, 0xf5, 0x2f, 0x41, 0x9a, 0xc6, 0x0b, 0x01, 0xf0, 0x88, 0xc9, 0x13,
		0x28, 0x0b, 0xa9, 0x8d, 0x9a, 0x4a, 0xd2, 0x5f, 0x86, 0x02, 0x93, 0x6a, 0xfb, 0xdb, 0xd5, 0x8d,
		0xaa, 0x9c, 0x58, 0x5c, 0x83, 0x0c, 0x0b, 0x02, 0xd9, 0x1a, 0x41, 0x18, 0xe4, 0x09, 0x7e, 0xc9,
		0x39, 0x24, 0xa1, 0x3d, 0xdc, 0x5d, 0xaf, 0xaa, 0x72, 0x22, 0xba, 0xbc, 0x1e, 0x14, 0xa2, 0xe3,
		0xda, 0x8f, 0x27, 0xa7, 0xfe, 0x56, 0x82, 0x7c, 0x64, 0xfc, 0x22, 0x8d, 0x5f, 0xb7, 0x2c, 0xe7,
		0x15, 0x4d, 0xb7, 0x4c, 0xdd, 0xe3, 0x49, 0x01, 0x54, 0x54, 0x21, 0x92, 0x71, 0x17, 0xed, 0xc7,
		0xe2, 0xfc, 0x5b, 0x12, 0xc8, 0x83, 0xa3, 0xdb, 0x80, 0x83, 0xd2, 0x4f, 0xd4, 0xc1, 0x37, 0x25,
		0x28, 0xf6, 0xcf, 0x6b, 0x03, 0xee, 0x5d, 0xfc, 0x89, 0xba, 0xf7, 0x25, 0x09, 0xa6, 0xfa, 0xa6,
		0xb4, 0x9f, 0x2a, 0xef, 0xde, 0x48, 0xc2, 0xec, 0x08, 0x1c, 0xaa, 0xf0, 0x71, 0x96, 0x4d, 0xd8,
		0xcf, 0x8c, 0x73, 0xaf, 0x65, 0xd2, 0x2d, 0xf7, 0x75, 0xd7, 0xe7, 0xd3, 0xef, 0x93, 0x20, 0x9b,
		0x4d, 0x6c, 0xfb, 0x66, 0xcb, 0xc4, 0x2e, 0x7f, 0x05, 0x67, 0x33, 0xee, 0x74, 0x28, 0x67, 0x6f,
		0xe1, 0x3f, 0x03, 0xa8, 0xeb, 0x78, 0xa6, 0x6f, 0xde, 0xc1, 0x9a, 0x69, 0x8b, 0xf7, 0x75, 0x32,
		0xf3, 0xa6, 0x54, 0x59, 0x68, 0xb6, 0x6d, 0x3f, 0xb0, 0xb6, 0x71, 0x5b, 0x1f, 0xb0, 0x26, 0xb5,
		0x2f, 0xa9, 0xca, 0x42, 0x13, 0x58, 0x5f, 0x84, 0x42, 0xd3, 0xe9, 0x91, 0xf1, 0x81, 0xd9, 0x91,
		0x52, 0x2b, 0xa9, 0x79, 0x26, 0x0b, 0x4c, 0xf8, 0x7c, 0x17, 0x1e, 0x14, 0x14, 0xd4, 0x3c, 0x93,
		0x31, 0x93, 0x27, 0x60, 0x5a, 0x6f, 0xb7, 0x5d, 0x42, 0x2e, 0x88, 0xd8, 0xd0, 0x5a, 0x0c, 0xc4,
		0xd4, 0x70, 0xfe, 0x45, 0xc8, 0x8a, 0x38, 0x90, 0x6e, 0x46, 0x22, 0xa1, 0x75, 0xd9, 0x71, 0x4d,
		0x62, 0x29, 0xa7, 0x66, 0x6d, 0xa1, 0xbc, 0x08, 0x05, 0xd3, 0xd3, 0xc2, 0x73, 0xc3, 0xc4, 0x42,
		0x62, 0x29, 0xab, 0xe6, 0x4d, 0x2f, 0x38, 0x28, 0x5a, 0x7c, 0x27, 0x01, 0xc5, 0xfe, 0x73, 0x4f,
		0xb4, 0x09, 0x59, 0xcb, 0x31, 0x74, 0x9a, 0x08, 0xec, 0xd0, 0x7d, 0x29, 0xe6, 0xa8, 0x74, 0x79,
		0x87, 0xdb, 0xab, 0x01, 0x72, 0xfe, 0x1f, 0x25, 0xc8, 0x0a, 0x31, 0x3a, 0x07, 0xa9, 0xae, 0xee,
		0x1f, 0x51, 0xba, 0xf4, 0x7a, 0x42, 0x96, 0x54, 0x7a, 0x4d, 0xe4, 0x5e, 0x57, 0xb7, 0x69, 0x0a,
		0x70, 0x39, 0xb9, 0x26, 0xeb, 0x6a, 0x61, 0xbd, 0x49, 0xc7, 0x61, 0xa7, 0xd3, 0xc1, 0xb6, 0xef,
		0x89, 0x75, 0xe5, 0xf2, 0x0d, 0x2e, 0x46, 0x4f, 0xc3, 0x8c, 0xef, 0xea, 0xa6, 0xd5, 0x67, 0x9b,
		0xa2, 0xb6, 0xb2, 0x50, 0x04, 0xc6, 0x65, 0x38, 0x2f, 0x78, 0x9b, 0xd8, 0xd7, 0x8d, 0x23, 0xdc,
		0x0c, 0x41, 0x19, 0x7a, 0xa8, 0xf6, 0x30, 0x37, 0xd8, 0xe4, 0x7a, 0x81, 0x5d, 0xfc, 0x8e, 0x04,
		0x33, 0x62, 0x80, 0x6f, 0x06, 0xc1, 0xda, 0x05, 0xd0, 0x6d, 0xdb, 0xf1, 0xa3, 0xe1, 0x1a, 0x4e,
		0xe5, 0x21, 0xdc, 0x72, 0x25, 0x00, 0xa9, 0x11, 0x82, 0xf9, 0x0e, 0x40, 0xa8, 0x39, 0x35, 0x6c,
		0x17, 0x20, 0xcf, 0x0f, 0xb5, 0xe9, 0x97, 0x11, 0xf6, 0xd6, 0x07, 0x4c, 0x44, 0x26, 0x7d, 0x34,
		0x07, 0xe9, 0x06, 0x6e, 0x9b, 0x36, 0x3f, 0x6a, 0x63, 0x17, 0xe2, 0x00, 0x2f, 0x15, 0x1c, 0xe0,
		0xad, 0x7f, 0x06, 0x66, 0x0d, 0xa7, 0x33, 0xe8, 0xee, 0xba, 0x3c, 0xf0, 0xe6, 0xe9, 0xdd, 0x94,
		0x3e, 0x0d, 0xe1, 0x74, 0xf6, 0xb6, 0x24, 0x7d, 0x25, 0x91, 0xdc, 0xda, 0x5f, 0xff, 0x5a, 0x62,
		0x7e, 0x8b, 0x41, 0xf7, 0xc5, 0x93, 0xaa, 0xb8, 0x65, 0x61, 0x83, 0x78, 0x0f, 0x6f, 0x7f, 0x0c,
		0x9e, 0x69, 0x9b, 0xfe, 0x51, 0xaf, 0xb1, 0x6c, 0x38, 0x9d, 0x4b, 0x6d, 0xa7, 0xed, 0x84, 0x1f,
		0x83, 0xc8, 0x15, 0xbd, 0xa0, 0xff, 0xf1, 0x0f, 0x42, 0xb9, 0x40, 0x3a, 0x1f, 0xfb, 0xf5, 0xa8,
		0xbc, 0x07, 0xb3, 0xdc, 0x58, 0xa3, 0x27, 0xd2, 0x6c, 0x0e, 0x47, 0x0f, 0x3c, 0x95, 0x50, 0xbe,
		0xf1, 0x1e, 0xed, 0x74, 0xea, 0x0c, 0x87, 0x12, 0x1d, 0x9b, 0xd4, 0xcb, 0x2a, 0x3c, 0xd4, 0xc7,
		0xc7, 0xb6, 0x26, 0x76, 0x63, 0x18, 0xbf, 0xc5, 0x19, 0x67, 0x23, 0x8c, 0x75, 0x0e, 0x2d, 0x6f,
		0xc0, 0xd4, 0x59, 0xb8, 0xfe, 0x9e, 0x73, 0x15, 0x70, 0x94, 0x64, 0x0b, 0xa6, 0x29, 0x89, 0xd1,
		0xf3, 0x7c, 0xa7, 0x43, 0xeb, 0xde, 0x83, 0x69, 0xfe, 0xe1, 0x3d, 0xb6, 0x57, 0x8a, 0x04, 0xb6,
		0x11, 0xa0, 0xca, 0x65, 0xa0, 0x87, 0xf0, 0x4d, 0x6c, 0x58, 0x31, 0x0c, 0xef, 0x72, 0x47, 0x02,
		0xfb, 0xf2, 0x27, 0x61, 0x8e, 0xfc, 0x4f, 0xcb, 0x52, 0xd4, 0x93, 0xf8, 0x33, 0x18, 0xe5, 0x3b,
		0xaf, 0xb3, 0xed, 0x38, 0x1b, 0x10, 0x44, 0x7c, 0x8a, 0xac, 0x62, 0x1b, 0xfb, 0x3e, 0x76, 0x3d,
		0x4d, 0xb7, 0x46, 0xb9, 0x17, 0x79, 0x83, 0x55, 0xbe, 0xf8, 0x7e, 0xff, 0x2a, 0x6e, 0x31, 0x64,
		0xc5, 0xb2, 0xca, 0x87, 0xf0, 0xf0, 0x88, 0xac, 0x18, 0x83, 0xf3, 0x0d, 0xce, 0x39, 0x37, 0x94,
		0x19, 0x84, 0x76, 0x1f, 0x84, 0x3c, 0x58, 0xcb, 0x31, 0x38, 0xbf, 0xc4, 0x39, 0x11, 0xc7, 0x8a,
		0x25, 0x25, 0x8c, 0x2f, 0xc2, 0xcc, 0x1d, 0xec, 0x36, 0x1c, 0x8f, 0x1f, 0x1c, 0x8c, 0x41, 0xf7,
		0x26, 0xa7, 0x9b, 0xe6, 0x40, 0x7a, 0x8c, 0x40, 0xb8, 0xae, 0x43, 0xb6, 0xa5, 0x1b, 0x78, 0x0c,
		0x8a, 0x2f, 0x73, 0x8a, 0x49, 0x62, 0x4f, 0xa0, 0x15, 0x28, 0xb4, 0x1d, 0xde, 0x99, 0xe2, 0xe1,
		0x6f, 0x71, 0x78, 0x5e, 0x60, 0x38, 0x45, 0xd7, 0xe9, 0xf6, 0x2c, 0xd2, 0xb6, 0xe2, 0x29, 0x7e,
		0x57, 0x50, 0x08, 0x0c, 0xa7, 0x38, 0x43, 0x58, 0xdf, 0x16, 0x14, 0x5e, 0x24, 0x9e, 0xcf, 0x43,
		0xde, 0xb1, 0xad, 0x63, 0xc7, 0x1e, 0xc7, 0x89, 0xdf, 0xe3, 0x0c, 0xc0, 0x21, 0x84, 0xe0, 0x06,
		0xe4, 0xc6, 0x5d, 0x88, 0xdf, 0x7f, 0x5f, 0x6c, 0x0f, 0xb1, 0x02, 0x5b, 0x30, 0x2d, 0x0a, 0x94,
		0xe9, 0xd8, 0x63, 0x50, 0xfc, 0x01, 0xa7, 0x28, 0x46, 0x60, 0xfc, 0x31, 0x7c, 0xec, 0xf9, 0x6d,
		0x3c, 0x0e, 0xc9, 0x3b, 0xe2, 0x31, 0x38, 0x84, 0x87, 0xb2, 0x81, 0x6d, 0xe3, 0x68, 0x3c, 0x86,
		0xaf, 0x8a, 0x50, 0x0a, 0x0c, 0xa1, 0xd8, 0x80, 0xa9, 0x8e, 0xee, 0x7a, 0x47, 0xba, 0x35, 0xd6,
		0x72, 0xfc, 0x21, 0xe7, 0x28, 0x04, 0x20, 0x1e, 0x91, 0x9e, 0x7d, 0x16, 0x9a, 0xaf, 0x89, 0x88,
		0x44, 0x60, 0x7c, 0xeb, 0x79, 0x3e, 0x3d, 0x9b, 0x39, 0x0b, 0xdb, 0x1f, 0x89, 0xad, 0xc7, 0xb0,
		0xbb, 0x51, 0xc6, 0x1b, 0x90, 0xf3, 0xcc, 0xd7, 0xc6, 0xa2, 0xf9, 0x63, 0xb1, 0xd2, 0x14, 0x40,
		0xc0, 0x2f, 0xc3, 0xf9, 0x91, 0x6d, 0x62, 0x0c, 0xb2, 0x3f, 0xe1, 0x64, 0xe7, 0x46, 0xb4, 0x0a,
		0x5e, 0x12, 0xce, 0x4a, 0xf9, 0xa7, 0xa2, 0x24, 0xe0, 0x01, 0xae, 0x7d, 0x32, 0xd9, 0x7b, 0x7a,
		0xeb, 0x6c, 0x51, 0xfb, 0x33, 0x11, 0x35, 0x86, 0xed, 0x8b, 0xda, 0x01, 0x9c, 0xe3, 0x8c, 0x67,
		0x5b, 0xd7, 0xaf, 0x8b, 0xc2, 0xca, 0xd0, 0x87, 0xfd, 0xab, 0xfb, 0x19, 0x98, 0x0f, 0xc2, 0x29,
		0x86, 0x52, 0x4f, 0xeb, 0xe8, 0xdd, 0x31, 0x98, 0xbf, 0xc1, 0x99, 0x45, 0xc5, 0x0f, 0xa6, 0x5a,
		0x6f, 0x57, 0xef, 0x12, 0xf2, 0x97, 0x40, 0x11, 0xe4, 0x3d, 0xdb, 0xc5, 0x86, 0xd3, 0xb6, 0xcd,
		0xd7, 0x70, 0x73, 0x0c, 0xea, 0x3f, 0x1f, 0x58, 0xaa, 0xc3, 0x08, 0x9c, 0x30, 0x6f, 0x83, 0x1c,
		0xcc, 0x2a, 0x9a, 0xd9, 0xe9, 0x3a, 0xae, 0x1f, 0xc3, 0xf8, 0x17, 0x62, 0xa5, 0x02, 0xdc, 0x36,
		0x85, 0x95, 0xab, 0x50, 0xa4, 0x97, 0xe3, 0xa6, 0xe4, 0x5f, 0x72, 0xa2, 0xa9, 0x10, 0xc5, 0x0b,
		0x87, 0xe1, 0x74, 0xba, 0xba, 0x3b, 0x4e, 0xfd, 0xfb, 0x2b, 0x51, 0x38, 0x38, 0x84, 0x17, 0x0e,
		0xff, 0xb8, 0x8b, 0x49, 0xb7, 0x1f, 0x83, 0xe1, 0x9b, 0xa2, 0x70, 0x08, 0x0c, 0xa7, 0x10, 0x03,
		0xc3, 0x18, 0x14, 0x7f, 0x2d, 0x28, 0x04, 0x86, 0xed, 0x81, 0xe9, 0x81, 0x79, 0x00, 0xc5, 0x7d,
		0x7e, 0x57, 0x3e, 0xfb, 0x21, 0xaf, 0x1c, 0xfd, 0xe3, 0x40, 0x79, 0x87, 0x2c, 0x52, 0x7f, 0xd3,
		0x8e, 0x27, 0x7b, 0xfd, 0xc3, 0x60, 0x9d, 0xfa, 0x7a, 0x76, 0xf9, 0x05, 0x98, 0xea, 0x6b, 0xd8,
		0xf1, 0x54, 0xbf, 0xc0, 0xa9, 0x0a, 0xd1, 0x7e, 0x5d, 0x5e, 0x83, 0x14, 0x69, 0xbe, 0xf1, 0xf0,
		0x5f, 0xe4, 0x70, 0x6a, 0x5e, 0xfe, 0x38, 0x64, 0x45, 0xd3, 0x8d, 0x87, 0xfe, 0x12, 0x87, 0x06,
		0x10, 0x02, 0x17, 0x0d, 0x37, 0x1e, 0xfe, 0xcb, 0x02, 0x2e, 0x20, 0x04, 0x3e, 0x7e, 0x08, 0xff,
		0xee, 0xf3, 0x29, 0x5e, 0x34, 0x45, 0xec, 0x6e, 0xc0, 0x24, 0xef, 0xb4, 0xf1, 0xe8, 0xcf, 0xf1,
		0x9b, 0x0b, 0x44, 0xf9, 0x2a, 0xa4, 0xc7, 0x0c, 0xf8, 0xaf, 0x70, 0x28, 0xb3, 0x2f, 0x6f, 0x40,
		0x3e, 0xd2, 0x5d, 0xe3, 0xe1, 0xbf, 0xca, 0xe1, 0x51, 0x14, 0x71, 0x9d, 0x77, 0xd7, 0x78, 0x82,
		0x5f, 0x13, 0xae, 0x73, 0x04, 0x09, 0x9b, 0x68, 0xac, 0xf1, 0xe8, 0x5f, 0x17, 0x51, 0x17, 0x90,
		0xf2, 0xf3, 0x90, 0x0b, 0x8a, 0x65, 0x3c, 0xfe, 0x37, 0x38, 0x3e, 0xc4, 0x90, 0x08, 0x44, 0x8a,
		0x75, 0x3c, 0xc5, 0x6f, 0x8a, 0x08, 0x44, 0x50, 0x64, 0x1b, 0x0d, 0x36, 0xe0, 0x78, 0xa6, 0xdf,
		0x12, 0xdb, 0x68, 0xa0, 0xff, 0x92, 0xd5, 0xa4, 0x35, 0x2b, 0x9e, 0xe2, 0xb7, 0xc5, 0x6a, 0x52,
		0x7b, 0xe2, 0xc6, 0x60, 0x47, 0x8b, 0xe7, 0xf8, 0x1d, 0xe1, 0xc6, 0x40, 0x43, 0x2b, 0xef, 0x03,
		0x1a, 0xee, 0x66, 0xf1, 0x7c, 0x5f, 0xe0, 0x7c, 0x33, 0x43, 0xcd, 0xac, 0xfc, 0x29, 0x38, 0x37,
		0xba, 0x93, 0xc5, 0xb3, 0x7e, 0xf1, 0xc3, 0x81, 0x77, 0x8f, 0x68, 0x23, 0x2b, 0x1f, 0x84, 0xef,
		0x1e, 0xd1, 0x2e, 0x16, 0x4f, 0xfb, 0xc6, 0x87, 0xfd, 0xaf, 0xa6, 0xd1, 0x26, 0x56, 0xae, 0x00,
		0x84, 0x0d, 0x24, 0x9e, 0xeb, 0x4d, 0xce, 0x15, 0x01, 0x91, 0xad, 0xc1, 0xfb, 0x47, 0x3c, 0xfe,
		0xcb, 0x62, 0x6b, 0x70, 0x04, 0xd9, 0x1a, 0xa2, 0x75, 0xc4, 0xa3, 0xdf, 0x12, 0x5b, 0x43, 0x40,
		0xca, 0x37, 0x20, 0x6b, 0xf7, 0x2c, 0x8b, 0xe4, 0x16, 0x7a, 0xf0, 0x2f, 0x62, 0x94, 0x7f, 0xbd,
		0xcf, 0xc1, 0x02, 0x50, 0x5e, 0x83, 0x34, 0xee, 0x34, 0x70, 0x33, 0x0e, 0xf9, 0x6f, 0xf7, 0x45,
		0x3d, 0x21, 0xd6, 0xe5, 0xe7, 0x01, 0xd8, 0x9b, 0x2f, 0xfd, 0x20, 0x12, 0x83, 0xfd, 0xf7, 0xfb,
		0xfc, 0x63, 0x7b, 0x08, 0x09, 0x09, 0xd8, 0xa7, 0xfb, 0x07, 0x13, 0xbc, 0xdf, 0x4f, 0x40, 0xdf,
		0x96, 0xaf, 0xc3, 0xe4, 0x2d, 0xcf, 0xb1, 0x7d, 0xbd, 0x1d, 0x87, 0xfe, 0x0f, 0x8e, 0x16, 0xf6,
		0x24, 0x60, 0x1d, 0xc7, 0xc5, 0xbe, 0xde, 0xf6, 0xe2, 0xb0, 0xff, 0xc9, 0xb1, 0x01, 0x80, 0x80,
		0x0d, 0xdd, 0xf3, 0xc7, 0x79, 0xee, 0xff, 0x12, 0x60, 0x01, 0x20, 0x4e, 0x93, 0xff, 0x6f, 0xe3,
		0xe3, 0x38, 0xec, 0x07, 0xc2, 0x69, 0x6e, 0x5f, 0xfe, 0x38, 0xe4, 0xc8, 0xbf, 0xec, 0x07, 0x28,
		0x31, 0xe0, 0xff, 0xe6, 0xe0, 0x10, 0x41, 0xee, 0xec, 0xf9, 0x4d, 0xdf, 0x8c, 0x0f, 0xf6, 0xff,
		0xf0, 0x95, 0x16, 0xf6, 0xe5, 0x0a, 0xe4, 0x3d, 0xbf, 0xd9, 0xec, 0xb9, 0xec, 0x24, 0x2e, 0x06,
		0xfe, 0xbf, 0xf7, 0x83, 0x37, 0xd2, 0x00, 0xb3, 0x7e, 0x71, 0xf4, 0xe1, 0x1a, 0x6c, 0x39, 0x5b,
		0x0e, 0x3b, 0x56, 0x83, 0xb7, 0xd3, 0xb0, 0x68, 0x38, 0x9d, 0x86, 0xe3, 0x5d, 0x62, 0x05, 0x25,
		0x52, 0x8c, 0x2e, 0x39, 0x36, 0x47, 0xa1, 0xa4, 0x63, 0xe3, 0xf9, 0xb3, 0x9d, 0xa5, 0x2d, 0x9e,
		0x87, 0x74, 0xbd, 0xd7, 0x68, 0x1c, 0x23, 0x19, 0x92, 0x5e, 0xaf, 0xc1, 0x7f, 0x2a, 0x41, 0xfe,
		0x5d, 0xfc, 0x6e, 0x12, 0xf2, 0x75, 0xbd, 0xd3, 0xb5, 0x70, 0xcd, 0xc6, 0xb5, 0x16, 0x52, 0x20,
		0x43, 0x9f, 0xe6, 0x39, 0x6a, 0x24, 0xdd, 0x9c, 0x50, 0xf9, 0x75, 0xa0, 0x59, 0xa1, 0x67, 0x8c,
		0x89, 0x40, 0xb3, 0x12, 0x68, 0x2e, 0xb3, 0x23, 0xc6, 0x40, 0x73, 0x39, 0xd0, 0xac, 0xd2, 0x83,
		0xc6, 0x64, 0xa0, 0x59, 0x0d, 0x34, 0x6b, 0xf4, 0x20, 0x7d, 0x2a, 0xd0, 0xac, 0x05, 0x9a, 0x2b,
		0xf4, 0xe8, 0x3c, 0x15, 0x68, 0xae, 0x04, 0x9a, 0xab, 0xf4, 0xc4, 0x7c, 0x26, 0xd0, 0x5c, 0x0d,
		0x34, 0xd7, 0xe8, 0x29, 0x39, 0x0a, 0x34, 0xd7, 0x02, 0xcd, 0x75, 0xfa, 0x73, 0x88, 0xc9, 0x40,
		0x73, 0x1d, 0xcd, 0xc3, 0x24, 0x7b, 0xb2, 0x67, 0xe9, 0x57, 0xc8, 0xe9, 0x9b, 0x13, 0xaa, 0x10,
		0x84, 0xba, 0xe7, 0xe8, 0x4f, 0x1e, 0x32, 0xa1, 0xee, 0xb9, 0x50, 0xb7, 0x42, 0x7f, 0xfb, 0x2b,
		0x87, 0xba, 0x95, 0x50, 0x77, 0x59, 0x99, 0x22, 0x49, 0x10, 0xea, 0x2e, 0x87, 0xba, 0x55, 0xa5,
		0x48, 0xe2, 0x1f, 0xea, 0x56, 0x43, 0xdd, 0x9a, 0x32, 0xbd, 0x20, 0x2d, 0x15, 0x42, 0xdd, 0x1a,
		0x7a, 0x06, 0xf2, 0x5e, 0xaf, 0xa1, 0xf1, 0x8f, 0xe6, 0xf4, 0xa7, 0x15, 0xf9, 0x15, 0x58, 0x26,
		0x19, 0x41, 0x17, 0xf5, 0xe6, 0x84, 0x0a, 0x5e, 0xaf, 0xc1, 0xab, 0xe4, 0x7a, 0x01, 0xe8, 0x09,
		0x80, 0x46, 0x7f, 0x53, 0xb8, 0xbe, 0xf9, 0xee, 0xbd, 0xd2, 0xc4, 0xb7, 0xef, 0x95, 0x26, 0xfe,
		0xe9, 0x5e, 0x69, 0xe2, 0x7b, 0xf7, 0x4a, 0xd2, 0x07, 0xf7, 0x4a, 0xd2, 0x0f, 0xee, 0x95, 0xa4,
		0xbb, 0x27, 0x25, 0xe9, 0xab, 0x27, 0x25, 0xe9, 0xeb, 0x27, 0x25, 0xe9, 0x6f, 0x4e, 0x4a, 0xd2,
		0xbb, 0x27, 0xa5, 0x89, 0x6f, 0x9f, 0x94, 0x26, 0xbe, 0x77, 0x52, 0x92, 0xbe, 0x7f, 0x52, 0x9a,
		0xf8, 0xe0, 0xa4, 0x24, 0xfd, 0xe0, 0xa4, 0x34, 0x71, 0xf7, 0x9f, 0x4b, 0x52, 0x23, 0x43, 0xd3,
		0xe8, 0xf2, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0xdb, 0x7c, 0xac, 0xe5, 0xca, 0x2f, 0x00, 0x00,
	}
	r := bytes.NewReader(gzipped)
	gzipr, err := compress_gzip.NewReader(r)
	if err != nil {
		panic(err)
	}
	ungzipped, err := io_ioutil.ReadAll(gzipr)
	if err != nil {
		panic(err)
	}
	if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil {
		panic(err)
	}
	return d
}
func (this *Subby) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*Subby)
	if !ok {
		that2, ok := that.(Subby)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *Subby")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *Subby but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *Subby but is not nil && this == nil")
	}
	if this.Sub != that1.Sub {
		return fmt.Errorf("Sub this(%v) Not Equal that(%v)", this.Sub, that1.Sub)
	}
	return nil
}
func (this *Subby) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*Subby)
	if !ok {
		that2, ok := that.(Subby)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Sub != that1.Sub {
		return false
	}
	return true
}
func (this *SampleOneOf) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf)
	if !ok {
		that2, ok := that.(SampleOneOf)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf but is not nil && this == nil")
	}
	if that1.TestOneof == nil {
		if this.TestOneof != nil {
			return fmt.Errorf("this.TestOneof != nil && that1.TestOneof == nil")
		}
	} else if this.TestOneof == nil {
		return fmt.Errorf("this.TestOneof == nil && that1.TestOneof != nil")
	} else if err := this.TestOneof.VerboseEqual(that1.TestOneof); err != nil {
		return err
	}
	return nil
}
func (this *SampleOneOf_Field1) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field1)
	if !ok {
		that2, ok := that.(SampleOneOf_Field1)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field1")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field1 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field1 but is not nil && this == nil")
	}
	if this.Field1 != that1.Field1 {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	return nil
}
func (this *SampleOneOf_Field2) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field2)
	if !ok {
		that2, ok := that.(SampleOneOf_Field2)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field2")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field2 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field2 but is not nil && this == nil")
	}
	if this.Field2 != that1.Field2 {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	return nil
}
func (this *SampleOneOf_Field3) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field3)
	if !ok {
		that2, ok := that.(SampleOneOf_Field3)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field3")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field3 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field3 but is not nil && this == nil")
	}
	if this.Field3 != that1.Field3 {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3)
	}
	return nil
}
func (this *SampleOneOf_Field4) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field4)
	if !ok {
		that2, ok := that.(SampleOneOf_Field4)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field4")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field4 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field4 but is not nil && this == nil")
	}
	if this.Field4 != that1.Field4 {
		return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4)
	}
	return nil
}
func (this *SampleOneOf_Field5) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field5)
	if !ok {
		that2, ok := that.(SampleOneOf_Field5)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field5")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field5 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field5 but is not nil && this == nil")
	}
	if this.Field5 != that1.Field5 {
		return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", this.Field5, that1.Field5)
	}
	return nil
}
func (this *SampleOneOf_Field6) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field6)
	if !ok {
		that2, ok := that.(SampleOneOf_Field6)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field6")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field6 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field6 but is not nil && this == nil")
	}
	if this.Field6 != that1.Field6 {
		return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6)
	}
	return nil
}
func (this *SampleOneOf_Field7) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field7)
	if !ok {
		that2, ok := that.(SampleOneOf_Field7)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field7")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field7 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field7 but is not nil && this == nil")
	}
	if this.Field7 != that1.Field7 {
		return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", this.Field7, that1.Field7)
	}
	return nil
}
func (this *SampleOneOf_Field8) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field8)
	if !ok {
		that2, ok := that.(SampleOneOf_Field8)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field8")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field8 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field8 but is not nil && this == nil")
	}
	if this.Field8 != that1.Field8 {
		return fmt.Errorf("Field8 this(%v) Not Equal that(%v)", this.Field8, that1.Field8)
	}
	return nil
}
func (this *SampleOneOf_Field9) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field9)
	if !ok {
		that2, ok := that.(SampleOneOf_Field9)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field9")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field9 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field9 but is not nil && this == nil")
	}
	if this.Field9 != that1.Field9 {
		return fmt.Errorf("Field9 this(%v) Not Equal that(%v)", this.Field9, that1.Field9)
	}
	return nil
}
func (this *SampleOneOf_Field10) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field10)
	if !ok {
		that2, ok := that.(SampleOneOf_Field10)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field10")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field10 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field10 but is not nil && this == nil")
	}
	if this.Field10 != that1.Field10 {
		return fmt.Errorf("Field10 this(%v) Not Equal that(%v)", this.Field10, that1.Field10)
	}
	return nil
}
func (this *SampleOneOf_Field11) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field11)
	if !ok {
		that2, ok := that.(SampleOneOf_Field11)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field11")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field11 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field11 but is not nil && this == nil")
	}
	if this.Field11 != that1.Field11 {
		return fmt.Errorf("Field11 this(%v) Not Equal that(%v)", this.Field11, that1.Field11)
	}
	return nil
}
func (this *SampleOneOf_Field12) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field12)
	if !ok {
		that2, ok := that.(SampleOneOf_Field12)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field12")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field12 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field12 but is not nil && this == nil")
	}
	if this.Field12 != that1.Field12 {
		return fmt.Errorf("Field12 this(%v) Not Equal that(%v)", this.Field12, that1.Field12)
	}
	return nil
}
func (this *SampleOneOf_Field13) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field13)
	if !ok {
		that2, ok := that.(SampleOneOf_Field13)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field13")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field13 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field13 but is not nil && this == nil")
	}
	if this.Field13 != that1.Field13 {
		return fmt.Errorf("Field13 this(%v) Not Equal that(%v)", this.Field13, that1.Field13)
	}
	return nil
}
func (this *SampleOneOf_Field14) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field14)
	if !ok {
		that2, ok := that.(SampleOneOf_Field14)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field14")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field14 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field14 but is not nil && this == nil")
	}
	if this.Field14 != that1.Field14 {
		return fmt.Errorf("Field14 this(%v) Not Equal that(%v)", this.Field14, that1.Field14)
	}
	return nil
}
func (this *SampleOneOf_Field15) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_Field15)
	if !ok {
		that2, ok := that.(SampleOneOf_Field15)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_Field15")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_Field15 but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_Field15 but is not nil && this == nil")
	}
	if !bytes.Equal(this.Field15, that1.Field15) {
		return fmt.Errorf("Field15 this(%v) Not Equal that(%v)", this.Field15, that1.Field15)
	}
	return nil
}
func (this *SampleOneOf_SubMessage) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*SampleOneOf_SubMessage)
	if !ok {
		that2, ok := that.(SampleOneOf_SubMessage)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *SampleOneOf_SubMessage")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *SampleOneOf_SubMessage but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *SampleOneOf_SubMessage but is not nil && this == nil")
	}
	if !this.SubMessage.Equal(that1.SubMessage) {
		return fmt.Errorf("SubMessage this(%v) Not Equal that(%v)", this.SubMessage, that1.SubMessage)
	}
	return nil
}
func (this *SampleOneOf) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*SampleOneOf)
	if !ok {
		that2, ok := that.(SampleOneOf)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if that1.TestOneof == nil {
		if this.TestOneof != nil {
			return false
		}
	} else if this.TestOneof == nil {
		return false
	} else if !this.TestOneof.Equal(that1.TestOneof) {
		return false
	}
	return true
}
func (this *SampleOneOf_Field1) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*SampleOneOf_Field1)
	if !ok {
		that2, ok := that.(SampleOneOf_Field1)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field1 != that1.Field1 {
		return false
	}
	return true
}
func (this *SampleOneOf_Field2) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*SampleOneOf_Field2)
	if !ok {
		that2, ok := that.(SampleOneOf_Field2)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field2 != that1.Field2 {
		return false
	}
	return true
}
func (this *SampleOneOf_Field3) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*SampleOneOf_Field3)
	if !ok {
		that2, ok := that.(SampleOneOf_Field3)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field3 != that1.Field3 {
		return false
	}
	return true
}
func (this *SampleOneOf_Field4) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*SampleOneOf_Field4)
	if !ok {
		that2, ok := that.(SampleOneOf_Field4)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field4 != that1.Field4 {
		return false
	}
	return true
}
func (this *SampleOneOf_Field5) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*SampleOneOf_Field5)
	if !ok {
		that2, ok := that.(SampleOneOf_Field5)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field5 != that1.Field5 {
		return false
	}
	return true
}
func (this *SampleOneOf_Field6) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*SampleOneOf_Field6)
	if !ok {
		that2, ok := that.(SampleOneOf_Field6)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field6 != that1.Field6 {
		return false
	}
	return true
}
func (this *SampleOneOf_Field7) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*SampleOneOf_Field7)
	if !ok {
		that2, ok := that.(SampleOneOf_Field7)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field7 != that1.Field7 {
		return false
	}
	return true
}
func (this *SampleOneOf_Field8) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*SampleOneOf_Field8)
	if !ok {
		that2, ok := that.(SampleOneOf_Field8)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field8 != that1.Field8 {
		return false
	}
	return true
}
func (this *SampleOneOf_Field9) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*SampleOneOf_Field9)
	if !ok {
		that2, ok := that.(SampleOneOf_Field9)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field9 != that1.Field9 {
		return false
	}
	return true
}
func (this *SampleOneOf_Field10) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*SampleOneOf_Field10)
	if !ok {
		that2, ok := that.(SampleOneOf_Field10)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field10 != that1.Field10 {
		return false
	}
	return true
}
func (this *SampleOneOf_Field11) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*SampleOneOf_Field11)
	if !ok {
		that2, ok := that.(SampleOneOf_Field11)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field11 != that1.Field11 {
		return false
	}
	return true
}
func (this *SampleOneOf_Field12) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*SampleOneOf_Field12)
	if !ok {
		that2, ok := that.(SampleOneOf_Field12)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field12 != that1.Field12 {
		return false
	}
	return true
}
func (this *SampleOneOf_Field13) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*SampleOneOf_Field13)
	if !ok {
		that2, ok := that.(SampleOneOf_Field13)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field13 != that1.Field13 {
		return false
	}
	return true
}
func (this *SampleOneOf_Field14) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*SampleOneOf_Field14)
	if !ok {
		that2, ok := that.(SampleOneOf_Field14)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field14 != that1.Field14 {
		return false
	}
	return true
}
func (this *SampleOneOf_Field15) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*SampleOneOf_Field15)
	if !ok {
		that2, ok := that.(SampleOneOf_Field15)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if !bytes.Equal(this.Field15, that1.Field15) {
		return false
	}
	return true
}
func (this *SampleOneOf_SubMessage) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*SampleOneOf_SubMessage)
	if !ok {
		that2, ok := that.(SampleOneOf_SubMessage)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if !this.SubMessage.Equal(that1.SubMessage) {
		return false
	}
	return true
}
func (this *Subby) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&one.Subby{")
	s = append(s, "Sub: "+fmt.Sprintf("%#v", this.Sub)+",\n")
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *SampleOneOf) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 20)
	s = append(s, "&one.SampleOneOf{")
	if this.TestOneof != nil {
		s = append(s, "TestOneof: "+fmt.Sprintf("%#v", this.TestOneof)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *SampleOneOf_Field1) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field1{` +
		`Field1:` + fmt.Sprintf("%#v", this.Field1) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field2) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field2{` +
		`Field2:` + fmt.Sprintf("%#v", this.Field2) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field3) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field3{` +
		`Field3:` + fmt.Sprintf("%#v", this.Field3) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field4) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field4{` +
		`Field4:` + fmt.Sprintf("%#v", this.Field4) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field5) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field5{` +
		`Field5:` + fmt.Sprintf("%#v", this.Field5) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field6) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field6{` +
		`Field6:` + fmt.Sprintf("%#v", this.Field6) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field7) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field7{` +
		`Field7:` + fmt.Sprintf("%#v", this.Field7) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field8) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field8{` +
		`Field8:` + fmt.Sprintf("%#v", this.Field8) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field9) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field9{` +
		`Field9:` + fmt.Sprintf("%#v", this.Field9) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field10) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field10{` +
		`Field10:` + fmt.Sprintf("%#v", this.Field10) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field11) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field11{` +
		`Field11:` + fmt.Sprintf("%#v", this.Field11) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field12) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field12{` +
		`Field12:` + fmt.Sprintf("%#v", this.Field12) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field13) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field13{` +
		`Field13:` + fmt.Sprintf("%#v", this.Field13) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field14) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field14{` +
		`Field14:` + fmt.Sprintf("%#v", this.Field14) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_Field15) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_Field15{` +
		`Field15:` + fmt.Sprintf("%#v", this.Field15) + `}`}, ", ")
	return s
}
func (this *SampleOneOf_SubMessage) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.SampleOneOf_SubMessage{` +
		`SubMessage:` + fmt.Sprintf("%#v", this.SubMessage) + `}`}, ", ")
	return s
}
func valueToGoStringOne(v interface{}, typ string) string {
	rv := reflect.ValueOf(v)
	if rv.IsNil() {
		return "nil"
	}
	pv := reflect.Indirect(rv).Interface()
	return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv)
}
func NewPopulatedSubby(r randyOne, easy bool) *Subby {
	this := &Subby{}
	this.Sub = string(randStringOne(r))
	if !easy && r.Intn(10) != 0 {
	}
	return this
}

func NewPopulatedSampleOneOf(r randyOne, easy bool) *SampleOneOf {
	this := &SampleOneOf{}
	oneofNumber_TestOneof := []int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}[r.Intn(16)]
	switch oneofNumber_TestOneof {
	case 1:
		this.TestOneof = NewPopulatedSampleOneOf_Field1(r, easy)
	case 2:
		this.TestOneof = NewPopulatedSampleOneOf_Field2(r, easy)
	case 3:
		this.TestOneof = NewPopulatedSampleOneOf_Field3(r, easy)
	case 4:
		this.TestOneof = NewPopulatedSampleOneOf_Field4(r, easy)
	case 5:
		this.TestOneof = NewPopulatedSampleOneOf_Field5(r, easy)
	case 6:
		this.TestOneof = NewPopulatedSampleOneOf_Field6(r, easy)
	case 7:
		this.TestOneof = NewPopulatedSampleOneOf_Field7(r, easy)
	case 8:
		this.TestOneof = NewPopulatedSampleOneOf_Field8(r, easy)
	case 9:
		this.TestOneof = NewPopulatedSampleOneOf_Field9(r, easy)
	case 10:
		this.TestOneof = NewPopulatedSampleOneOf_Field10(r, easy)
	case 11:
		this.TestOneof = NewPopulatedSampleOneOf_Field11(r, easy)
	case 12:
		this.TestOneof = NewPopulatedSampleOneOf_Field12(r, easy)
	case 13:
		this.TestOneof = NewPopulatedSampleOneOf_Field13(r, easy)
	case 14:
		this.TestOneof = NewPopulatedSampleOneOf_Field14(r, easy)
	case 15:
		this.TestOneof = NewPopulatedSampleOneOf_Field15(r, easy)
	case 16:
		this.TestOneof = NewPopulatedSampleOneOf_SubMessage(r, easy)
	}
	if !easy && r.Intn(10) != 0 {
	}
	return this
}

func NewPopulatedSampleOneOf_Field1(r randyOne, easy bool) *SampleOneOf_Field1 {
	this := &SampleOneOf_Field1{}
	this.Field1 = float64(r.Float64())
	if r.Intn(2) == 0 {
		this.Field1 *= -1
	}
	return this
}
func NewPopulatedSampleOneOf_Field2(r randyOne, easy bool) *SampleOneOf_Field2 {
	this := &SampleOneOf_Field2{}
	this.Field2 = float32(r.Float32())
	if r.Intn(2) == 0 {
		this.Field2 *= -1
	}
	return this
}
func NewPopulatedSampleOneOf_Field3(r randyOne, easy bool) *SampleOneOf_Field3 {
	this := &SampleOneOf_Field3{}
	this.Field3 = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.Field3 *= -1
	}
	return this
}
func NewPopulatedSampleOneOf_Field4(r randyOne, easy bool) *SampleOneOf_Field4 {
	this := &SampleOneOf_Field4{}
	this.Field4 = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.Field4 *= -1
	}
	return this
}
func NewPopulatedSampleOneOf_Field5(r randyOne, easy bool) *SampleOneOf_Field5 {
	this := &SampleOneOf_Field5{}
	this.Field5 = uint32(r.Uint32())
	return this
}
func NewPopulatedSampleOneOf_Field6(r randyOne, easy bool) *SampleOneOf_Field6 {
	this := &SampleOneOf_Field6{}
	this.Field6 = uint64(uint64(r.Uint32()))
	return this
}
func NewPopulatedSampleOneOf_Field7(r randyOne, easy bool) *SampleOneOf_Field7 {
	this := &SampleOneOf_Field7{}
	this.Field7 = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.Field7 *= -1
	}
	return this
}
func NewPopulatedSampleOneOf_Field8(r randyOne, easy bool) *SampleOneOf_Field8 {
	this := &SampleOneOf_Field8{}
	this.Field8 = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.Field8 *= -1
	}
	return this
}
func NewPopulatedSampleOneOf_Field9(r randyOne, easy bool) *SampleOneOf_Field9 {
	this := &SampleOneOf_Field9{}
	this.Field9 = uint32(r.Uint32())
	return this
}
func NewPopulatedSampleOneOf_Field10(r randyOne, easy bool) *SampleOneOf_Field10 {
	this := &SampleOneOf_Field10{}
	this.Field10 = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.Field10 *= -1
	}
	return this
}
func NewPopulatedSampleOneOf_Field11(r randyOne, easy bool) *SampleOneOf_Field11 {
	this := &SampleOneOf_Field11{}
	this.Field11 = uint64(uint64(r.Uint32()))
	return this
}
func NewPopulatedSampleOneOf_Field12(r randyOne, easy bool) *SampleOneOf_Field12 {
	this := &SampleOneOf_Field12{}
	this.Field12 = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.Field12 *= -1
	}
	return this
}
func NewPopulatedSampleOneOf_Field13(r randyOne, easy bool) *SampleOneOf_Field13 {
	this := &SampleOneOf_Field13{}
	this.Field13 = bool(bool(r.Intn(2) == 0))
	return this
}
func NewPopulatedSampleOneOf_Field14(r randyOne, easy bool) *SampleOneOf_Field14 {
	this := &SampleOneOf_Field14{}
	this.Field14 = string(randStringOne(r))
	return this
}
func NewPopulatedSampleOneOf_Field15(r randyOne, easy bool) *SampleOneOf_Field15 {
	this := &SampleOneOf_Field15{}
	v1 := r.Intn(100)
	this.Field15 = make([]byte, v1)
	for i := 0; i < v1; i++ {
		this.Field15[i] = byte(r.Intn(256))
	}
	return this
}
func NewPopulatedSampleOneOf_SubMessage(r randyOne, easy bool) *SampleOneOf_SubMessage {
	this := &SampleOneOf_SubMessage{}
	this.SubMessage = NewPopulatedSubby(r, easy)
	return this
}

type randyOne interface {
	Float32() float32
	Float64() float64
	Int63() int64
	Int31() int32
	Uint32() uint32
	Intn(n int) int
}

func randUTF8RuneOne(r randyOne) rune {
	ru := r.Intn(62)
	if ru < 10 {
		return rune(ru + 48)
	} else if ru < 36 {
		return rune(ru + 55)
	}
	return rune(ru + 61)
}
func randStringOne(r randyOne) string {
	v2 := r.Intn(100)
	tmps := make([]rune, v2)
	for i := 0; i < v2; i++ {
		tmps[i] = randUTF8RuneOne(r)
	}
	return string(tmps)
}
func randUnrecognizedOne(r randyOne, maxFieldNumber int) (dAtA []byte) {
	l := r.Intn(5)
	for i := 0; i < l; i++ {
		wire := r.Intn(4)
		if wire == 3 {
			wire = 5
		}
		fieldNumber := maxFieldNumber + r.Intn(100)
		dAtA = randFieldOne(dAtA, r, fieldNumber, wire)
	}
	return dAtA
}
func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte {
	key := uint32(fieldNumber)<<3 | uint32(wire)
	switch wire {
	case 0:
		dAtA = encodeVarintPopulateOne(dAtA, uint64(key))
		v3 := r.Int63()
		if r.Intn(2) == 0 {
			v3 *= -1
		}
		dAtA = encodeVarintPopulateOne(dAtA, uint64(v3))
	case 1:
		dAtA = encodeVarintPopulateOne(dAtA, uint64(key))
		dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
	case 2:
		dAtA = encodeVarintPopulateOne(dAtA, uint64(key))
		ll := r.Intn(100)
		dAtA = encodeVarintPopulateOne(dAtA, uint64(ll))
		for j := 0; j < ll; j++ {
			dAtA = append(dAtA, byte(r.Intn(256)))
		}
	default:
		dAtA = encodeVarintPopulateOne(dAtA, uint64(key))
		dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
	}
	return dAtA
}
func encodeVarintPopulateOne(dAtA []byte, v uint64) []byte {
	for v >= 1<<7 {
		dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80))
		v >>= 7
	}
	dAtA = append(dAtA, uint8(v))
	return dAtA
}
func (m *Subby) Size() (n int) {
	var l int
	_ = l
	l = len(m.Sub)
	if l > 0 {
		n += 1 + l + sovOne(uint64(l))
	}
	return n
}

func (m *SampleOneOf) Size() (n int) {
	var l int
	_ = l
	if m.TestOneof != nil {
		n += m.TestOneof.Size()
	}
	return n
}

func (m *SampleOneOf_Field1) Size() (n int) {
	var l int
	_ = l
	n += 9
	return n
}
func (m *SampleOneOf_Field2) Size() (n int) {
	var l int
	_ = l
	n += 5
	return n
}
func (m *SampleOneOf_Field3) Size() (n int) {
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field3))
	return n
}
func (m *SampleOneOf_Field4) Size() (n int) {
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field4))
	return n
}
func (m *SampleOneOf_Field5) Size() (n int) {
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field5))
	return n
}
func (m *SampleOneOf_Field6) Size() (n int) {
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field6))
	return n
}
func (m *SampleOneOf_Field7) Size() (n int) {
	var l int
	_ = l
	n += 1 + sozOne(uint64(m.Field7))
	return n
}
func (m *SampleOneOf_Field8) Size() (n int) {
	var l int
	_ = l
	n += 1 + sozOne(uint64(m.Field8))
	return n
}
func (m *SampleOneOf_Field9) Size() (n int) {
	var l int
	_ = l
	n += 5
	return n
}
func (m *SampleOneOf_Field10) Size() (n int) {
	var l int
	_ = l
	n += 5
	return n
}
func (m *SampleOneOf_Field11) Size() (n int) {
	var l int
	_ = l
	n += 9
	return n
}
func (m *SampleOneOf_Field12) Size() (n int) {
	var l int
	_ = l
	n += 9
	return n
}
func (m *SampleOneOf_Field13) Size() (n int) {
	var l int
	_ = l
	n += 2
	return n
}
func (m *SampleOneOf_Field14) Size() (n int) {
	var l int
	_ = l
	l = len(m.Field14)
	n += 1 + l + sovOne(uint64(l))
	return n
}
func (m *SampleOneOf_Field15) Size() (n int) {
	var l int
	_ = l
	if m.Field15 != nil {
		l = len(m.Field15)
		n += 1 + l + sovOne(uint64(l))
	}
	return n
}
func (m *SampleOneOf_SubMessage) Size() (n int) {
	var l int
	_ = l
	if m.SubMessage != nil {
		l = m.SubMessage.Size()
		n += 2 + l + sovOne(uint64(l))
	}
	return n
}

func sovOne(x uint64) (n int) {
	for {
		n++
		x >>= 7
		if x == 0 {
			break
		}
	}
	return n
}
func sozOne(x uint64) (n int) {
	return sovOne(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (this *Subby) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Subby{`,
		`Sub:` + fmt.Sprintf("%v", this.Sub) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf{`,
		`TestOneof:` + fmt.Sprintf("%v", this.TestOneof) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field1) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field1{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field2) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field2{`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field3) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field3{`,
		`Field3:` + fmt.Sprintf("%v", this.Field3) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field4) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field4{`,
		`Field4:` + fmt.Sprintf("%v", this.Field4) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field5) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field5{`,
		`Field5:` + fmt.Sprintf("%v", this.Field5) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field6) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field6{`,
		`Field6:` + fmt.Sprintf("%v", this.Field6) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field7) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field7{`,
		`Field7:` + fmt.Sprintf("%v", this.Field7) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field8) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field8{`,
		`Field8:` + fmt.Sprintf("%v", this.Field8) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field9) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field9{`,
		`Field9:` + fmt.Sprintf("%v", this.Field9) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field10) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field10{`,
		`Field10:` + fmt.Sprintf("%v", this.Field10) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field11) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field11{`,
		`Field11:` + fmt.Sprintf("%v", this.Field11) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field12) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field12{`,
		`Field12:` + fmt.Sprintf("%v", this.Field12) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field13) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field13{`,
		`Field13:` + fmt.Sprintf("%v", this.Field13) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field14) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field14{`,
		`Field14:` + fmt.Sprintf("%v", this.Field14) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_Field15) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_Field15{`,
		`Field15:` + fmt.Sprintf("%v", this.Field15) + `,`,
		`}`,
	}, "")
	return s
}
func (this *SampleOneOf_SubMessage) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&SampleOneOf_SubMessage{`,
		`SubMessage:` + strings.Replace(fmt.Sprintf("%v", this.SubMessage), "Subby", "Subby", 1) + `,`,
		`}`,
	}, "")
	return s
}
func valueToStringOne(v interface{}) string {
	rv := reflect.ValueOf(v)
	if rv.IsNil() {
		return "nil"
	}
	pv := reflect.Indirect(rv).Interface()
	return fmt.Sprintf("*%v", pv)
}
func (m *Subby) 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 ErrIntOverflowOneUnsafe
			}
			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: Subby: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Subby: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Sub", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOneUnsafe
				}
				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 ErrInvalidLengthOneUnsafe
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Sub = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipOneUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthOneUnsafe
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *SampleOneOf) 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 ErrIntOverflowOneUnsafe
			}
			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: SampleOneOf: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: SampleOneOf: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v float64
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*float64)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 8
			m.TestOneof = &SampleOneOf_Field1{v}
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v float32
			if iNdEx+4 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*float32)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 4
			m.TestOneof = &SampleOneOf_Field2{v}
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOneUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.TestOneof = &SampleOneOf_Field3{v}
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOneUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.TestOneof = &SampleOneOf_Field4{v}
		case 5:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType)
			}
			var v uint32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOneUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= (uint32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.TestOneof = &SampleOneOf_Field5{v}
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOneUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.TestOneof = &SampleOneOf_Field6{v}
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOneUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.TestOneof = &SampleOneOf_Field7{v}
		case 8:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOneUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
			m.TestOneof = &SampleOneOf_Field8{int64(v)}
		case 9:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType)
			}
			var v uint32
			if iNdEx+4 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*uint32)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 4
			m.TestOneof = &SampleOneOf_Field9{v}
		case 10:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType)
			}
			var v int32
			if iNdEx+4 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*int32)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 4
			m.TestOneof = &SampleOneOf_Field10{v}
		case 11:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType)
			}
			var v uint64
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*uint64)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 8
			m.TestOneof = &SampleOneOf_Field11{v}
		case 12:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType)
			}
			var v int64
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*int64)(unsafe.Pointer(&dAtA[iNdEx]))
			iNdEx += 8
			m.TestOneof = &SampleOneOf_Field12{v}
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOneUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.TestOneof = &SampleOneOf_Field13{b}
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOneUnsafe
				}
				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 ErrInvalidLengthOneUnsafe
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.TestOneof = &SampleOneOf_Field14{string(dAtA[iNdEx:postIndex])}
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOneUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthOneUnsafe
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := make([]byte, postIndex-iNdEx)
			copy(v, dAtA[iNdEx:postIndex])
			m.TestOneof = &SampleOneOf_Field15{v}
			iNdEx = postIndex
		case 16:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field SubMessage", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOneUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthOneUnsafe
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &Subby{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.TestOneof = &SampleOneOf_SubMessage{v}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipOneUnsafe(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthOneUnsafe
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func skipOneUnsafe(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, ErrIntOverflowOneUnsafe
			}
			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, ErrIntOverflowOneUnsafe
				}
				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, ErrIntOverflowOneUnsafe
				}
				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, ErrInvalidLengthOneUnsafe
			}
			return iNdEx, nil
		case 3:
			for {
				var innerWire uint64
				var start int = iNdEx
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return 0, ErrIntOverflowOneUnsafe
					}
					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 := skipOneUnsafe(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 (
	ErrInvalidLengthOneUnsafe = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowOneUnsafe   = fmt.Errorf("proto: integer overflow")
)

func init() { proto.RegisterFile("combos/unsafeunmarshaler/one.proto", fileDescriptorOne) }

var fileDescriptorOne = []byte{
	// 413 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x44, 0xd2, 0x3f, 0x4f, 0x1b, 0x31,
	0x18, 0x06, 0x70, 0xbf, 0x1c, 0x49, 0xc0, 0x09, 0x25, 0xbd, 0xe9, 0x2d, 0xc3, 0x2b, 0x2b, 0x93,
	0x17, 0x92, 0xe6, 0x2e, 0xe1, 0xcf, 0x8a, 0xaa, 0x2a, 0x4b, 0x85, 0x14, 0x3e, 0x00, 0x3a, 0x53,
	0x27, 0x20, 0xe5, 0xce, 0x28, 0xbe, 0x1b, 0xba, 0xf1, 0x71, 0x3a, 0x76, 0xec, 0x47, 0x60, 0x64,
	0xec, 0xd0, 0x81, 0x73, 0x97, 0x8e, 0x8c, 0x8c, 0x55, 0x2e, 0xc5, 0xde, 0xde, 0xc7, 0x3f, 0x7b,
	0xb0, 0xfd, 0xf0, 0xc1, 0x8d, 0xc9, 0x95, 0xb1, 0xa3, 0xaa, 0xb0, 0xd9, 0x42, 0x57, 0x45, 0x9e,
	0xad, 0xed, 0x6d, 0xb6, 0xd2, 0xeb, 0x91, 0x29, 0xf4, 0xf0, 0x7e, 0x6d, 0x4a, 0x13, 0x47, 0xa6,
	0xd0, 0x47, 0xc7, 0xcb, 0xbb, 0xf2, 0xb6, 0x52, 0xc3, 0x1b, 0x93, 0x8f, 0x96, 0x66, 0x69, 0x46,
	0x8d, 0xa9, 0x6a, 0xd1, 0xa4, 0x26, 0x34, 0xd3, 0xf6, 0xcc, 0xe0, 0x03, 0x6f, 0x5d, 0x55, 0x4a,
	0x7d, 0x8b, 0xfb, 0x3c, 0xb2, 0x95, 0x42, 0x10, 0x20, 0xf7, 0xe7, 0x9b, 0x71, 0xf0, 0x3b, 0xe2,
	0xdd, 0xab, 0x2c, 0xbf, 0x5f, 0xe9, 0xcb, 0x42, 0x5f, 0x2e, 0x62, 0xe4, 0xed, 0xcf, 0x77, 0x7a,
	0xf5, 0x75, 0xdc, 0x6c, 0x82, 0x19, 0x9b, 0xff, 0xcf, 0x5e, 0x12, 0xdc, 0x11, 0x20, 0x77, 0xbc,
	0x24, 0x5e, 0x52, 0x8c, 0x04, 0xc8, 0x96, 0x97, 0xd4, 0xcb, 0x04, 0x77, 0x05, 0xc8, 0xc8, 0xcb,
	0xc4, 0xcb, 0x14, 0x5b, 0x02, 0xe4, 0x81, 0x97, 0xa9, 0x97, 0x13, 0x6c, 0x0b, 0x90, 0xbb, 0x5e,
	0x4e, 0xbc, 0x9c, 0x62, 0x47, 0x80, 0x7c, 0xef, 0xe5, 0xd4, 0xcb, 0x19, 0xee, 0x09, 0x90, 0xb1,
	0x97, 0x33, 0x2f, 0xe7, 0xb8, 0x2f, 0x40, 0x76, 0xbc, 0x9c, 0xc7, 0x47, 0xbc, 0xb3, 0xbd, 0xd9,
	0x47, 0xe4, 0x02, 0xe4, 0xe1, 0x8c, 0xcd, 0xdf, 0x16, 0x82, 0x8d, 0xb1, 0x2b, 0x40, 0xb6, 0x83,
	0x8d, 0x83, 0x25, 0xd8, 0x13, 0x20, 0xfb, 0xc1, 0x92, 0x60, 0x29, 0x1e, 0x08, 0x90, 0x7b, 0xc1,
	0xd2, 0x60, 0x13, 0x7c, 0xb7, 0x79, 0xff, 0x60, 0x93, 0x60, 0x53, 0x3c, 0x14, 0x20, 0x7b, 0xc1,
	0xa6, 0xf1, 0x31, 0xef, 0xda, 0x4a, 0x5d, 0xe7, 0xda, 0xda, 0x6c, 0xa9, 0xb1, 0x2f, 0x40, 0x76,
	0x13, 0x3e, 0xdc, 0x34, 0xa2, 0xf9, 0xd4, 0x19, 0x9b, 0x73, 0x5b, 0xa9, 0x2f, 0x5b, 0xbf, 0xe8,
	0x71, 0x5e, 0x6a, 0x5b, 0x5e, 0x9b, 0x42, 0x9b, 0xc5, 0xc5, 0xa7, 0xc7, 0x9a, 0xd8, 0x53, 0x4d,
	0xec, 0x57, 0x4d, 0xec, 0xb9, 0x26, 0x78, 0xa9, 0x09, 0x5e, 0x6b, 0x82, 0x07, 0x47, 0xf0, 0xdd,
	0x11, 0xfc, 0x70, 0x04, 0x3f, 0x1d, 0xc1, 0xa3, 0x23, 0xf6, 0xe4, 0x88, 0x3d, 0x3b, 0x82, 0xbf,
	0x8e, 0xd8, 0x8b, 0x23, 0x78, 0x75, 0xc4, 0x1e, 0xfe, 0x10, 0xa8, 0x76, 0x53, 0xa3, 0xf4, 0x5f,
	0x00, 0x00, 0x00, 0xff, 0xff, 0x1a, 0xd7, 0x6a, 0xc3, 0xa0, 0x02, 0x00, 0x00,
}
