// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// Code generated by protoc-gen-go. DO NOT EDIT.
// source: internal/testprotos/test/test.proto

package test

import (
	enums "google.golang.org/protobuf/internal/testprotos/enums"
	required "google.golang.org/protobuf/internal/testprotos/required"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

type ForeignEnum int32

const (
	ForeignEnum_FOREIGN_FOO ForeignEnum = 4
	ForeignEnum_FOREIGN_BAR ForeignEnum = 5
	ForeignEnum_FOREIGN_BAZ ForeignEnum = 6
)

// Enum value maps for ForeignEnum.
var (
	ForeignEnum_name = map[int32]string{
		4: "FOREIGN_FOO",
		5: "FOREIGN_BAR",
		6: "FOREIGN_BAZ",
	}
	ForeignEnum_value = map[string]int32{
		"FOREIGN_FOO": 4,
		"FOREIGN_BAR": 5,
		"FOREIGN_BAZ": 6,
	}
)

func (x ForeignEnum) Enum() *ForeignEnum {
	p := new(ForeignEnum)
	*p = x
	return p
}

func (x ForeignEnum) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ForeignEnum) Descriptor() protoreflect.EnumDescriptor {
	return file_internal_testprotos_test_test_proto_enumTypes[0].Descriptor()
}

func (ForeignEnum) Type() protoreflect.EnumType {
	return &file_internal_testprotos_test_test_proto_enumTypes[0]
}

func (x ForeignEnum) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *ForeignEnum) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = ForeignEnum(num)
	return nil
}

// Deprecated: Use ForeignEnum.Descriptor instead.
func (ForeignEnum) EnumDescriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{0}
}

type TestReservedEnumFields int32

const (
	TestReservedEnumFields_RESERVED_ENUM TestReservedEnumFields = 0
)

// Enum value maps for TestReservedEnumFields.
var (
	TestReservedEnumFields_name = map[int32]string{
		0: "RESERVED_ENUM",
	}
	TestReservedEnumFields_value = map[string]int32{
		"RESERVED_ENUM": 0,
	}
)

func (x TestReservedEnumFields) Enum() *TestReservedEnumFields {
	p := new(TestReservedEnumFields)
	*p = x
	return p
}

func (x TestReservedEnumFields) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (TestReservedEnumFields) Descriptor() protoreflect.EnumDescriptor {
	return file_internal_testprotos_test_test_proto_enumTypes[1].Descriptor()
}

func (TestReservedEnumFields) Type() protoreflect.EnumType {
	return &file_internal_testprotos_test_test_proto_enumTypes[1]
}

func (x TestReservedEnumFields) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *TestReservedEnumFields) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = TestReservedEnumFields(num)
	return nil
}

// Deprecated: Use TestReservedEnumFields.Descriptor instead.
func (TestReservedEnumFields) EnumDescriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{1}
}

type TestAllTypes_NestedEnum int32

const (
	TestAllTypes_FOO TestAllTypes_NestedEnum = 0
	TestAllTypes_BAR TestAllTypes_NestedEnum = 1
	TestAllTypes_BAZ TestAllTypes_NestedEnum = 2
	TestAllTypes_NEG TestAllTypes_NestedEnum = -1 // Intentionally negative.
)

// Enum value maps for TestAllTypes_NestedEnum.
var (
	TestAllTypes_NestedEnum_name = map[int32]string{
		0:  "FOO",
		1:  "BAR",
		2:  "BAZ",
		-1: "NEG",
	}
	TestAllTypes_NestedEnum_value = map[string]int32{
		"FOO": 0,
		"BAR": 1,
		"BAZ": 2,
		"NEG": -1,
	}
)

func (x TestAllTypes_NestedEnum) Enum() *TestAllTypes_NestedEnum {
	p := new(TestAllTypes_NestedEnum)
	*p = x
	return p
}

func (x TestAllTypes_NestedEnum) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (TestAllTypes_NestedEnum) Descriptor() protoreflect.EnumDescriptor {
	return file_internal_testprotos_test_test_proto_enumTypes[2].Descriptor()
}

func (TestAllTypes_NestedEnum) Type() protoreflect.EnumType {
	return &file_internal_testprotos_test_test_proto_enumTypes[2]
}

func (x TestAllTypes_NestedEnum) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *TestAllTypes_NestedEnum) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = TestAllTypes_NestedEnum(num)
	return nil
}

// Deprecated: Use TestAllTypes_NestedEnum.Descriptor instead.
func (TestAllTypes_NestedEnum) EnumDescriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{0, 0}
}

// Deprecated: Marked as deprecated in internal/testprotos/test/test.proto.
type TestDeprecatedMessage_DeprecatedEnum int32

const (
	// Deprecated: Marked as deprecated in internal/testprotos/test/test.proto.
	TestDeprecatedMessage_DEPRECATED TestDeprecatedMessage_DeprecatedEnum = 0
)

// Enum value maps for TestDeprecatedMessage_DeprecatedEnum.
var (
	TestDeprecatedMessage_DeprecatedEnum_name = map[int32]string{
		0: "DEPRECATED",
	}
	TestDeprecatedMessage_DeprecatedEnum_value = map[string]int32{
		"DEPRECATED": 0,
	}
)

func (x TestDeprecatedMessage_DeprecatedEnum) Enum() *TestDeprecatedMessage_DeprecatedEnum {
	p := new(TestDeprecatedMessage_DeprecatedEnum)
	*p = x
	return p
}

func (x TestDeprecatedMessage_DeprecatedEnum) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (TestDeprecatedMessage_DeprecatedEnum) Descriptor() protoreflect.EnumDescriptor {
	return file_internal_testprotos_test_test_proto_enumTypes[3].Descriptor()
}

func (TestDeprecatedMessage_DeprecatedEnum) Type() protoreflect.EnumType {
	return &file_internal_testprotos_test_test_proto_enumTypes[3]
}

func (x TestDeprecatedMessage_DeprecatedEnum) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *TestDeprecatedMessage_DeprecatedEnum) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = TestDeprecatedMessage_DeprecatedEnum(num)
	return nil
}

// Deprecated: Use TestDeprecatedMessage_DeprecatedEnum.Descriptor instead.
func (TestDeprecatedMessage_DeprecatedEnum) EnumDescriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{2, 0}
}

type TestAllTypes struct {
	state                     protoimpl.MessageState                 `protogen:"open.v1"`
	OptionalInt32             *int32                                 `protobuf:"varint,1,opt,name=optional_int32,json=optionalInt32" json:"optional_int32,omitempty"`
	OptionalInt64             *int64                                 `protobuf:"varint,2,opt,name=optional_int64,json=optionalInt64" json:"optional_int64,omitempty"`
	OptionalUint32            *uint32                                `protobuf:"varint,3,opt,name=optional_uint32,json=optionalUint32" json:"optional_uint32,omitempty"`
	OptionalUint64            *uint64                                `protobuf:"varint,4,opt,name=optional_uint64,json=optionalUint64" json:"optional_uint64,omitempty"`
	OptionalSint32            *int32                                 `protobuf:"zigzag32,5,opt,name=optional_sint32,json=optionalSint32" json:"optional_sint32,omitempty"`
	OptionalSint64            *int64                                 `protobuf:"zigzag64,6,opt,name=optional_sint64,json=optionalSint64" json:"optional_sint64,omitempty"`
	OptionalFixed32           *uint32                                `protobuf:"fixed32,7,opt,name=optional_fixed32,json=optionalFixed32" json:"optional_fixed32,omitempty"`
	OptionalFixed64           *uint64                                `protobuf:"fixed64,8,opt,name=optional_fixed64,json=optionalFixed64" json:"optional_fixed64,omitempty"`
	OptionalSfixed32          *int32                                 `protobuf:"fixed32,9,opt,name=optional_sfixed32,json=optionalSfixed32" json:"optional_sfixed32,omitempty"`
	OptionalSfixed64          *int64                                 `protobuf:"fixed64,10,opt,name=optional_sfixed64,json=optionalSfixed64" json:"optional_sfixed64,omitempty"`
	OptionalFloat             *float32                               `protobuf:"fixed32,11,opt,name=optional_float,json=optionalFloat" json:"optional_float,omitempty"`
	OptionalDouble            *float64                               `protobuf:"fixed64,12,opt,name=optional_double,json=optionalDouble" json:"optional_double,omitempty"`
	OptionalBool              *bool                                  `protobuf:"varint,13,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty"`
	OptionalString            *string                                `protobuf:"bytes,14,opt,name=optional_string,json=optionalString" json:"optional_string,omitempty"`
	OptionalBytes             []byte                                 `protobuf:"bytes,15,opt,name=optional_bytes,json=optionalBytes" json:"optional_bytes,omitempty"`
	Optionalgroup             *TestAllTypes_OptionalGroup            `protobuf:"group,16,opt,name=OptionalGroup,json=optionalgroup" json:"optionalgroup,omitempty"`
	OptionalNestedMessage     *TestAllTypes_NestedMessage            `protobuf:"bytes,18,opt,name=optional_nested_message,json=optionalNestedMessage" json:"optional_nested_message,omitempty"`
	OptionalForeignMessage    *ForeignMessage                        `protobuf:"bytes,19,opt,name=optional_foreign_message,json=optionalForeignMessage" json:"optional_foreign_message,omitempty"`
	OptionalImportMessage     *ImportMessage                         `protobuf:"bytes,20,opt,name=optional_import_message,json=optionalImportMessage" json:"optional_import_message,omitempty"`
	OptionalNestedEnum        *TestAllTypes_NestedEnum               `protobuf:"varint,21,opt,name=optional_nested_enum,json=optionalNestedEnum,enum=goproto.proto.test.TestAllTypes_NestedEnum" json:"optional_nested_enum,omitempty"`
	OptionalForeignEnum       *ForeignEnum                           `protobuf:"varint,22,opt,name=optional_foreign_enum,json=optionalForeignEnum,enum=goproto.proto.test.ForeignEnum" json:"optional_foreign_enum,omitempty"`
	OptionalImportEnum        *ImportEnum                            `protobuf:"varint,23,opt,name=optional_import_enum,json=optionalImportEnum,enum=goproto.proto.test.ImportEnum" json:"optional_import_enum,omitempty"`
	OptionalLazyNestedMessage *TestAllTypes_NestedMessage            `protobuf:"bytes,24,opt,name=optional_lazy_nested_message,json=optionalLazyNestedMessage" json:"optional_lazy_nested_message,omitempty"`
	RepeatedInt32             []int32                                `protobuf:"varint,31,rep,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"`
	RepeatedInt64             []int64                                `protobuf:"varint,32,rep,name=repeated_int64,json=repeatedInt64" json:"repeated_int64,omitempty"`
	RepeatedUint32            []uint32                               `protobuf:"varint,33,rep,name=repeated_uint32,json=repeatedUint32" json:"repeated_uint32,omitempty"`
	RepeatedUint64            []uint64                               `protobuf:"varint,34,rep,name=repeated_uint64,json=repeatedUint64" json:"repeated_uint64,omitempty"`
	RepeatedSint32            []int32                                `protobuf:"zigzag32,35,rep,name=repeated_sint32,json=repeatedSint32" json:"repeated_sint32,omitempty"`
	RepeatedSint64            []int64                                `protobuf:"zigzag64,36,rep,name=repeated_sint64,json=repeatedSint64" json:"repeated_sint64,omitempty"`
	RepeatedFixed32           []uint32                               `protobuf:"fixed32,37,rep,name=repeated_fixed32,json=repeatedFixed32" json:"repeated_fixed32,omitempty"`
	RepeatedFixed64           []uint64                               `protobuf:"fixed64,38,rep,name=repeated_fixed64,json=repeatedFixed64" json:"repeated_fixed64,omitempty"`
	RepeatedSfixed32          []int32                                `protobuf:"fixed32,39,rep,name=repeated_sfixed32,json=repeatedSfixed32" json:"repeated_sfixed32,omitempty"`
	RepeatedSfixed64          []int64                                `protobuf:"fixed64,40,rep,name=repeated_sfixed64,json=repeatedSfixed64" json:"repeated_sfixed64,omitempty"`
	RepeatedFloat             []float32                              `protobuf:"fixed32,41,rep,name=repeated_float,json=repeatedFloat" json:"repeated_float,omitempty"`
	RepeatedDouble            []float64                              `protobuf:"fixed64,42,rep,name=repeated_double,json=repeatedDouble" json:"repeated_double,omitempty"`
	RepeatedBool              []bool                                 `protobuf:"varint,43,rep,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty"`
	RepeatedString            []string                               `protobuf:"bytes,44,rep,name=repeated_string,json=repeatedString" json:"repeated_string,omitempty"`
	RepeatedBytes             [][]byte                               `protobuf:"bytes,45,rep,name=repeated_bytes,json=repeatedBytes" json:"repeated_bytes,omitempty"`
	Repeatedgroup             []*TestAllTypes_RepeatedGroup          `protobuf:"group,46,rep,name=RepeatedGroup,json=repeatedgroup" json:"repeatedgroup,omitempty"`
	RepeatedNestedMessage     []*TestAllTypes_NestedMessage          `protobuf:"bytes,48,rep,name=repeated_nested_message,json=repeatedNestedMessage" json:"repeated_nested_message,omitempty"`
	RepeatedForeignMessage    []*ForeignMessage                      `protobuf:"bytes,49,rep,name=repeated_foreign_message,json=repeatedForeignMessage" json:"repeated_foreign_message,omitempty"`
	RepeatedImportmessage     []*ImportMessage                       `protobuf:"bytes,50,rep,name=repeated_importmessage,json=repeatedImportmessage" json:"repeated_importmessage,omitempty"`
	RepeatedNestedEnum        []TestAllTypes_NestedEnum              `protobuf:"varint,51,rep,name=repeated_nested_enum,json=repeatedNestedEnum,enum=goproto.proto.test.TestAllTypes_NestedEnum" json:"repeated_nested_enum,omitempty"`
	RepeatedForeignEnum       []ForeignEnum                          `protobuf:"varint,52,rep,name=repeated_foreign_enum,json=repeatedForeignEnum,enum=goproto.proto.test.ForeignEnum" json:"repeated_foreign_enum,omitempty"`
	RepeatedImportenum        []ImportEnum                           `protobuf:"varint,53,rep,name=repeated_importenum,json=repeatedImportenum,enum=goproto.proto.test.ImportEnum" json:"repeated_importenum,omitempty"`
	MapInt32Int32             map[int32]int32                        `protobuf:"bytes,56,rep,name=map_int32_int32,json=mapInt32Int32" json:"map_int32_int32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
	MapInt64Int64             map[int64]int64                        `protobuf:"bytes,57,rep,name=map_int64_int64,json=mapInt64Int64" json:"map_int64_int64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
	MapUint32Uint32           map[uint32]uint32                      `protobuf:"bytes,58,rep,name=map_uint32_uint32,json=mapUint32Uint32" json:"map_uint32_uint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
	MapUint64Uint64           map[uint64]uint64                      `protobuf:"bytes,59,rep,name=map_uint64_uint64,json=mapUint64Uint64" json:"map_uint64_uint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
	MapSint32Sint32           map[int32]int32                        `protobuf:"bytes,60,rep,name=map_sint32_sint32,json=mapSint32Sint32" json:"map_sint32_sint32,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"`
	MapSint64Sint64           map[int64]int64                        `protobuf:"bytes,61,rep,name=map_sint64_sint64,json=mapSint64Sint64" json:"map_sint64_sint64,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"`
	MapFixed32Fixed32         map[uint32]uint32                      `protobuf:"bytes,62,rep,name=map_fixed32_fixed32,json=mapFixed32Fixed32" json:"map_fixed32_fixed32,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"`
	MapFixed64Fixed64         map[uint64]uint64                      `protobuf:"bytes,63,rep,name=map_fixed64_fixed64,json=mapFixed64Fixed64" json:"map_fixed64_fixed64,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"`
	MapSfixed32Sfixed32       map[int32]int32                        `protobuf:"bytes,64,rep,name=map_sfixed32_sfixed32,json=mapSfixed32Sfixed32" json:"map_sfixed32_sfixed32,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"`
	MapSfixed64Sfixed64       map[int64]int64                        `protobuf:"bytes,65,rep,name=map_sfixed64_sfixed64,json=mapSfixed64Sfixed64" json:"map_sfixed64_sfixed64,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"`
	MapInt32Float             map[int32]float32                      `protobuf:"bytes,66,rep,name=map_int32_float,json=mapInt32Float" json:"map_int32_float,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"`
	MapInt32Double            map[int32]float64                      `protobuf:"bytes,67,rep,name=map_int32_double,json=mapInt32Double" json:"map_int32_double,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"`
	MapBoolBool               map[bool]bool                          `protobuf:"bytes,68,rep,name=map_bool_bool,json=mapBoolBool" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
	MapStringString           map[string]string                      `protobuf:"bytes,69,rep,name=map_string_string,json=mapStringString" json:"map_string_string,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	MapStringBytes            map[string][]byte                      `protobuf:"bytes,70,rep,name=map_string_bytes,json=mapStringBytes" json:"map_string_bytes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	MapStringNestedMessage    map[string]*TestAllTypes_NestedMessage `protobuf:"bytes,71,rep,name=map_string_nested_message,json=mapStringNestedMessage" json:"map_string_nested_message,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	MapStringNestedEnum       map[string]TestAllTypes_NestedEnum     `protobuf:"bytes,73,rep,name=map_string_nested_enum,json=mapStringNestedEnum" json:"map_string_nested_enum,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=goproto.proto.test.TestAllTypes_NestedEnum"`
	// Singular with defaults
	DefaultInt32       *int32                   `protobuf:"varint,81,opt,name=default_int32,json=defaultInt32,def=81" json:"default_int32,omitempty"`
	DefaultInt64       *int64                   `protobuf:"varint,82,opt,name=default_int64,json=defaultInt64,def=82" json:"default_int64,omitempty"`
	DefaultUint32      *uint32                  `protobuf:"varint,83,opt,name=default_uint32,json=defaultUint32,def=83" json:"default_uint32,omitempty"`
	DefaultUint64      *uint64                  `protobuf:"varint,84,opt,name=default_uint64,json=defaultUint64,def=84" json:"default_uint64,omitempty"`
	DefaultSint32      *int32                   `protobuf:"zigzag32,85,opt,name=default_sint32,json=defaultSint32,def=-85" json:"default_sint32,omitempty"`
	DefaultSint64      *int64                   `protobuf:"zigzag64,86,opt,name=default_sint64,json=defaultSint64,def=86" json:"default_sint64,omitempty"`
	DefaultFixed32     *uint32                  `protobuf:"fixed32,87,opt,name=default_fixed32,json=defaultFixed32,def=87" json:"default_fixed32,omitempty"`
	DefaultFixed64     *uint64                  `protobuf:"fixed64,88,opt,name=default_fixed64,json=defaultFixed64,def=88" json:"default_fixed64,omitempty"`
	DefaultSfixed32    *int32                   `protobuf:"fixed32,89,opt,name=default_sfixed32,json=defaultSfixed32,def=89" json:"default_sfixed32,omitempty"`
	DefaultSfixed64    *int64                   `protobuf:"fixed64,80,opt,name=default_sfixed64,json=defaultSfixed64,def=-90" json:"default_sfixed64,omitempty"`
	DefaultFloat       *float32                 `protobuf:"fixed32,91,opt,name=default_float,json=defaultFloat,def=91.5" json:"default_float,omitempty"`
	DefaultDouble      *float64                 `protobuf:"fixed64,92,opt,name=default_double,json=defaultDouble,def=92000" json:"default_double,omitempty"`
	DefaultBool        *bool                    `protobuf:"varint,93,opt,name=default_bool,json=defaultBool,def=1" json:"default_bool,omitempty"`
	DefaultString      *string                  `protobuf:"bytes,94,opt,name=default_string,json=defaultString,def=hello" json:"default_string,omitempty"`
	DefaultBytes       []byte                   `protobuf:"bytes,95,opt,name=default_bytes,json=defaultBytes,def=world" json:"default_bytes,omitempty"`
	DefaultNestedEnum  *TestAllTypes_NestedEnum `protobuf:"varint,96,opt,name=default_nested_enum,json=defaultNestedEnum,enum=goproto.proto.test.TestAllTypes_NestedEnum,def=1" json:"default_nested_enum,omitempty"`
	DefaultForeignEnum *ForeignEnum             `protobuf:"varint,97,opt,name=default_foreign_enum,json=defaultForeignEnum,enum=goproto.proto.test.ForeignEnum,def=5" json:"default_foreign_enum,omitempty"`
	// Types that are valid to be assigned to OneofField:
	//
	//	*TestAllTypes_OneofUint32
	//	*TestAllTypes_OneofNestedMessage
	//	*TestAllTypes_OneofString
	//	*TestAllTypes_OneofBytes
	//	*TestAllTypes_OneofBool
	//	*TestAllTypes_OneofUint64
	//	*TestAllTypes_OneofFloat
	//	*TestAllTypes_OneofDouble
	//	*TestAllTypes_OneofEnum
	//	*TestAllTypes_Oneofgroup
	OneofField isTestAllTypes_OneofField `protobuf_oneof:"oneof_field"`
	// A oneof with exactly one field.
	//
	// Types that are valid to be assigned to OneofOptional:
	//
	//	*TestAllTypes_OneofOptionalUint32
	OneofOptional isTestAllTypes_OneofOptional `protobuf_oneof:"oneof_optional"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Default values for TestAllTypes fields.
const (
	Default_TestAllTypes_DefaultInt32       = int32(81)
	Default_TestAllTypes_DefaultInt64       = int64(82)
	Default_TestAllTypes_DefaultUint32      = uint32(83)
	Default_TestAllTypes_DefaultUint64      = uint64(84)
	Default_TestAllTypes_DefaultSint32      = int32(-85)
	Default_TestAllTypes_DefaultSint64      = int64(86)
	Default_TestAllTypes_DefaultFixed32     = uint32(87)
	Default_TestAllTypes_DefaultFixed64     = uint64(88)
	Default_TestAllTypes_DefaultSfixed32    = int32(89)
	Default_TestAllTypes_DefaultSfixed64    = int64(-90)
	Default_TestAllTypes_DefaultFloat       = float32(91.5)
	Default_TestAllTypes_DefaultDouble      = float64(92000)
	Default_TestAllTypes_DefaultBool        = bool(true)
	Default_TestAllTypes_DefaultString      = string("hello")
	Default_TestAllTypes_DefaultNestedEnum  = TestAllTypes_BAR
	Default_TestAllTypes_DefaultForeignEnum = ForeignEnum_FOREIGN_BAR
)

// Default values for TestAllTypes fields.
var (
	Default_TestAllTypes_DefaultBytes = []byte("world")
)

func (x *TestAllTypes) Reset() {
	*x = TestAllTypes{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestAllTypes) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestAllTypes) ProtoMessage() {}

func (x *TestAllTypes) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestAllTypes.ProtoReflect.Descriptor instead.
func (*TestAllTypes) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{0}
}

func (x *TestAllTypes) GetOptionalInt32() int32 {
	if x != nil && x.OptionalInt32 != nil {
		return *x.OptionalInt32
	}
	return 0
}

func (x *TestAllTypes) GetOptionalInt64() int64 {
	if x != nil && x.OptionalInt64 != nil {
		return *x.OptionalInt64
	}
	return 0
}

func (x *TestAllTypes) GetOptionalUint32() uint32 {
	if x != nil && x.OptionalUint32 != nil {
		return *x.OptionalUint32
	}
	return 0
}

func (x *TestAllTypes) GetOptionalUint64() uint64 {
	if x != nil && x.OptionalUint64 != nil {
		return *x.OptionalUint64
	}
	return 0
}

func (x *TestAllTypes) GetOptionalSint32() int32 {
	if x != nil && x.OptionalSint32 != nil {
		return *x.OptionalSint32
	}
	return 0
}

func (x *TestAllTypes) GetOptionalSint64() int64 {
	if x != nil && x.OptionalSint64 != nil {
		return *x.OptionalSint64
	}
	return 0
}

func (x *TestAllTypes) GetOptionalFixed32() uint32 {
	if x != nil && x.OptionalFixed32 != nil {
		return *x.OptionalFixed32
	}
	return 0
}

func (x *TestAllTypes) GetOptionalFixed64() uint64 {
	if x != nil && x.OptionalFixed64 != nil {
		return *x.OptionalFixed64
	}
	return 0
}

func (x *TestAllTypes) GetOptionalSfixed32() int32 {
	if x != nil && x.OptionalSfixed32 != nil {
		return *x.OptionalSfixed32
	}
	return 0
}

func (x *TestAllTypes) GetOptionalSfixed64() int64 {
	if x != nil && x.OptionalSfixed64 != nil {
		return *x.OptionalSfixed64
	}
	return 0
}

func (x *TestAllTypes) GetOptionalFloat() float32 {
	if x != nil && x.OptionalFloat != nil {
		return *x.OptionalFloat
	}
	return 0
}

func (x *TestAllTypes) GetOptionalDouble() float64 {
	if x != nil && x.OptionalDouble != nil {
		return *x.OptionalDouble
	}
	return 0
}

func (x *TestAllTypes) GetOptionalBool() bool {
	if x != nil && x.OptionalBool != nil {
		return *x.OptionalBool
	}
	return false
}

func (x *TestAllTypes) GetOptionalString() string {
	if x != nil && x.OptionalString != nil {
		return *x.OptionalString
	}
	return ""
}

func (x *TestAllTypes) GetOptionalBytes() []byte {
	if x != nil {
		return x.OptionalBytes
	}
	return nil
}

func (x *TestAllTypes) GetOptionalgroup() *TestAllTypes_OptionalGroup {
	if x != nil {
		return x.Optionalgroup
	}
	return nil
}

func (x *TestAllTypes) GetOptionalNestedMessage() *TestAllTypes_NestedMessage {
	if x != nil {
		return x.OptionalNestedMessage
	}
	return nil
}

func (x *TestAllTypes) GetOptionalForeignMessage() *ForeignMessage {
	if x != nil {
		return x.OptionalForeignMessage
	}
	return nil
}

func (x *TestAllTypes) GetOptionalImportMessage() *ImportMessage {
	if x != nil {
		return x.OptionalImportMessage
	}
	return nil
}

func (x *TestAllTypes) GetOptionalNestedEnum() TestAllTypes_NestedEnum {
	if x != nil && x.OptionalNestedEnum != nil {
		return *x.OptionalNestedEnum
	}
	return TestAllTypes_FOO
}

func (x *TestAllTypes) GetOptionalForeignEnum() ForeignEnum {
	if x != nil && x.OptionalForeignEnum != nil {
		return *x.OptionalForeignEnum
	}
	return ForeignEnum_FOREIGN_FOO
}

func (x *TestAllTypes) GetOptionalImportEnum() ImportEnum {
	if x != nil && x.OptionalImportEnum != nil {
		return *x.OptionalImportEnum
	}
	return ImportEnum_IMPORT_ZERO
}

func (x *TestAllTypes) GetOptionalLazyNestedMessage() *TestAllTypes_NestedMessage {
	if x != nil {
		return x.OptionalLazyNestedMessage
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedInt32() []int32 {
	if x != nil {
		return x.RepeatedInt32
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedInt64() []int64 {
	if x != nil {
		return x.RepeatedInt64
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedUint32() []uint32 {
	if x != nil {
		return x.RepeatedUint32
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedUint64() []uint64 {
	if x != nil {
		return x.RepeatedUint64
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedSint32() []int32 {
	if x != nil {
		return x.RepeatedSint32
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedSint64() []int64 {
	if x != nil {
		return x.RepeatedSint64
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedFixed32() []uint32 {
	if x != nil {
		return x.RepeatedFixed32
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedFixed64() []uint64 {
	if x != nil {
		return x.RepeatedFixed64
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedSfixed32() []int32 {
	if x != nil {
		return x.RepeatedSfixed32
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedSfixed64() []int64 {
	if x != nil {
		return x.RepeatedSfixed64
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedFloat() []float32 {
	if x != nil {
		return x.RepeatedFloat
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedDouble() []float64 {
	if x != nil {
		return x.RepeatedDouble
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedBool() []bool {
	if x != nil {
		return x.RepeatedBool
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedString() []string {
	if x != nil {
		return x.RepeatedString
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedBytes() [][]byte {
	if x != nil {
		return x.RepeatedBytes
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedgroup() []*TestAllTypes_RepeatedGroup {
	if x != nil {
		return x.Repeatedgroup
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedNestedMessage() []*TestAllTypes_NestedMessage {
	if x != nil {
		return x.RepeatedNestedMessage
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedForeignMessage() []*ForeignMessage {
	if x != nil {
		return x.RepeatedForeignMessage
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedImportmessage() []*ImportMessage {
	if x != nil {
		return x.RepeatedImportmessage
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedNestedEnum() []TestAllTypes_NestedEnum {
	if x != nil {
		return x.RepeatedNestedEnum
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedForeignEnum() []ForeignEnum {
	if x != nil {
		return x.RepeatedForeignEnum
	}
	return nil
}

func (x *TestAllTypes) GetRepeatedImportenum() []ImportEnum {
	if x != nil {
		return x.RepeatedImportenum
	}
	return nil
}

func (x *TestAllTypes) GetMapInt32Int32() map[int32]int32 {
	if x != nil {
		return x.MapInt32Int32
	}
	return nil
}

func (x *TestAllTypes) GetMapInt64Int64() map[int64]int64 {
	if x != nil {
		return x.MapInt64Int64
	}
	return nil
}

func (x *TestAllTypes) GetMapUint32Uint32() map[uint32]uint32 {
	if x != nil {
		return x.MapUint32Uint32
	}
	return nil
}

func (x *TestAllTypes) GetMapUint64Uint64() map[uint64]uint64 {
	if x != nil {
		return x.MapUint64Uint64
	}
	return nil
}

func (x *TestAllTypes) GetMapSint32Sint32() map[int32]int32 {
	if x != nil {
		return x.MapSint32Sint32
	}
	return nil
}

func (x *TestAllTypes) GetMapSint64Sint64() map[int64]int64 {
	if x != nil {
		return x.MapSint64Sint64
	}
	return nil
}

func (x *TestAllTypes) GetMapFixed32Fixed32() map[uint32]uint32 {
	if x != nil {
		return x.MapFixed32Fixed32
	}
	return nil
}

func (x *TestAllTypes) GetMapFixed64Fixed64() map[uint64]uint64 {
	if x != nil {
		return x.MapFixed64Fixed64
	}
	return nil
}

func (x *TestAllTypes) GetMapSfixed32Sfixed32() map[int32]int32 {
	if x != nil {
		return x.MapSfixed32Sfixed32
	}
	return nil
}

func (x *TestAllTypes) GetMapSfixed64Sfixed64() map[int64]int64 {
	if x != nil {
		return x.MapSfixed64Sfixed64
	}
	return nil
}

func (x *TestAllTypes) GetMapInt32Float() map[int32]float32 {
	if x != nil {
		return x.MapInt32Float
	}
	return nil
}

func (x *TestAllTypes) GetMapInt32Double() map[int32]float64 {
	if x != nil {
		return x.MapInt32Double
	}
	return nil
}

func (x *TestAllTypes) GetMapBoolBool() map[bool]bool {
	if x != nil {
		return x.MapBoolBool
	}
	return nil
}

func (x *TestAllTypes) GetMapStringString() map[string]string {
	if x != nil {
		return x.MapStringString
	}
	return nil
}

func (x *TestAllTypes) GetMapStringBytes() map[string][]byte {
	if x != nil {
		return x.MapStringBytes
	}
	return nil
}

func (x *TestAllTypes) GetMapStringNestedMessage() map[string]*TestAllTypes_NestedMessage {
	if x != nil {
		return x.MapStringNestedMessage
	}
	return nil
}

func (x *TestAllTypes) GetMapStringNestedEnum() map[string]TestAllTypes_NestedEnum {
	if x != nil {
		return x.MapStringNestedEnum
	}
	return nil
}

func (x *TestAllTypes) GetDefaultInt32() int32 {
	if x != nil && x.DefaultInt32 != nil {
		return *x.DefaultInt32
	}
	return Default_TestAllTypes_DefaultInt32
}

func (x *TestAllTypes) GetDefaultInt64() int64 {
	if x != nil && x.DefaultInt64 != nil {
		return *x.DefaultInt64
	}
	return Default_TestAllTypes_DefaultInt64
}

func (x *TestAllTypes) GetDefaultUint32() uint32 {
	if x != nil && x.DefaultUint32 != nil {
		return *x.DefaultUint32
	}
	return Default_TestAllTypes_DefaultUint32
}

func (x *TestAllTypes) GetDefaultUint64() uint64 {
	if x != nil && x.DefaultUint64 != nil {
		return *x.DefaultUint64
	}
	return Default_TestAllTypes_DefaultUint64
}

func (x *TestAllTypes) GetDefaultSint32() int32 {
	if x != nil && x.DefaultSint32 != nil {
		return *x.DefaultSint32
	}
	return Default_TestAllTypes_DefaultSint32
}

func (x *TestAllTypes) GetDefaultSint64() int64 {
	if x != nil && x.DefaultSint64 != nil {
		return *x.DefaultSint64
	}
	return Default_TestAllTypes_DefaultSint64
}

func (x *TestAllTypes) GetDefaultFixed32() uint32 {
	if x != nil && x.DefaultFixed32 != nil {
		return *x.DefaultFixed32
	}
	return Default_TestAllTypes_DefaultFixed32
}

func (x *TestAllTypes) GetDefaultFixed64() uint64 {
	if x != nil && x.DefaultFixed64 != nil {
		return *x.DefaultFixed64
	}
	return Default_TestAllTypes_DefaultFixed64
}

func (x *TestAllTypes) GetDefaultSfixed32() int32 {
	if x != nil && x.DefaultSfixed32 != nil {
		return *x.DefaultSfixed32
	}
	return Default_TestAllTypes_DefaultSfixed32
}

func (x *TestAllTypes) GetDefaultSfixed64() int64 {
	if x != nil && x.DefaultSfixed64 != nil {
		return *x.DefaultSfixed64
	}
	return Default_TestAllTypes_DefaultSfixed64
}

func (x *TestAllTypes) GetDefaultFloat() float32 {
	if x != nil && x.DefaultFloat != nil {
		return *x.DefaultFloat
	}
	return Default_TestAllTypes_DefaultFloat
}

func (x *TestAllTypes) GetDefaultDouble() float64 {
	if x != nil && x.DefaultDouble != nil {
		return *x.DefaultDouble
	}
	return Default_TestAllTypes_DefaultDouble
}

func (x *TestAllTypes) GetDefaultBool() bool {
	if x != nil && x.DefaultBool != nil {
		return *x.DefaultBool
	}
	return Default_TestAllTypes_DefaultBool
}

func (x *TestAllTypes) GetDefaultString() string {
	if x != nil && x.DefaultString != nil {
		return *x.DefaultString
	}
	return Default_TestAllTypes_DefaultString
}

func (x *TestAllTypes) GetDefaultBytes() []byte {
	if x != nil && x.DefaultBytes != nil {
		return x.DefaultBytes
	}
	return append([]byte(nil), Default_TestAllTypes_DefaultBytes...)
}

func (x *TestAllTypes) GetDefaultNestedEnum() TestAllTypes_NestedEnum {
	if x != nil && x.DefaultNestedEnum != nil {
		return *x.DefaultNestedEnum
	}
	return Default_TestAllTypes_DefaultNestedEnum
}

func (x *TestAllTypes) GetDefaultForeignEnum() ForeignEnum {
	if x != nil && x.DefaultForeignEnum != nil {
		return *x.DefaultForeignEnum
	}
	return Default_TestAllTypes_DefaultForeignEnum
}

func (x *TestAllTypes) GetOneofField() isTestAllTypes_OneofField {
	if x != nil {
		return x.OneofField
	}
	return nil
}

func (x *TestAllTypes) GetOneofUint32() uint32 {
	if x != nil {
		if x, ok := x.OneofField.(*TestAllTypes_OneofUint32); ok {
			return x.OneofUint32
		}
	}
	return 0
}

func (x *TestAllTypes) GetOneofNestedMessage() *TestAllTypes_NestedMessage {
	if x != nil {
		if x, ok := x.OneofField.(*TestAllTypes_OneofNestedMessage); ok {
			return x.OneofNestedMessage
		}
	}
	return nil
}

func (x *TestAllTypes) GetOneofString() string {
	if x != nil {
		if x, ok := x.OneofField.(*TestAllTypes_OneofString); ok {
			return x.OneofString
		}
	}
	return ""
}

func (x *TestAllTypes) GetOneofBytes() []byte {
	if x != nil {
		if x, ok := x.OneofField.(*TestAllTypes_OneofBytes); ok {
			return x.OneofBytes
		}
	}
	return nil
}

func (x *TestAllTypes) GetOneofBool() bool {
	if x != nil {
		if x, ok := x.OneofField.(*TestAllTypes_OneofBool); ok {
			return x.OneofBool
		}
	}
	return false
}

func (x *TestAllTypes) GetOneofUint64() uint64 {
	if x != nil {
		if x, ok := x.OneofField.(*TestAllTypes_OneofUint64); ok {
			return x.OneofUint64
		}
	}
	return 0
}

func (x *TestAllTypes) GetOneofFloat() float32 {
	if x != nil {
		if x, ok := x.OneofField.(*TestAllTypes_OneofFloat); ok {
			return x.OneofFloat
		}
	}
	return 0
}

func (x *TestAllTypes) GetOneofDouble() float64 {
	if x != nil {
		if x, ok := x.OneofField.(*TestAllTypes_OneofDouble); ok {
			return x.OneofDouble
		}
	}
	return 0
}

func (x *TestAllTypes) GetOneofEnum() TestAllTypes_NestedEnum {
	if x != nil {
		if x, ok := x.OneofField.(*TestAllTypes_OneofEnum); ok {
			return x.OneofEnum
		}
	}
	return TestAllTypes_FOO
}

func (x *TestAllTypes) GetOneofgroup() *TestAllTypes_OneofGroup {
	if x != nil {
		if x, ok := x.OneofField.(*TestAllTypes_Oneofgroup); ok {
			return x.Oneofgroup
		}
	}
	return nil
}

func (x *TestAllTypes) GetOneofOptional() isTestAllTypes_OneofOptional {
	if x != nil {
		return x.OneofOptional
	}
	return nil
}

func (x *TestAllTypes) GetOneofOptionalUint32() uint32 {
	if x != nil {
		if x, ok := x.OneofOptional.(*TestAllTypes_OneofOptionalUint32); ok {
			return x.OneofOptionalUint32
		}
	}
	return 0
}

type isTestAllTypes_OneofField interface {
	isTestAllTypes_OneofField()
}

type TestAllTypes_OneofUint32 struct {
	OneofUint32 uint32 `protobuf:"varint,111,opt,name=oneof_uint32,json=oneofUint32,oneof"`
}

type TestAllTypes_OneofNestedMessage struct {
	OneofNestedMessage *TestAllTypes_NestedMessage `protobuf:"bytes,112,opt,name=oneof_nested_message,json=oneofNestedMessage,oneof"`
}

type TestAllTypes_OneofString struct {
	OneofString string `protobuf:"bytes,113,opt,name=oneof_string,json=oneofString,oneof"`
}

type TestAllTypes_OneofBytes struct {
	OneofBytes []byte `protobuf:"bytes,114,opt,name=oneof_bytes,json=oneofBytes,oneof"`
}

type TestAllTypes_OneofBool struct {
	OneofBool bool `protobuf:"varint,115,opt,name=oneof_bool,json=oneofBool,oneof"`
}

type TestAllTypes_OneofUint64 struct {
	OneofUint64 uint64 `protobuf:"varint,116,opt,name=oneof_uint64,json=oneofUint64,oneof"`
}

type TestAllTypes_OneofFloat struct {
	OneofFloat float32 `protobuf:"fixed32,117,opt,name=oneof_float,json=oneofFloat,oneof"`
}

type TestAllTypes_OneofDouble struct {
	OneofDouble float64 `protobuf:"fixed64,118,opt,name=oneof_double,json=oneofDouble,oneof"`
}

type TestAllTypes_OneofEnum struct {
	OneofEnum TestAllTypes_NestedEnum `protobuf:"varint,119,opt,name=oneof_enum,json=oneofEnum,enum=goproto.proto.test.TestAllTypes_NestedEnum,oneof"`
}

type TestAllTypes_Oneofgroup struct {
	Oneofgroup *TestAllTypes_OneofGroup `protobuf:"group,121,opt,name=OneofGroup,json=oneofgroup,oneof"`
}

func (*TestAllTypes_OneofUint32) isTestAllTypes_OneofField() {}

func (*TestAllTypes_OneofNestedMessage) isTestAllTypes_OneofField() {}

func (*TestAllTypes_OneofString) isTestAllTypes_OneofField() {}

func (*TestAllTypes_OneofBytes) isTestAllTypes_OneofField() {}

func (*TestAllTypes_OneofBool) isTestAllTypes_OneofField() {}

func (*TestAllTypes_OneofUint64) isTestAllTypes_OneofField() {}

func (*TestAllTypes_OneofFloat) isTestAllTypes_OneofField() {}

func (*TestAllTypes_OneofDouble) isTestAllTypes_OneofField() {}

func (*TestAllTypes_OneofEnum) isTestAllTypes_OneofField() {}

func (*TestAllTypes_Oneofgroup) isTestAllTypes_OneofField() {}

type isTestAllTypes_OneofOptional interface {
	isTestAllTypes_OneofOptional()
}

type TestAllTypes_OneofOptionalUint32 struct {
	OneofOptionalUint32 uint32 `protobuf:"varint,120,opt,name=oneof_optional_uint32,json=oneofOptionalUint32,oneof"`
}

func (*TestAllTypes_OneofOptionalUint32) isTestAllTypes_OneofOptional() {}

type TestManyMessageFieldsMessage struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	F1            *TestAllTypes          `protobuf:"bytes,1,opt,name=f1" json:"f1,omitempty"`
	F2            *TestAllTypes          `protobuf:"bytes,2,opt,name=f2" json:"f2,omitempty"`
	F3            *TestAllTypes          `protobuf:"bytes,3,opt,name=f3" json:"f3,omitempty"`
	F4            *TestAllTypes          `protobuf:"bytes,4,opt,name=f4" json:"f4,omitempty"`
	F5            *TestAllTypes          `protobuf:"bytes,5,opt,name=f5" json:"f5,omitempty"`
	F6            *TestAllTypes          `protobuf:"bytes,6,opt,name=f6" json:"f6,omitempty"`
	F7            *TestAllTypes          `protobuf:"bytes,7,opt,name=f7" json:"f7,omitempty"`
	F8            *TestAllTypes          `protobuf:"bytes,8,opt,name=f8" json:"f8,omitempty"`
	F9            *TestAllTypes          `protobuf:"bytes,9,opt,name=f9" json:"f9,omitempty"`
	F10           *TestAllTypes          `protobuf:"bytes,10,opt,name=f10" json:"f10,omitempty"`
	F11           *TestAllTypes          `protobuf:"bytes,11,opt,name=f11" json:"f11,omitempty"`
	F12           *TestAllTypes          `protobuf:"bytes,12,opt,name=f12" json:"f12,omitempty"`
	F13           *TestAllTypes          `protobuf:"bytes,13,opt,name=f13" json:"f13,omitempty"`
	F14           *TestAllTypes          `protobuf:"bytes,14,opt,name=f14" json:"f14,omitempty"`
	F15           *TestAllTypes          `protobuf:"bytes,15,opt,name=f15" json:"f15,omitempty"`
	F16           *TestAllTypes          `protobuf:"bytes,16,opt,name=f16" json:"f16,omitempty"`
	F17           *TestAllTypes          `protobuf:"bytes,17,opt,name=f17" json:"f17,omitempty"`
	F18           *TestAllTypes          `protobuf:"bytes,18,opt,name=f18" json:"f18,omitempty"`
	F19           *TestAllTypes          `protobuf:"bytes,19,opt,name=f19" json:"f19,omitempty"`
	F20           *TestAllTypes          `protobuf:"bytes,20,opt,name=f20" json:"f20,omitempty"`
	F21           *TestAllTypes          `protobuf:"bytes,21,opt,name=f21" json:"f21,omitempty"`
	F22           *TestAllTypes          `protobuf:"bytes,22,opt,name=f22" json:"f22,omitempty"`
	F23           *TestAllTypes          `protobuf:"bytes,23,opt,name=f23" json:"f23,omitempty"`
	F24           *TestAllTypes          `protobuf:"bytes,24,opt,name=f24" json:"f24,omitempty"`
	F25           *TestAllTypes          `protobuf:"bytes,25,opt,name=f25" json:"f25,omitempty"`
	F26           *TestAllTypes          `protobuf:"bytes,26,opt,name=f26" json:"f26,omitempty"`
	F27           *TestAllTypes          `protobuf:"bytes,27,opt,name=f27" json:"f27,omitempty"`
	F28           *TestAllTypes          `protobuf:"bytes,28,opt,name=f28" json:"f28,omitempty"`
	F29           *TestAllTypes          `protobuf:"bytes,29,opt,name=f29" json:"f29,omitempty"`
	F30           *TestAllTypes          `protobuf:"bytes,30,opt,name=f30" json:"f30,omitempty"`
	F31           *TestAllTypes          `protobuf:"bytes,31,opt,name=f31" json:"f31,omitempty"`
	F32           *TestAllTypes          `protobuf:"bytes,32,opt,name=f32" json:"f32,omitempty"`
	F33           *TestAllTypes          `protobuf:"bytes,33,opt,name=f33" json:"f33,omitempty"`
	F34           *TestAllTypes          `protobuf:"bytes,34,opt,name=f34" json:"f34,omitempty"`
	F35           *TestAllTypes          `protobuf:"bytes,35,opt,name=f35" json:"f35,omitempty"`
	F36           *TestAllTypes          `protobuf:"bytes,36,opt,name=f36" json:"f36,omitempty"`
	F37           *TestAllTypes          `protobuf:"bytes,37,opt,name=f37" json:"f37,omitempty"`
	F38           *TestAllTypes          `protobuf:"bytes,38,opt,name=f38" json:"f38,omitempty"`
	F39           *TestAllTypes          `protobuf:"bytes,39,opt,name=f39" json:"f39,omitempty"`
	F40           *TestAllTypes          `protobuf:"bytes,40,opt,name=f40" json:"f40,omitempty"`
	F41           *TestAllTypes          `protobuf:"bytes,41,opt,name=f41" json:"f41,omitempty"`
	F42           *TestAllTypes          `protobuf:"bytes,42,opt,name=f42" json:"f42,omitempty"`
	F43           *TestAllTypes          `protobuf:"bytes,43,opt,name=f43" json:"f43,omitempty"`
	F44           *TestAllTypes          `protobuf:"bytes,44,opt,name=f44" json:"f44,omitempty"`
	F45           *TestAllTypes          `protobuf:"bytes,45,opt,name=f45" json:"f45,omitempty"`
	F46           *TestAllTypes          `protobuf:"bytes,46,opt,name=f46" json:"f46,omitempty"`
	F47           *TestAllTypes          `protobuf:"bytes,47,opt,name=f47" json:"f47,omitempty"`
	F48           *TestAllTypes          `protobuf:"bytes,48,opt,name=f48" json:"f48,omitempty"`
	F49           *TestAllTypes          `protobuf:"bytes,49,opt,name=f49" json:"f49,omitempty"`
	F50           *TestAllTypes          `protobuf:"bytes,50,opt,name=f50" json:"f50,omitempty"`
	F51           *TestAllTypes          `protobuf:"bytes,51,opt,name=f51" json:"f51,omitempty"`
	F52           *TestAllTypes          `protobuf:"bytes,52,opt,name=f52" json:"f52,omitempty"`
	F53           *TestAllTypes          `protobuf:"bytes,53,opt,name=f53" json:"f53,omitempty"`
	F54           *TestAllTypes          `protobuf:"bytes,54,opt,name=f54" json:"f54,omitempty"`
	F55           *TestAllTypes          `protobuf:"bytes,55,opt,name=f55" json:"f55,omitempty"`
	F56           *TestAllTypes          `protobuf:"bytes,56,opt,name=f56" json:"f56,omitempty"`
	F57           *TestAllTypes          `protobuf:"bytes,57,opt,name=f57" json:"f57,omitempty"`
	F58           *TestAllTypes          `protobuf:"bytes,58,opt,name=f58" json:"f58,omitempty"`
	F59           *TestAllTypes          `protobuf:"bytes,59,opt,name=f59" json:"f59,omitempty"`
	F60           *TestAllTypes          `protobuf:"bytes,60,opt,name=f60" json:"f60,omitempty"`
	F61           *TestAllTypes          `protobuf:"bytes,61,opt,name=f61" json:"f61,omitempty"`
	F62           *TestAllTypes          `protobuf:"bytes,62,opt,name=f62" json:"f62,omitempty"`
	F63           *TestAllTypes          `protobuf:"bytes,63,opt,name=f63" json:"f63,omitempty"`
	F64           *TestAllTypes          `protobuf:"bytes,64,opt,name=f64" json:"f64,omitempty"`
	F65           *TestAllTypes          `protobuf:"bytes,65,opt,name=f65" json:"f65,omitempty"`
	F66           *TestAllTypes          `protobuf:"bytes,66,opt,name=f66" json:"f66,omitempty"`
	F67           *TestAllTypes          `protobuf:"bytes,67,opt,name=f67" json:"f67,omitempty"`
	F68           *TestAllTypes          `protobuf:"bytes,68,opt,name=f68" json:"f68,omitempty"`
	F69           *TestAllTypes          `protobuf:"bytes,69,opt,name=f69" json:"f69,omitempty"`
	F70           *TestAllTypes          `protobuf:"bytes,70,opt,name=f70" json:"f70,omitempty"`
	F71           *TestAllTypes          `protobuf:"bytes,71,opt,name=f71" json:"f71,omitempty"`
	F72           *TestAllTypes          `protobuf:"bytes,72,opt,name=f72" json:"f72,omitempty"`
	F73           *TestAllTypes          `protobuf:"bytes,73,opt,name=f73" json:"f73,omitempty"`
	F74           *TestAllTypes          `protobuf:"bytes,74,opt,name=f74" json:"f74,omitempty"`
	F75           *TestAllTypes          `protobuf:"bytes,75,opt,name=f75" json:"f75,omitempty"`
	F76           *TestAllTypes          `protobuf:"bytes,76,opt,name=f76" json:"f76,omitempty"`
	F77           *TestAllTypes          `protobuf:"bytes,77,opt,name=f77" json:"f77,omitempty"`
	F78           *TestAllTypes          `protobuf:"bytes,78,opt,name=f78" json:"f78,omitempty"`
	F79           *TestAllTypes          `protobuf:"bytes,79,opt,name=f79" json:"f79,omitempty"`
	F80           *TestAllTypes          `protobuf:"bytes,80,opt,name=f80" json:"f80,omitempty"`
	F81           *TestAllTypes          `protobuf:"bytes,81,opt,name=f81" json:"f81,omitempty"`
	F82           *TestAllTypes          `protobuf:"bytes,82,opt,name=f82" json:"f82,omitempty"`
	F83           *TestAllTypes          `protobuf:"bytes,83,opt,name=f83" json:"f83,omitempty"`
	F84           *TestAllTypes          `protobuf:"bytes,84,opt,name=f84" json:"f84,omitempty"`
	F85           *TestAllTypes          `protobuf:"bytes,85,opt,name=f85" json:"f85,omitempty"`
	F86           *TestAllTypes          `protobuf:"bytes,86,opt,name=f86" json:"f86,omitempty"`
	F87           *TestAllTypes          `protobuf:"bytes,87,opt,name=f87" json:"f87,omitempty"`
	F88           *TestAllTypes          `protobuf:"bytes,88,opt,name=f88" json:"f88,omitempty"`
	F89           *TestAllTypes          `protobuf:"bytes,89,opt,name=f89" json:"f89,omitempty"`
	F90           *TestAllTypes          `protobuf:"bytes,90,opt,name=f90" json:"f90,omitempty"`
	F91           *TestAllTypes          `protobuf:"bytes,91,opt,name=f91" json:"f91,omitempty"`
	F92           *TestAllTypes          `protobuf:"bytes,92,opt,name=f92" json:"f92,omitempty"`
	F93           *TestAllTypes          `protobuf:"bytes,93,opt,name=f93" json:"f93,omitempty"`
	F94           *TestAllTypes          `protobuf:"bytes,94,opt,name=f94" json:"f94,omitempty"`
	F95           *TestAllTypes          `protobuf:"bytes,95,opt,name=f95" json:"f95,omitempty"`
	F96           *TestAllTypes          `protobuf:"bytes,96,opt,name=f96" json:"f96,omitempty"`
	F97           *TestAllTypes          `protobuf:"bytes,97,opt,name=f97" json:"f97,omitempty"`
	F98           *TestAllTypes          `protobuf:"bytes,98,opt,name=f98" json:"f98,omitempty"`
	F99           *TestAllTypes          `protobuf:"bytes,99,opt,name=f99" json:"f99,omitempty"`
	F100          *TestAllTypes          `protobuf:"bytes,100,opt,name=f100" json:"f100,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestManyMessageFieldsMessage) Reset() {
	*x = TestManyMessageFieldsMessage{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestManyMessageFieldsMessage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestManyMessageFieldsMessage) ProtoMessage() {}

func (x *TestManyMessageFieldsMessage) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestManyMessageFieldsMessage.ProtoReflect.Descriptor instead.
func (*TestManyMessageFieldsMessage) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{1}
}

func (x *TestManyMessageFieldsMessage) GetF1() *TestAllTypes {
	if x != nil {
		return x.F1
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF2() *TestAllTypes {
	if x != nil {
		return x.F2
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF3() *TestAllTypes {
	if x != nil {
		return x.F3
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF4() *TestAllTypes {
	if x != nil {
		return x.F4
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF5() *TestAllTypes {
	if x != nil {
		return x.F5
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF6() *TestAllTypes {
	if x != nil {
		return x.F6
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF7() *TestAllTypes {
	if x != nil {
		return x.F7
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF8() *TestAllTypes {
	if x != nil {
		return x.F8
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF9() *TestAllTypes {
	if x != nil {
		return x.F9
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF10() *TestAllTypes {
	if x != nil {
		return x.F10
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF11() *TestAllTypes {
	if x != nil {
		return x.F11
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF12() *TestAllTypes {
	if x != nil {
		return x.F12
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF13() *TestAllTypes {
	if x != nil {
		return x.F13
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF14() *TestAllTypes {
	if x != nil {
		return x.F14
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF15() *TestAllTypes {
	if x != nil {
		return x.F15
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF16() *TestAllTypes {
	if x != nil {
		return x.F16
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF17() *TestAllTypes {
	if x != nil {
		return x.F17
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF18() *TestAllTypes {
	if x != nil {
		return x.F18
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF19() *TestAllTypes {
	if x != nil {
		return x.F19
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF20() *TestAllTypes {
	if x != nil {
		return x.F20
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF21() *TestAllTypes {
	if x != nil {
		return x.F21
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF22() *TestAllTypes {
	if x != nil {
		return x.F22
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF23() *TestAllTypes {
	if x != nil {
		return x.F23
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF24() *TestAllTypes {
	if x != nil {
		return x.F24
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF25() *TestAllTypes {
	if x != nil {
		return x.F25
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF26() *TestAllTypes {
	if x != nil {
		return x.F26
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF27() *TestAllTypes {
	if x != nil {
		return x.F27
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF28() *TestAllTypes {
	if x != nil {
		return x.F28
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF29() *TestAllTypes {
	if x != nil {
		return x.F29
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF30() *TestAllTypes {
	if x != nil {
		return x.F30
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF31() *TestAllTypes {
	if x != nil {
		return x.F31
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF32() *TestAllTypes {
	if x != nil {
		return x.F32
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF33() *TestAllTypes {
	if x != nil {
		return x.F33
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF34() *TestAllTypes {
	if x != nil {
		return x.F34
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF35() *TestAllTypes {
	if x != nil {
		return x.F35
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF36() *TestAllTypes {
	if x != nil {
		return x.F36
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF37() *TestAllTypes {
	if x != nil {
		return x.F37
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF38() *TestAllTypes {
	if x != nil {
		return x.F38
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF39() *TestAllTypes {
	if x != nil {
		return x.F39
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF40() *TestAllTypes {
	if x != nil {
		return x.F40
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF41() *TestAllTypes {
	if x != nil {
		return x.F41
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF42() *TestAllTypes {
	if x != nil {
		return x.F42
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF43() *TestAllTypes {
	if x != nil {
		return x.F43
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF44() *TestAllTypes {
	if x != nil {
		return x.F44
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF45() *TestAllTypes {
	if x != nil {
		return x.F45
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF46() *TestAllTypes {
	if x != nil {
		return x.F46
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF47() *TestAllTypes {
	if x != nil {
		return x.F47
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF48() *TestAllTypes {
	if x != nil {
		return x.F48
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF49() *TestAllTypes {
	if x != nil {
		return x.F49
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF50() *TestAllTypes {
	if x != nil {
		return x.F50
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF51() *TestAllTypes {
	if x != nil {
		return x.F51
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF52() *TestAllTypes {
	if x != nil {
		return x.F52
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF53() *TestAllTypes {
	if x != nil {
		return x.F53
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF54() *TestAllTypes {
	if x != nil {
		return x.F54
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF55() *TestAllTypes {
	if x != nil {
		return x.F55
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF56() *TestAllTypes {
	if x != nil {
		return x.F56
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF57() *TestAllTypes {
	if x != nil {
		return x.F57
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF58() *TestAllTypes {
	if x != nil {
		return x.F58
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF59() *TestAllTypes {
	if x != nil {
		return x.F59
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF60() *TestAllTypes {
	if x != nil {
		return x.F60
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF61() *TestAllTypes {
	if x != nil {
		return x.F61
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF62() *TestAllTypes {
	if x != nil {
		return x.F62
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF63() *TestAllTypes {
	if x != nil {
		return x.F63
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF64() *TestAllTypes {
	if x != nil {
		return x.F64
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF65() *TestAllTypes {
	if x != nil {
		return x.F65
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF66() *TestAllTypes {
	if x != nil {
		return x.F66
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF67() *TestAllTypes {
	if x != nil {
		return x.F67
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF68() *TestAllTypes {
	if x != nil {
		return x.F68
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF69() *TestAllTypes {
	if x != nil {
		return x.F69
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF70() *TestAllTypes {
	if x != nil {
		return x.F70
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF71() *TestAllTypes {
	if x != nil {
		return x.F71
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF72() *TestAllTypes {
	if x != nil {
		return x.F72
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF73() *TestAllTypes {
	if x != nil {
		return x.F73
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF74() *TestAllTypes {
	if x != nil {
		return x.F74
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF75() *TestAllTypes {
	if x != nil {
		return x.F75
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF76() *TestAllTypes {
	if x != nil {
		return x.F76
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF77() *TestAllTypes {
	if x != nil {
		return x.F77
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF78() *TestAllTypes {
	if x != nil {
		return x.F78
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF79() *TestAllTypes {
	if x != nil {
		return x.F79
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF80() *TestAllTypes {
	if x != nil {
		return x.F80
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF81() *TestAllTypes {
	if x != nil {
		return x.F81
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF82() *TestAllTypes {
	if x != nil {
		return x.F82
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF83() *TestAllTypes {
	if x != nil {
		return x.F83
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF84() *TestAllTypes {
	if x != nil {
		return x.F84
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF85() *TestAllTypes {
	if x != nil {
		return x.F85
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF86() *TestAllTypes {
	if x != nil {
		return x.F86
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF87() *TestAllTypes {
	if x != nil {
		return x.F87
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF88() *TestAllTypes {
	if x != nil {
		return x.F88
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF89() *TestAllTypes {
	if x != nil {
		return x.F89
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF90() *TestAllTypes {
	if x != nil {
		return x.F90
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF91() *TestAllTypes {
	if x != nil {
		return x.F91
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF92() *TestAllTypes {
	if x != nil {
		return x.F92
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF93() *TestAllTypes {
	if x != nil {
		return x.F93
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF94() *TestAllTypes {
	if x != nil {
		return x.F94
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF95() *TestAllTypes {
	if x != nil {
		return x.F95
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF96() *TestAllTypes {
	if x != nil {
		return x.F96
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF97() *TestAllTypes {
	if x != nil {
		return x.F97
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF98() *TestAllTypes {
	if x != nil {
		return x.F98
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF99() *TestAllTypes {
	if x != nil {
		return x.F99
	}
	return nil
}

func (x *TestManyMessageFieldsMessage) GetF100() *TestAllTypes {
	if x != nil {
		return x.F100
	}
	return nil
}

// Deprecated: Marked as deprecated in internal/testprotos/test/test.proto.
type TestDeprecatedMessage struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Deprecated: Marked as deprecated in internal/testprotos/test/test.proto.
	DeprecatedInt32 *int32 `protobuf:"varint,1,opt,name=deprecated_int32,json=deprecatedInt32" json:"deprecated_int32,omitempty"`
	// Types that are valid to be assigned to DeprecatedOneof:
	//
	//	*TestDeprecatedMessage_DeprecatedOneofField
	DeprecatedOneof isTestDeprecatedMessage_DeprecatedOneof `protobuf_oneof:"deprecated_oneof"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *TestDeprecatedMessage) Reset() {
	*x = TestDeprecatedMessage{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestDeprecatedMessage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestDeprecatedMessage) ProtoMessage() {}

func (x *TestDeprecatedMessage) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestDeprecatedMessage.ProtoReflect.Descriptor instead.
func (*TestDeprecatedMessage) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{2}
}

// Deprecated: Marked as deprecated in internal/testprotos/test/test.proto.
func (x *TestDeprecatedMessage) GetDeprecatedInt32() int32 {
	if x != nil && x.DeprecatedInt32 != nil {
		return *x.DeprecatedInt32
	}
	return 0
}

func (x *TestDeprecatedMessage) GetDeprecatedOneof() isTestDeprecatedMessage_DeprecatedOneof {
	if x != nil {
		return x.DeprecatedOneof
	}
	return nil
}

// Deprecated: Marked as deprecated in internal/testprotos/test/test.proto.
func (x *TestDeprecatedMessage) GetDeprecatedOneofField() int32 {
	if x != nil {
		if x, ok := x.DeprecatedOneof.(*TestDeprecatedMessage_DeprecatedOneofField); ok {
			return x.DeprecatedOneofField
		}
	}
	return 0
}

type isTestDeprecatedMessage_DeprecatedOneof interface {
	isTestDeprecatedMessage_DeprecatedOneof()
}

type TestDeprecatedMessage_DeprecatedOneofField struct {
	// Deprecated: Marked as deprecated in internal/testprotos/test/test.proto.
	DeprecatedOneofField int32 `protobuf:"varint,2,opt,name=deprecated_oneof_field,json=deprecatedOneofField,oneof"`
}

func (*TestDeprecatedMessage_DeprecatedOneofField) isTestDeprecatedMessage_DeprecatedOneof() {}

type TestOneofWithRequired struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to OneofField:
	//
	//	*TestOneofWithRequired_OneofUint32
	//	*TestOneofWithRequired_OneofRequired
	OneofField    isTestOneofWithRequired_OneofField `protobuf_oneof:"oneof_field"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestOneofWithRequired) Reset() {
	*x = TestOneofWithRequired{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestOneofWithRequired) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestOneofWithRequired) ProtoMessage() {}

func (x *TestOneofWithRequired) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestOneofWithRequired.ProtoReflect.Descriptor instead.
func (*TestOneofWithRequired) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{3}
}

func (x *TestOneofWithRequired) GetOneofField() isTestOneofWithRequired_OneofField {
	if x != nil {
		return x.OneofField
	}
	return nil
}

func (x *TestOneofWithRequired) GetOneofUint32() uint32 {
	if x != nil {
		if x, ok := x.OneofField.(*TestOneofWithRequired_OneofUint32); ok {
			return x.OneofUint32
		}
	}
	return 0
}

func (x *TestOneofWithRequired) GetOneofRequired() *required.Message {
	if x != nil {
		if x, ok := x.OneofField.(*TestOneofWithRequired_OneofRequired); ok {
			return x.OneofRequired
		}
	}
	return nil
}

type isTestOneofWithRequired_OneofField interface {
	isTestOneofWithRequired_OneofField()
}

type TestOneofWithRequired_OneofUint32 struct {
	OneofUint32 uint32 `protobuf:"varint,1,opt,name=oneof_uint32,json=oneofUint32,oneof"`
}

type TestOneofWithRequired_OneofRequired struct {
	OneofRequired *required.Message `protobuf:"bytes,2,opt,name=oneof_required,json=oneofRequired,oneof"`
}

func (*TestOneofWithRequired_OneofUint32) isTestOneofWithRequired_OneofField() {}

func (*TestOneofWithRequired_OneofRequired) isTestOneofWithRequired_OneofField() {}

type ForeignMessage struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	C             *int32                 `protobuf:"varint,1,opt,name=c" json:"c,omitempty"`
	D             *int32                 `protobuf:"varint,2,opt,name=d" json:"d,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ForeignMessage) Reset() {
	*x = ForeignMessage{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ForeignMessage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ForeignMessage) ProtoMessage() {}

func (x *ForeignMessage) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ForeignMessage.ProtoReflect.Descriptor instead.
func (*ForeignMessage) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{4}
}

func (x *ForeignMessage) GetC() int32 {
	if x != nil && x.C != nil {
		return *x.C
	}
	return 0
}

func (x *ForeignMessage) GetD() int32 {
	if x != nil && x.D != nil {
		return *x.D
	}
	return 0
}

type TestReservedFields struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestReservedFields) Reset() {
	*x = TestReservedFields{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestReservedFields) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestReservedFields) ProtoMessage() {}

func (x *TestReservedFields) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestReservedFields.ProtoReflect.Descriptor instead.
func (*TestReservedFields) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{5}
}

type TestAllExtensions struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	extensionFields protoimpl.ExtensionFields
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *TestAllExtensions) Reset() {
	*x = TestAllExtensions{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestAllExtensions) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestAllExtensions) ProtoMessage() {}

func (x *TestAllExtensions) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestAllExtensions.ProtoReflect.Descriptor instead.
func (*TestAllExtensions) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{6}
}

type OptionalGroup struct {
	state                 protoimpl.MessageState           `protogen:"open.v1"`
	A                     *int32                           `protobuf:"varint,17,opt,name=a" json:"a,omitempty"`
	SameFieldNumber       *int32                           `protobuf:"varint,16,opt,name=same_field_number,json=sameFieldNumber" json:"same_field_number,omitempty"`
	OptionalNestedMessage *TestAllExtensions_NestedMessage `protobuf:"bytes,1000,opt,name=optional_nested_message,json=optionalNestedMessage" json:"optional_nested_message,omitempty"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

func (x *OptionalGroup) Reset() {
	*x = OptionalGroup{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OptionalGroup) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OptionalGroup) ProtoMessage() {}

func (x *OptionalGroup) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OptionalGroup.ProtoReflect.Descriptor instead.
func (*OptionalGroup) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{7}
}

func (x *OptionalGroup) GetA() int32 {
	if x != nil && x.A != nil {
		return *x.A
	}
	return 0
}

func (x *OptionalGroup) GetSameFieldNumber() int32 {
	if x != nil && x.SameFieldNumber != nil {
		return *x.SameFieldNumber
	}
	return 0
}

func (x *OptionalGroup) GetOptionalNestedMessage() *TestAllExtensions_NestedMessage {
	if x != nil {
		return x.OptionalNestedMessage
	}
	return nil
}

type RepeatedGroup struct {
	state                 protoimpl.MessageState           `protogen:"open.v1"`
	A                     *int32                           `protobuf:"varint,47,opt,name=a" json:"a,omitempty"`
	OptionalNestedMessage *TestAllExtensions_NestedMessage `protobuf:"bytes,1001,opt,name=optional_nested_message,json=optionalNestedMessage" json:"optional_nested_message,omitempty"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

func (x *RepeatedGroup) Reset() {
	*x = RepeatedGroup{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RepeatedGroup) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RepeatedGroup) ProtoMessage() {}

func (x *RepeatedGroup) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RepeatedGroup.ProtoReflect.Descriptor instead.
func (*RepeatedGroup) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{8}
}

func (x *RepeatedGroup) GetA() int32 {
	if x != nil && x.A != nil {
		return *x.A
	}
	return 0
}

func (x *RepeatedGroup) GetOptionalNestedMessage() *TestAllExtensions_NestedMessage {
	if x != nil {
		return x.OptionalNestedMessage
	}
	return nil
}

type TestNestedExtension struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestNestedExtension) Reset() {
	*x = TestNestedExtension{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestNestedExtension) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestNestedExtension) ProtoMessage() {}

func (x *TestNestedExtension) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestNestedExtension.ProtoReflect.Descriptor instead.
func (*TestNestedExtension) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{9}
}

type TestRequired struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	RequiredField *int32                 `protobuf:"varint,1,req,name=required_field,json=requiredField" json:"required_field,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestRequired) Reset() {
	*x = TestRequired{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestRequired) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestRequired) ProtoMessage() {}

func (x *TestRequired) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[10]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestRequired.ProtoReflect.Descriptor instead.
func (*TestRequired) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{10}
}

func (x *TestRequired) GetRequiredField() int32 {
	if x != nil && x.RequiredField != nil {
		return *x.RequiredField
	}
	return 0
}

type TestRequiredForeign struct {
	state           protoimpl.MessageState  `protogen:"open.v1"`
	OptionalMessage *TestRequired           `protobuf:"bytes,1,opt,name=optional_message,json=optionalMessage" json:"optional_message,omitempty"`
	RepeatedMessage []*TestRequired         `protobuf:"bytes,2,rep,name=repeated_message,json=repeatedMessage" json:"repeated_message,omitempty"`
	MapMessage      map[int32]*TestRequired `protobuf:"bytes,3,rep,name=map_message,json=mapMessage" json:"map_message,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// Types that are valid to be assigned to OneofField:
	//
	//	*TestRequiredForeign_OneofMessage
	OneofField    isTestRequiredForeign_OneofField `protobuf_oneof:"oneof_field"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestRequiredForeign) Reset() {
	*x = TestRequiredForeign{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestRequiredForeign) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestRequiredForeign) ProtoMessage() {}

func (x *TestRequiredForeign) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestRequiredForeign.ProtoReflect.Descriptor instead.
func (*TestRequiredForeign) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{11}
}

func (x *TestRequiredForeign) GetOptionalMessage() *TestRequired {
	if x != nil {
		return x.OptionalMessage
	}
	return nil
}

func (x *TestRequiredForeign) GetRepeatedMessage() []*TestRequired {
	if x != nil {
		return x.RepeatedMessage
	}
	return nil
}

func (x *TestRequiredForeign) GetMapMessage() map[int32]*TestRequired {
	if x != nil {
		return x.MapMessage
	}
	return nil
}

func (x *TestRequiredForeign) GetOneofField() isTestRequiredForeign_OneofField {
	if x != nil {
		return x.OneofField
	}
	return nil
}

func (x *TestRequiredForeign) GetOneofMessage() *TestRequired {
	if x != nil {
		if x, ok := x.OneofField.(*TestRequiredForeign_OneofMessage); ok {
			return x.OneofMessage
		}
	}
	return nil
}

type isTestRequiredForeign_OneofField interface {
	isTestRequiredForeign_OneofField()
}

type TestRequiredForeign_OneofMessage struct {
	OneofMessage *TestRequired `protobuf:"bytes,4,opt,name=oneof_message,json=oneofMessage,oneof"`
}

func (*TestRequiredForeign_OneofMessage) isTestRequiredForeign_OneofField() {}

type TestRequiredGroupFields struct {
	state         protoimpl.MessageState                   `protogen:"open.v1"`
	Optionalgroup *TestRequiredGroupFields_OptionalGroup   `protobuf:"group,1,opt,name=OptionalGroup,json=optionalgroup" json:"optionalgroup,omitempty"`
	Repeatedgroup []*TestRequiredGroupFields_RepeatedGroup `protobuf:"group,3,rep,name=RepeatedGroup,json=repeatedgroup" json:"repeatedgroup,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestRequiredGroupFields) Reset() {
	*x = TestRequiredGroupFields{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestRequiredGroupFields) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestRequiredGroupFields) ProtoMessage() {}

func (x *TestRequiredGroupFields) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestRequiredGroupFields.ProtoReflect.Descriptor instead.
func (*TestRequiredGroupFields) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{12}
}

func (x *TestRequiredGroupFields) GetOptionalgroup() *TestRequiredGroupFields_OptionalGroup {
	if x != nil {
		return x.Optionalgroup
	}
	return nil
}

func (x *TestRequiredGroupFields) GetRepeatedgroup() []*TestRequiredGroupFields_RepeatedGroup {
	if x != nil {
		return x.Repeatedgroup
	}
	return nil
}

type TestRequiredLazy struct {
	state               protoimpl.MessageState `protogen:"open.v1"`
	OptionalLazyMessage *TestRequired          `protobuf:"bytes,1,opt,name=optional_lazy_message,json=optionalLazyMessage" json:"optional_lazy_message,omitempty"`
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

func (x *TestRequiredLazy) Reset() {
	*x = TestRequiredLazy{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestRequiredLazy) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestRequiredLazy) ProtoMessage() {}

func (x *TestRequiredLazy) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestRequiredLazy.ProtoReflect.Descriptor instead.
func (*TestRequiredLazy) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{13}
}

func (x *TestRequiredLazy) GetOptionalLazyMessage() *TestRequired {
	if x != nil {
		return x.OptionalLazyMessage
	}
	return nil
}

type TestPackedTypes struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	PackedInt32    []int32                `protobuf:"varint,90,rep,packed,name=packed_int32,json=packedInt32" json:"packed_int32,omitempty"`
	PackedInt64    []int64                `protobuf:"varint,91,rep,packed,name=packed_int64,json=packedInt64" json:"packed_int64,omitempty"`
	PackedUint32   []uint32               `protobuf:"varint,92,rep,packed,name=packed_uint32,json=packedUint32" json:"packed_uint32,omitempty"`
	PackedUint64   []uint64               `protobuf:"varint,93,rep,packed,name=packed_uint64,json=packedUint64" json:"packed_uint64,omitempty"`
	PackedSint32   []int32                `protobuf:"zigzag32,94,rep,packed,name=packed_sint32,json=packedSint32" json:"packed_sint32,omitempty"`
	PackedSint64   []int64                `protobuf:"zigzag64,95,rep,packed,name=packed_sint64,json=packedSint64" json:"packed_sint64,omitempty"`
	PackedFixed32  []uint32               `protobuf:"fixed32,96,rep,packed,name=packed_fixed32,json=packedFixed32" json:"packed_fixed32,omitempty"`
	PackedFixed64  []uint64               `protobuf:"fixed64,97,rep,packed,name=packed_fixed64,json=packedFixed64" json:"packed_fixed64,omitempty"`
	PackedSfixed32 []int32                `protobuf:"fixed32,98,rep,packed,name=packed_sfixed32,json=packedSfixed32" json:"packed_sfixed32,omitempty"`
	PackedSfixed64 []int64                `protobuf:"fixed64,99,rep,packed,name=packed_sfixed64,json=packedSfixed64" json:"packed_sfixed64,omitempty"`
	PackedFloat    []float32              `protobuf:"fixed32,100,rep,packed,name=packed_float,json=packedFloat" json:"packed_float,omitempty"`
	PackedDouble   []float64              `protobuf:"fixed64,101,rep,packed,name=packed_double,json=packedDouble" json:"packed_double,omitempty"`
	PackedBool     []bool                 `protobuf:"varint,102,rep,packed,name=packed_bool,json=packedBool" json:"packed_bool,omitempty"`
	PackedEnum     []ForeignEnum          `protobuf:"varint,103,rep,packed,name=packed_enum,json=packedEnum,enum=goproto.proto.test.ForeignEnum" json:"packed_enum,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *TestPackedTypes) Reset() {
	*x = TestPackedTypes{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestPackedTypes) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestPackedTypes) ProtoMessage() {}

func (x *TestPackedTypes) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[14]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestPackedTypes.ProtoReflect.Descriptor instead.
func (*TestPackedTypes) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{14}
}

func (x *TestPackedTypes) GetPackedInt32() []int32 {
	if x != nil {
		return x.PackedInt32
	}
	return nil
}

func (x *TestPackedTypes) GetPackedInt64() []int64 {
	if x != nil {
		return x.PackedInt64
	}
	return nil
}

func (x *TestPackedTypes) GetPackedUint32() []uint32 {
	if x != nil {
		return x.PackedUint32
	}
	return nil
}

func (x *TestPackedTypes) GetPackedUint64() []uint64 {
	if x != nil {
		return x.PackedUint64
	}
	return nil
}

func (x *TestPackedTypes) GetPackedSint32() []int32 {
	if x != nil {
		return x.PackedSint32
	}
	return nil
}

func (x *TestPackedTypes) GetPackedSint64() []int64 {
	if x != nil {
		return x.PackedSint64
	}
	return nil
}

func (x *TestPackedTypes) GetPackedFixed32() []uint32 {
	if x != nil {
		return x.PackedFixed32
	}
	return nil
}

func (x *TestPackedTypes) GetPackedFixed64() []uint64 {
	if x != nil {
		return x.PackedFixed64
	}
	return nil
}

func (x *TestPackedTypes) GetPackedSfixed32() []int32 {
	if x != nil {
		return x.PackedSfixed32
	}
	return nil
}

func (x *TestPackedTypes) GetPackedSfixed64() []int64 {
	if x != nil {
		return x.PackedSfixed64
	}
	return nil
}

func (x *TestPackedTypes) GetPackedFloat() []float32 {
	if x != nil {
		return x.PackedFloat
	}
	return nil
}

func (x *TestPackedTypes) GetPackedDouble() []float64 {
	if x != nil {
		return x.PackedDouble
	}
	return nil
}

func (x *TestPackedTypes) GetPackedBool() []bool {
	if x != nil {
		return x.PackedBool
	}
	return nil
}

func (x *TestPackedTypes) GetPackedEnum() []ForeignEnum {
	if x != nil {
		return x.PackedEnum
	}
	return nil
}

type TestUnpackedTypes struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	UnpackedInt32    []int32                `protobuf:"varint,90,rep,name=unpacked_int32,json=unpackedInt32" json:"unpacked_int32,omitempty"`
	UnpackedInt64    []int64                `protobuf:"varint,91,rep,name=unpacked_int64,json=unpackedInt64" json:"unpacked_int64,omitempty"`
	UnpackedUint32   []uint32               `protobuf:"varint,92,rep,name=unpacked_uint32,json=unpackedUint32" json:"unpacked_uint32,omitempty"`
	UnpackedUint64   []uint64               `protobuf:"varint,93,rep,name=unpacked_uint64,json=unpackedUint64" json:"unpacked_uint64,omitempty"`
	UnpackedSint32   []int32                `protobuf:"zigzag32,94,rep,name=unpacked_sint32,json=unpackedSint32" json:"unpacked_sint32,omitempty"`
	UnpackedSint64   []int64                `protobuf:"zigzag64,95,rep,name=unpacked_sint64,json=unpackedSint64" json:"unpacked_sint64,omitempty"`
	UnpackedFixed32  []uint32               `protobuf:"fixed32,96,rep,name=unpacked_fixed32,json=unpackedFixed32" json:"unpacked_fixed32,omitempty"`
	UnpackedFixed64  []uint64               `protobuf:"fixed64,97,rep,name=unpacked_fixed64,json=unpackedFixed64" json:"unpacked_fixed64,omitempty"`
	UnpackedSfixed32 []int32                `protobuf:"fixed32,98,rep,name=unpacked_sfixed32,json=unpackedSfixed32" json:"unpacked_sfixed32,omitempty"`
	UnpackedSfixed64 []int64                `protobuf:"fixed64,99,rep,name=unpacked_sfixed64,json=unpackedSfixed64" json:"unpacked_sfixed64,omitempty"`
	UnpackedFloat    []float32              `protobuf:"fixed32,100,rep,name=unpacked_float,json=unpackedFloat" json:"unpacked_float,omitempty"`
	UnpackedDouble   []float64              `protobuf:"fixed64,101,rep,name=unpacked_double,json=unpackedDouble" json:"unpacked_double,omitempty"`
	UnpackedBool     []bool                 `protobuf:"varint,102,rep,name=unpacked_bool,json=unpackedBool" json:"unpacked_bool,omitempty"`
	UnpackedEnum     []ForeignEnum          `protobuf:"varint,103,rep,name=unpacked_enum,json=unpackedEnum,enum=goproto.proto.test.ForeignEnum" json:"unpacked_enum,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *TestUnpackedTypes) Reset() {
	*x = TestUnpackedTypes{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestUnpackedTypes) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestUnpackedTypes) ProtoMessage() {}

func (x *TestUnpackedTypes) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[15]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestUnpackedTypes.ProtoReflect.Descriptor instead.
func (*TestUnpackedTypes) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{15}
}

func (x *TestUnpackedTypes) GetUnpackedInt32() []int32 {
	if x != nil {
		return x.UnpackedInt32
	}
	return nil
}

func (x *TestUnpackedTypes) GetUnpackedInt64() []int64 {
	if x != nil {
		return x.UnpackedInt64
	}
	return nil
}

func (x *TestUnpackedTypes) GetUnpackedUint32() []uint32 {
	if x != nil {
		return x.UnpackedUint32
	}
	return nil
}

func (x *TestUnpackedTypes) GetUnpackedUint64() []uint64 {
	if x != nil {
		return x.UnpackedUint64
	}
	return nil
}

func (x *TestUnpackedTypes) GetUnpackedSint32() []int32 {
	if x != nil {
		return x.UnpackedSint32
	}
	return nil
}

func (x *TestUnpackedTypes) GetUnpackedSint64() []int64 {
	if x != nil {
		return x.UnpackedSint64
	}
	return nil
}

func (x *TestUnpackedTypes) GetUnpackedFixed32() []uint32 {
	if x != nil {
		return x.UnpackedFixed32
	}
	return nil
}

func (x *TestUnpackedTypes) GetUnpackedFixed64() []uint64 {
	if x != nil {
		return x.UnpackedFixed64
	}
	return nil
}

func (x *TestUnpackedTypes) GetUnpackedSfixed32() []int32 {
	if x != nil {
		return x.UnpackedSfixed32
	}
	return nil
}

func (x *TestUnpackedTypes) GetUnpackedSfixed64() []int64 {
	if x != nil {
		return x.UnpackedSfixed64
	}
	return nil
}

func (x *TestUnpackedTypes) GetUnpackedFloat() []float32 {
	if x != nil {
		return x.UnpackedFloat
	}
	return nil
}

func (x *TestUnpackedTypes) GetUnpackedDouble() []float64 {
	if x != nil {
		return x.UnpackedDouble
	}
	return nil
}

func (x *TestUnpackedTypes) GetUnpackedBool() []bool {
	if x != nil {
		return x.UnpackedBool
	}
	return nil
}

func (x *TestUnpackedTypes) GetUnpackedEnum() []ForeignEnum {
	if x != nil {
		return x.UnpackedEnum
	}
	return nil
}

type TestPackedExtensions struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	extensionFields protoimpl.ExtensionFields
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *TestPackedExtensions) Reset() {
	*x = TestPackedExtensions{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestPackedExtensions) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestPackedExtensions) ProtoMessage() {}

func (x *TestPackedExtensions) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[16]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestPackedExtensions.ProtoReflect.Descriptor instead.
func (*TestPackedExtensions) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{16}
}

type TestUnpackedExtensions struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	extensionFields protoimpl.ExtensionFields
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *TestUnpackedExtensions) Reset() {
	*x = TestUnpackedExtensions{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestUnpackedExtensions) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestUnpackedExtensions) ProtoMessage() {}

func (x *TestUnpackedExtensions) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[17]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestUnpackedExtensions.ProtoReflect.Descriptor instead.
func (*TestUnpackedExtensions) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{17}
}

// Test that RPC services work.
type FooRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FooRequest) Reset() {
	*x = FooRequest{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FooRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FooRequest) ProtoMessage() {}

func (x *FooRequest) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[18]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FooRequest.ProtoReflect.Descriptor instead.
func (*FooRequest) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{18}
}

type FooResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FooResponse) Reset() {
	*x = FooResponse{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FooResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FooResponse) ProtoMessage() {}

func (x *FooResponse) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[19]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FooResponse.ProtoReflect.Descriptor instead.
func (*FooResponse) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{19}
}

type WeirdDefault struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	WeirdDefault  []byte                 `protobuf:"bytes,1,opt,name=weird_default,json=weirdDefault,def=hello, \\\"world!\\\"\\ndead\\336\\255\\276\\357beef\x60" json:"weird_default,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Default values for WeirdDefault fields.
var (
	Default_WeirdDefault_WeirdDefault = []byte("hello, \"world!\"\ndeadޭ\xbe\xefbeef`")
)

func (x *WeirdDefault) Reset() {
	*x = WeirdDefault{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *WeirdDefault) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WeirdDefault) ProtoMessage() {}

func (x *WeirdDefault) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[20]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WeirdDefault.ProtoReflect.Descriptor instead.
func (*WeirdDefault) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{20}
}

func (x *WeirdDefault) GetWeirdDefault() []byte {
	if x != nil && x.WeirdDefault != nil {
		return x.WeirdDefault
	}
	return append([]byte(nil), Default_WeirdDefault_WeirdDefault...)
}

type RemoteDefault struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Default       *enums.Enum            `protobuf:"varint,1,opt,name=default,enum=goproto.proto.enums.Enum" json:"default,omitempty"`
	Zero          *enums.Enum            `protobuf:"varint,2,opt,name=zero,enum=goproto.proto.enums.Enum,def=0" json:"zero,omitempty"`
	One           *enums.Enum            `protobuf:"varint,3,opt,name=one,enum=goproto.proto.enums.Enum,def=1" json:"one,omitempty"`
	Elevent       *enums.Enum            `protobuf:"varint,4,opt,name=elevent,enum=goproto.proto.enums.Enum,def=11" json:"elevent,omitempty"`
	Seventeen     *enums.Enum            `protobuf:"varint,5,opt,name=seventeen,enum=goproto.proto.enums.Enum,def=17" json:"seventeen,omitempty"`
	Thirtyseven   *enums.Enum            `protobuf:"varint,6,opt,name=thirtyseven,enum=goproto.proto.enums.Enum,def=37" json:"thirtyseven,omitempty"`
	Sixtyseven    *enums.Enum            `protobuf:"varint,7,opt,name=sixtyseven,enum=goproto.proto.enums.Enum,def=67" json:"sixtyseven,omitempty"`
	Negative      *enums.Enum            `protobuf:"varint,8,opt,name=negative,enum=goproto.proto.enums.Enum,def=-1" json:"negative,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

// Default values for RemoteDefault fields.
const (
	Default_RemoteDefault_Zero        = enums.Enum(0)  // enums.Enum_ZERO
	Default_RemoteDefault_One         = enums.Enum(1)  // enums.Enum_ONE
	Default_RemoteDefault_Elevent     = enums.Enum(11) // enums.Enum_ELEVENT
	Default_RemoteDefault_Seventeen   = enums.Enum(17) // enums.Enum_SEVENTEEN
	Default_RemoteDefault_Thirtyseven = enums.Enum(37) // enums.Enum_THIRTYSEVEN
	Default_RemoteDefault_Sixtyseven  = enums.Enum(67) // enums.Enum_SIXTYSEVEN
	Default_RemoteDefault_Negative    = enums.Enum(-1) // enums.Enum_NEGATIVE
)

func (x *RemoteDefault) Reset() {
	*x = RemoteDefault{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RemoteDefault) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RemoteDefault) ProtoMessage() {}

func (x *RemoteDefault) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[21]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RemoteDefault.ProtoReflect.Descriptor instead.
func (*RemoteDefault) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{21}
}

func (x *RemoteDefault) GetDefault() enums.Enum {
	if x != nil && x.Default != nil {
		return *x.Default
	}
	return enums.Enum(1337)
}

func (x *RemoteDefault) GetZero() enums.Enum {
	if x != nil && x.Zero != nil {
		return *x.Zero
	}
	return Default_RemoteDefault_Zero
}

func (x *RemoteDefault) GetOne() enums.Enum {
	if x != nil && x.One != nil {
		return *x.One
	}
	return Default_RemoteDefault_One
}

func (x *RemoteDefault) GetElevent() enums.Enum {
	if x != nil && x.Elevent != nil {
		return *x.Elevent
	}
	return Default_RemoteDefault_Elevent
}

func (x *RemoteDefault) GetSeventeen() enums.Enum {
	if x != nil && x.Seventeen != nil {
		return *x.Seventeen
	}
	return Default_RemoteDefault_Seventeen
}

func (x *RemoteDefault) GetThirtyseven() enums.Enum {
	if x != nil && x.Thirtyseven != nil {
		return *x.Thirtyseven
	}
	return Default_RemoteDefault_Thirtyseven
}

func (x *RemoteDefault) GetSixtyseven() enums.Enum {
	if x != nil && x.Sixtyseven != nil {
		return *x.Sixtyseven
	}
	return Default_RemoteDefault_Sixtyseven
}

func (x *RemoteDefault) GetNegative() enums.Enum {
	if x != nil && x.Negative != nil {
		return *x.Negative
	}
	return Default_RemoteDefault_Negative
}

type TestAllTypes_NestedMessage struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	A             *int32                 `protobuf:"varint,1,opt,name=a" json:"a,omitempty"`
	Corecursive   *TestAllTypes          `protobuf:"bytes,2,opt,name=corecursive" json:"corecursive,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestAllTypes_NestedMessage) Reset() {
	*x = TestAllTypes_NestedMessage{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestAllTypes_NestedMessage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestAllTypes_NestedMessage) ProtoMessage() {}

func (x *TestAllTypes_NestedMessage) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[22]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestAllTypes_NestedMessage.ProtoReflect.Descriptor instead.
func (*TestAllTypes_NestedMessage) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{0, 0}
}

func (x *TestAllTypes_NestedMessage) GetA() int32 {
	if x != nil && x.A != nil {
		return *x.A
	}
	return 0
}

func (x *TestAllTypes_NestedMessage) GetCorecursive() *TestAllTypes {
	if x != nil {
		return x.Corecursive
	}
	return nil
}

type TestAllTypes_OptionalGroup struct {
	state                 protoimpl.MessageState      `protogen:"open.v1"`
	A                     *int32                      `protobuf:"varint,17,opt,name=a" json:"a,omitempty"`
	OptionalNestedMessage *TestAllTypes_NestedMessage `protobuf:"bytes,1000,opt,name=optional_nested_message,json=optionalNestedMessage" json:"optional_nested_message,omitempty"`
	SameFieldNumber       *int32                      `protobuf:"varint,16,opt,name=same_field_number,json=sameFieldNumber" json:"same_field_number,omitempty"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

func (x *TestAllTypes_OptionalGroup) Reset() {
	*x = TestAllTypes_OptionalGroup{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestAllTypes_OptionalGroup) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestAllTypes_OptionalGroup) ProtoMessage() {}

func (x *TestAllTypes_OptionalGroup) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[23]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestAllTypes_OptionalGroup.ProtoReflect.Descriptor instead.
func (*TestAllTypes_OptionalGroup) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{0, 1}
}

func (x *TestAllTypes_OptionalGroup) GetA() int32 {
	if x != nil && x.A != nil {
		return *x.A
	}
	return 0
}

func (x *TestAllTypes_OptionalGroup) GetOptionalNestedMessage() *TestAllTypes_NestedMessage {
	if x != nil {
		return x.OptionalNestedMessage
	}
	return nil
}

func (x *TestAllTypes_OptionalGroup) GetSameFieldNumber() int32 {
	if x != nil && x.SameFieldNumber != nil {
		return *x.SameFieldNumber
	}
	return 0
}

type TestAllTypes_RepeatedGroup struct {
	state                 protoimpl.MessageState      `protogen:"open.v1"`
	A                     *int32                      `protobuf:"varint,47,opt,name=a" json:"a,omitempty"`
	OptionalNestedMessage *TestAllTypes_NestedMessage `protobuf:"bytes,1001,opt,name=optional_nested_message,json=optionalNestedMessage" json:"optional_nested_message,omitempty"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

func (x *TestAllTypes_RepeatedGroup) Reset() {
	*x = TestAllTypes_RepeatedGroup{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestAllTypes_RepeatedGroup) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestAllTypes_RepeatedGroup) ProtoMessage() {}

func (x *TestAllTypes_RepeatedGroup) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[24]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestAllTypes_RepeatedGroup.ProtoReflect.Descriptor instead.
func (*TestAllTypes_RepeatedGroup) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{0, 2}
}

func (x *TestAllTypes_RepeatedGroup) GetA() int32 {
	if x != nil && x.A != nil {
		return *x.A
	}
	return 0
}

func (x *TestAllTypes_RepeatedGroup) GetOptionalNestedMessage() *TestAllTypes_NestedMessage {
	if x != nil {
		return x.OptionalNestedMessage
	}
	return nil
}

type TestAllTypes_OneofGroup struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	A             *int32                 `protobuf:"varint,1,opt,name=a" json:"a,omitempty"`
	B             *int32                 `protobuf:"varint,2,opt,name=b" json:"b,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestAllTypes_OneofGroup) Reset() {
	*x = TestAllTypes_OneofGroup{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[42]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestAllTypes_OneofGroup) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestAllTypes_OneofGroup) ProtoMessage() {}

func (x *TestAllTypes_OneofGroup) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[42]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestAllTypes_OneofGroup.ProtoReflect.Descriptor instead.
func (*TestAllTypes_OneofGroup) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{0, 20}
}

func (x *TestAllTypes_OneofGroup) GetA() int32 {
	if x != nil && x.A != nil {
		return *x.A
	}
	return 0
}

func (x *TestAllTypes_OneofGroup) GetB() int32 {
	if x != nil && x.B != nil {
		return *x.B
	}
	return 0
}

type TestAllExtensions_NestedMessage struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	A             *int32                 `protobuf:"varint,1,opt,name=a" json:"a,omitempty"`
	Corecursive   *TestAllExtensions     `protobuf:"bytes,2,opt,name=corecursive" json:"corecursive,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestAllExtensions_NestedMessage) Reset() {
	*x = TestAllExtensions_NestedMessage{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[43]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestAllExtensions_NestedMessage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestAllExtensions_NestedMessage) ProtoMessage() {}

func (x *TestAllExtensions_NestedMessage) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[43]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestAllExtensions_NestedMessage.ProtoReflect.Descriptor instead.
func (*TestAllExtensions_NestedMessage) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{6, 0}
}

func (x *TestAllExtensions_NestedMessage) GetA() int32 {
	if x != nil && x.A != nil {
		return *x.A
	}
	return 0
}

func (x *TestAllExtensions_NestedMessage) GetCorecursive() *TestAllExtensions {
	if x != nil {
		return x.Corecursive
	}
	return nil
}

type TestRequiredGroupFields_OptionalGroup struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	A             *int32                 `protobuf:"varint,2,req,name=a" json:"a,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestRequiredGroupFields_OptionalGroup) Reset() {
	*x = TestRequiredGroupFields_OptionalGroup{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[45]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestRequiredGroupFields_OptionalGroup) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestRequiredGroupFields_OptionalGroup) ProtoMessage() {}

func (x *TestRequiredGroupFields_OptionalGroup) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[45]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestRequiredGroupFields_OptionalGroup.ProtoReflect.Descriptor instead.
func (*TestRequiredGroupFields_OptionalGroup) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{12, 0}
}

func (x *TestRequiredGroupFields_OptionalGroup) GetA() int32 {
	if x != nil && x.A != nil {
		return *x.A
	}
	return 0
}

type TestRequiredGroupFields_RepeatedGroup struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	A             *int32                 `protobuf:"varint,4,req,name=a" json:"a,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestRequiredGroupFields_RepeatedGroup) Reset() {
	*x = TestRequiredGroupFields_RepeatedGroup{}
	mi := &file_internal_testprotos_test_test_proto_msgTypes[46]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TestRequiredGroupFields_RepeatedGroup) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestRequiredGroupFields_RepeatedGroup) ProtoMessage() {}

func (x *TestRequiredGroupFields_RepeatedGroup) ProtoReflect() protoreflect.Message {
	mi := &file_internal_testprotos_test_test_proto_msgTypes[46]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestRequiredGroupFields_RepeatedGroup.ProtoReflect.Descriptor instead.
func (*TestRequiredGroupFields_RepeatedGroup) Descriptor() ([]byte, []int) {
	return file_internal_testprotos_test_test_proto_rawDescGZIP(), []int{12, 1}
}

func (x *TestRequiredGroupFields_RepeatedGroup) GetA() int32 {
	if x != nil && x.A != nil {
		return *x.A
	}
	return 0
}

var file_internal_testprotos_test_test_proto_extTypes = []protoimpl.ExtensionInfo{
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*int32)(nil),
		Field:         1,
		Name:          "goproto.proto.test.optional_int32",
		Tag:           "varint,1,opt,name=optional_int32",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*int64)(nil),
		Field:         2,
		Name:          "goproto.proto.test.optional_int64",
		Tag:           "varint,2,opt,name=optional_int64",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*uint32)(nil),
		Field:         3,
		Name:          "goproto.proto.test.optional_uint32",
		Tag:           "varint,3,opt,name=optional_uint32",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*uint64)(nil),
		Field:         4,
		Name:          "goproto.proto.test.optional_uint64",
		Tag:           "varint,4,opt,name=optional_uint64",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*int32)(nil),
		Field:         5,
		Name:          "goproto.proto.test.optional_sint32",
		Tag:           "zigzag32,5,opt,name=optional_sint32",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*int64)(nil),
		Field:         6,
		Name:          "goproto.proto.test.optional_sint64",
		Tag:           "zigzag64,6,opt,name=optional_sint64",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*uint32)(nil),
		Field:         7,
		Name:          "goproto.proto.test.optional_fixed32",
		Tag:           "fixed32,7,opt,name=optional_fixed32",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*uint64)(nil),
		Field:         8,
		Name:          "goproto.proto.test.optional_fixed64",
		Tag:           "fixed64,8,opt,name=optional_fixed64",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*int32)(nil),
		Field:         9,
		Name:          "goproto.proto.test.optional_sfixed32",
		Tag:           "fixed32,9,opt,name=optional_sfixed32",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*int64)(nil),
		Field:         10,
		Name:          "goproto.proto.test.optional_sfixed64",
		Tag:           "fixed64,10,opt,name=optional_sfixed64",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*float32)(nil),
		Field:         11,
		Name:          "goproto.proto.test.optional_float",
		Tag:           "fixed32,11,opt,name=optional_float",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*float64)(nil),
		Field:         12,
		Name:          "goproto.proto.test.optional_double",
		Tag:           "fixed64,12,opt,name=optional_double",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*bool)(nil),
		Field:         13,
		Name:          "goproto.proto.test.optional_bool",
		Tag:           "varint,13,opt,name=optional_bool",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*string)(nil),
		Field:         14,
		Name:          "goproto.proto.test.optional_string",
		Tag:           "bytes,14,opt,name=optional_string",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([]byte)(nil),
		Field:         15,
		Name:          "goproto.proto.test.optional_bytes",
		Tag:           "bytes,15,opt,name=optional_bytes",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*OptionalGroup)(nil),
		Field:         16,
		Name:          "goproto.proto.test.optionalgroup",
		Tag:           "group,16,opt,name=OptionalGroup",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*TestAllExtensions_NestedMessage)(nil),
		Field:         18,
		Name:          "goproto.proto.test.optional_nested_message",
		Tag:           "bytes,18,opt,name=optional_nested_message",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*TestAllTypes_NestedEnum)(nil),
		Field:         21,
		Name:          "goproto.proto.test.optional_nested_enum",
		Tag:           "varint,21,opt,name=optional_nested_enum,enum=goproto.proto.test.TestAllTypes_NestedEnum",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([]int32)(nil),
		Field:         31,
		Name:          "goproto.proto.test.repeated_int32",
		Tag:           "varint,31,rep,name=repeated_int32",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([]int64)(nil),
		Field:         32,
		Name:          "goproto.proto.test.repeated_int64",
		Tag:           "varint,32,rep,name=repeated_int64",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([]uint32)(nil),
		Field:         33,
		Name:          "goproto.proto.test.repeated_uint32",
		Tag:           "varint,33,rep,name=repeated_uint32",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([]uint64)(nil),
		Field:         34,
		Name:          "goproto.proto.test.repeated_uint64",
		Tag:           "varint,34,rep,name=repeated_uint64",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([]int32)(nil),
		Field:         35,
		Name:          "goproto.proto.test.repeated_sint32",
		Tag:           "zigzag32,35,rep,name=repeated_sint32",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([]int64)(nil),
		Field:         36,
		Name:          "goproto.proto.test.repeated_sint64",
		Tag:           "zigzag64,36,rep,name=repeated_sint64",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([]uint32)(nil),
		Field:         37,
		Name:          "goproto.proto.test.repeated_fixed32",
		Tag:           "fixed32,37,rep,name=repeated_fixed32",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([]uint64)(nil),
		Field:         38,
		Name:          "goproto.proto.test.repeated_fixed64",
		Tag:           "fixed64,38,rep,name=repeated_fixed64",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([]int32)(nil),
		Field:         39,
		Name:          "goproto.proto.test.repeated_sfixed32",
		Tag:           "fixed32,39,rep,name=repeated_sfixed32",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([]int64)(nil),
		Field:         40,
		Name:          "goproto.proto.test.repeated_sfixed64",
		Tag:           "fixed64,40,rep,name=repeated_sfixed64",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([]float32)(nil),
		Field:         41,
		Name:          "goproto.proto.test.repeated_float",
		Tag:           "fixed32,41,rep,name=repeated_float",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([]float64)(nil),
		Field:         42,
		Name:          "goproto.proto.test.repeated_double",
		Tag:           "fixed64,42,rep,name=repeated_double",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([]bool)(nil),
		Field:         43,
		Name:          "goproto.proto.test.repeated_bool",
		Tag:           "varint,43,rep,name=repeated_bool",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([]string)(nil),
		Field:         44,
		Name:          "goproto.proto.test.repeated_string",
		Tag:           "bytes,44,rep,name=repeated_string",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([][]byte)(nil),
		Field:         45,
		Name:          "goproto.proto.test.repeated_bytes",
		Tag:           "bytes,45,rep,name=repeated_bytes",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([]*RepeatedGroup)(nil),
		Field:         46,
		Name:          "goproto.proto.test.repeatedgroup",
		Tag:           "group,46,rep,name=RepeatedGroup",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([]*TestAllExtensions_NestedMessage)(nil),
		Field:         48,
		Name:          "goproto.proto.test.repeated_nested_message",
		Tag:           "bytes,48,rep,name=repeated_nested_message",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([]TestAllTypes_NestedEnum)(nil),
		Field:         51,
		Name:          "goproto.proto.test.repeated_nested_enum",
		Tag:           "varint,51,rep,name=repeated_nested_enum,enum=goproto.proto.test.TestAllTypes_NestedEnum",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*int32)(nil),
		Field:         81,
		Name:          "goproto.proto.test.default_int32",
		Tag:           "varint,81,opt,name=default_int32,def=81",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*int64)(nil),
		Field:         82,
		Name:          "goproto.proto.test.default_int64",
		Tag:           "varint,82,opt,name=default_int64,def=82",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*uint32)(nil),
		Field:         83,
		Name:          "goproto.proto.test.default_uint32",
		Tag:           "varint,83,opt,name=default_uint32,def=83",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*uint64)(nil),
		Field:         84,
		Name:          "goproto.proto.test.default_uint64",
		Tag:           "varint,84,opt,name=default_uint64,def=84",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*int32)(nil),
		Field:         85,
		Name:          "goproto.proto.test.default_sint32",
		Tag:           "zigzag32,85,opt,name=default_sint32,def=-85",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*int64)(nil),
		Field:         86,
		Name:          "goproto.proto.test.default_sint64",
		Tag:           "zigzag64,86,opt,name=default_sint64,def=86",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*uint32)(nil),
		Field:         87,
		Name:          "goproto.proto.test.default_fixed32",
		Tag:           "fixed32,87,opt,name=default_fixed32,def=87",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*uint64)(nil),
		Field:         88,
		Name:          "goproto.proto.test.default_fixed64",
		Tag:           "fixed64,88,opt,name=default_fixed64,def=88",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*int32)(nil),
		Field:         89,
		Name:          "goproto.proto.test.default_sfixed32",
		Tag:           "fixed32,89,opt,name=default_sfixed32,def=89",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*int64)(nil),
		Field:         80,
		Name:          "goproto.proto.test.default_sfixed64",
		Tag:           "fixed64,80,opt,name=default_sfixed64,def=-90",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*float32)(nil),
		Field:         91,
		Name:          "goproto.proto.test.default_float",
		Tag:           "fixed32,91,opt,name=default_float,def=91.5",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*float64)(nil),
		Field:         92,
		Name:          "goproto.proto.test.default_double",
		Tag:           "fixed64,92,opt,name=default_double,def=92000",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*bool)(nil),
		Field:         93,
		Name:          "goproto.proto.test.default_bool",
		Tag:           "varint,93,opt,name=default_bool,def=1",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*string)(nil),
		Field:         94,
		Name:          "goproto.proto.test.default_string",
		Tag:           "bytes,94,opt,name=default_string,def=hello",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([]byte)(nil),
		Field:         95,
		Name:          "goproto.proto.test.default_bytes",
		Tag:           "bytes,95,opt,name=default_bytes,def=world",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestPackedExtensions)(nil),
		ExtensionType: ([]int32)(nil),
		Field:         90,
		Name:          "goproto.proto.test.packed_int32",
		Tag:           "varint,90,rep,packed,name=packed_int32",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestPackedExtensions)(nil),
		ExtensionType: ([]int64)(nil),
		Field:         91,
		Name:          "goproto.proto.test.packed_int64",
		Tag:           "varint,91,rep,packed,name=packed_int64",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestPackedExtensions)(nil),
		ExtensionType: ([]uint32)(nil),
		Field:         92,
		Name:          "goproto.proto.test.packed_uint32",
		Tag:           "varint,92,rep,packed,name=packed_uint32",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestPackedExtensions)(nil),
		ExtensionType: ([]uint64)(nil),
		Field:         93,
		Name:          "goproto.proto.test.packed_uint64",
		Tag:           "varint,93,rep,packed,name=packed_uint64",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestPackedExtensions)(nil),
		ExtensionType: ([]int32)(nil),
		Field:         94,
		Name:          "goproto.proto.test.packed_sint32",
		Tag:           "zigzag32,94,rep,packed,name=packed_sint32",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestPackedExtensions)(nil),
		ExtensionType: ([]int64)(nil),
		Field:         95,
		Name:          "goproto.proto.test.packed_sint64",
		Tag:           "zigzag64,95,rep,packed,name=packed_sint64",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestPackedExtensions)(nil),
		ExtensionType: ([]uint32)(nil),
		Field:         96,
		Name:          "goproto.proto.test.packed_fixed32",
		Tag:           "fixed32,96,rep,packed,name=packed_fixed32",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestPackedExtensions)(nil),
		ExtensionType: ([]uint64)(nil),
		Field:         97,
		Name:          "goproto.proto.test.packed_fixed64",
		Tag:           "fixed64,97,rep,packed,name=packed_fixed64",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestPackedExtensions)(nil),
		ExtensionType: ([]int32)(nil),
		Field:         98,
		Name:          "goproto.proto.test.packed_sfixed32",
		Tag:           "fixed32,98,rep,packed,name=packed_sfixed32",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestPackedExtensions)(nil),
		ExtensionType: ([]int64)(nil),
		Field:         99,
		Name:          "goproto.proto.test.packed_sfixed64",
		Tag:           "fixed64,99,rep,packed,name=packed_sfixed64",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestPackedExtensions)(nil),
		ExtensionType: ([]float32)(nil),
		Field:         100,
		Name:          "goproto.proto.test.packed_float",
		Tag:           "fixed32,100,rep,packed,name=packed_float",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestPackedExtensions)(nil),
		ExtensionType: ([]float64)(nil),
		Field:         101,
		Name:          "goproto.proto.test.packed_double",
		Tag:           "fixed64,101,rep,packed,name=packed_double",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestPackedExtensions)(nil),
		ExtensionType: ([]bool)(nil),
		Field:         102,
		Name:          "goproto.proto.test.packed_bool",
		Tag:           "varint,102,rep,packed,name=packed_bool",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestPackedExtensions)(nil),
		ExtensionType: ([]ForeignEnum)(nil),
		Field:         103,
		Name:          "goproto.proto.test.packed_enum",
		Tag:           "varint,103,rep,packed,name=packed_enum,enum=goproto.proto.test.ForeignEnum",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestUnpackedExtensions)(nil),
		ExtensionType: ([]int32)(nil),
		Field:         90,
		Name:          "goproto.proto.test.unpacked_int32",
		Tag:           "varint,90,rep,name=unpacked_int32",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestUnpackedExtensions)(nil),
		ExtensionType: ([]int64)(nil),
		Field:         91,
		Name:          "goproto.proto.test.unpacked_int64",
		Tag:           "varint,91,rep,name=unpacked_int64",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestUnpackedExtensions)(nil),
		ExtensionType: ([]uint32)(nil),
		Field:         92,
		Name:          "goproto.proto.test.unpacked_uint32",
		Tag:           "varint,92,rep,name=unpacked_uint32",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestUnpackedExtensions)(nil),
		ExtensionType: ([]uint64)(nil),
		Field:         93,
		Name:          "goproto.proto.test.unpacked_uint64",
		Tag:           "varint,93,rep,name=unpacked_uint64",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestUnpackedExtensions)(nil),
		ExtensionType: ([]int32)(nil),
		Field:         94,
		Name:          "goproto.proto.test.unpacked_sint32",
		Tag:           "zigzag32,94,rep,name=unpacked_sint32",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestUnpackedExtensions)(nil),
		ExtensionType: ([]int64)(nil),
		Field:         95,
		Name:          "goproto.proto.test.unpacked_sint64",
		Tag:           "zigzag64,95,rep,name=unpacked_sint64",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestUnpackedExtensions)(nil),
		ExtensionType: ([]uint32)(nil),
		Field:         96,
		Name:          "goproto.proto.test.unpacked_fixed32",
		Tag:           "fixed32,96,rep,name=unpacked_fixed32",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestUnpackedExtensions)(nil),
		ExtensionType: ([]uint64)(nil),
		Field:         97,
		Name:          "goproto.proto.test.unpacked_fixed64",
		Tag:           "fixed64,97,rep,name=unpacked_fixed64",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestUnpackedExtensions)(nil),
		ExtensionType: ([]int32)(nil),
		Field:         98,
		Name:          "goproto.proto.test.unpacked_sfixed32",
		Tag:           "fixed32,98,rep,name=unpacked_sfixed32",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestUnpackedExtensions)(nil),
		ExtensionType: ([]int64)(nil),
		Field:         99,
		Name:          "goproto.proto.test.unpacked_sfixed64",
		Tag:           "fixed64,99,rep,name=unpacked_sfixed64",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestUnpackedExtensions)(nil),
		ExtensionType: ([]float32)(nil),
		Field:         100,
		Name:          "goproto.proto.test.unpacked_float",
		Tag:           "fixed32,100,rep,name=unpacked_float",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestUnpackedExtensions)(nil),
		ExtensionType: ([]float64)(nil),
		Field:         101,
		Name:          "goproto.proto.test.unpacked_double",
		Tag:           "fixed64,101,rep,name=unpacked_double",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestUnpackedExtensions)(nil),
		ExtensionType: ([]bool)(nil),
		Field:         102,
		Name:          "goproto.proto.test.unpacked_bool",
		Tag:           "varint,102,rep,name=unpacked_bool",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestUnpackedExtensions)(nil),
		ExtensionType: ([]ForeignEnum)(nil),
		Field:         103,
		Name:          "goproto.proto.test.unpacked_enum",
		Tag:           "varint,103,rep,name=unpacked_enum,enum=goproto.proto.test.ForeignEnum",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*string)(nil),
		Field:         1003,
		Name:          "goproto.proto.test.TestNestedExtension.nested_string_extension",
		Tag:           "bytes,1003,opt,name=nested_string_extension",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: (*TestRequired)(nil),
		Field:         1000,
		Name:          "goproto.proto.test.TestRequired.single",
		Tag:           "bytes,1000,opt,name=single",
		Filename:      "internal/testprotos/test/test.proto",
	},
	{
		ExtendedType:  (*TestAllExtensions)(nil),
		ExtensionType: ([]*TestRequired)(nil),
		Field:         1001,
		Name:          "goproto.proto.test.TestRequired.multi",
		Tag:           "bytes,1001,rep,name=multi",
		Filename:      "internal/testprotos/test/test.proto",
	},
}

// Extension fields to TestAllExtensions.
var (
	// optional int32 optional_int32 = 1;
	E_OptionalInt32 = &file_internal_testprotos_test_test_proto_extTypes[0]
	// optional int64 optional_int64 = 2;
	E_OptionalInt64 = &file_internal_testprotos_test_test_proto_extTypes[1]
	// optional uint32 optional_uint32 = 3;
	E_OptionalUint32 = &file_internal_testprotos_test_test_proto_extTypes[2]
	// optional uint64 optional_uint64 = 4;
	E_OptionalUint64 = &file_internal_testprotos_test_test_proto_extTypes[3]
	// optional sint32 optional_sint32 = 5;
	E_OptionalSint32 = &file_internal_testprotos_test_test_proto_extTypes[4]
	// optional sint64 optional_sint64 = 6;
	E_OptionalSint64 = &file_internal_testprotos_test_test_proto_extTypes[5]
	// optional fixed32 optional_fixed32 = 7;
	E_OptionalFixed32 = &file_internal_testprotos_test_test_proto_extTypes[6]
	// optional fixed64 optional_fixed64 = 8;
	E_OptionalFixed64 = &file_internal_testprotos_test_test_proto_extTypes[7]
	// optional sfixed32 optional_sfixed32 = 9;
	E_OptionalSfixed32 = &file_internal_testprotos_test_test_proto_extTypes[8]
	// optional sfixed64 optional_sfixed64 = 10;
	E_OptionalSfixed64 = &file_internal_testprotos_test_test_proto_extTypes[9]
	// optional float optional_float = 11;
	E_OptionalFloat = &file_internal_testprotos_test_test_proto_extTypes[10]
	// optional double optional_double = 12;
	E_OptionalDouble = &file_internal_testprotos_test_test_proto_extTypes[11]
	// optional bool optional_bool = 13;
	E_OptionalBool = &file_internal_testprotos_test_test_proto_extTypes[12]
	// optional string optional_string = 14;
	E_OptionalString = &file_internal_testprotos_test_test_proto_extTypes[13]
	// optional bytes optional_bytes = 15;
	E_OptionalBytes = &file_internal_testprotos_test_test_proto_extTypes[14]
	// optional goproto.proto.test.OptionalGroup optionalgroup = 16;
	E_Optionalgroup = &file_internal_testprotos_test_test_proto_extTypes[15]
	// optional goproto.proto.test.TestAllExtensions.NestedMessage optional_nested_message = 18;
	E_OptionalNestedMessage = &file_internal_testprotos_test_test_proto_extTypes[16]
	// optional goproto.proto.test.TestAllTypes.NestedEnum optional_nested_enum = 21;
	E_OptionalNestedEnum = &file_internal_testprotos_test_test_proto_extTypes[17]
	// repeated int32 repeated_int32 = 31;
	E_RepeatedInt32 = &file_internal_testprotos_test_test_proto_extTypes[18]
	// repeated int64 repeated_int64 = 32;
	E_RepeatedInt64 = &file_internal_testprotos_test_test_proto_extTypes[19]
	// repeated uint32 repeated_uint32 = 33;
	E_RepeatedUint32 = &file_internal_testprotos_test_test_proto_extTypes[20]
	// repeated uint64 repeated_uint64 = 34;
	E_RepeatedUint64 = &file_internal_testprotos_test_test_proto_extTypes[21]
	// repeated sint32 repeated_sint32 = 35;
	E_RepeatedSint32 = &file_internal_testprotos_test_test_proto_extTypes[22]
	// repeated sint64 repeated_sint64 = 36;
	E_RepeatedSint64 = &file_internal_testprotos_test_test_proto_extTypes[23]
	// repeated fixed32 repeated_fixed32 = 37;
	E_RepeatedFixed32 = &file_internal_testprotos_test_test_proto_extTypes[24]
	// repeated fixed64 repeated_fixed64 = 38;
	E_RepeatedFixed64 = &file_internal_testprotos_test_test_proto_extTypes[25]
	// repeated sfixed32 repeated_sfixed32 = 39;
	E_RepeatedSfixed32 = &file_internal_testprotos_test_test_proto_extTypes[26]
	// repeated sfixed64 repeated_sfixed64 = 40;
	E_RepeatedSfixed64 = &file_internal_testprotos_test_test_proto_extTypes[27]
	// repeated float repeated_float = 41;
	E_RepeatedFloat = &file_internal_testprotos_test_test_proto_extTypes[28]
	// repeated double repeated_double = 42;
	E_RepeatedDouble = &file_internal_testprotos_test_test_proto_extTypes[29]
	// repeated bool repeated_bool = 43;
	E_RepeatedBool = &file_internal_testprotos_test_test_proto_extTypes[30]
	// repeated string repeated_string = 44;
	E_RepeatedString = &file_internal_testprotos_test_test_proto_extTypes[31]
	// repeated bytes repeated_bytes = 45;
	E_RepeatedBytes = &file_internal_testprotos_test_test_proto_extTypes[32]
	// repeated goproto.proto.test.RepeatedGroup repeatedgroup = 46;
	E_Repeatedgroup = &file_internal_testprotos_test_test_proto_extTypes[33]
	// repeated goproto.proto.test.TestAllExtensions.NestedMessage repeated_nested_message = 48;
	E_RepeatedNestedMessage = &file_internal_testprotos_test_test_proto_extTypes[34]
	// repeated goproto.proto.test.TestAllTypes.NestedEnum repeated_nested_enum = 51;
	E_RepeatedNestedEnum = &file_internal_testprotos_test_test_proto_extTypes[35]
	// optional int32 default_int32 = 81;
	E_DefaultInt32 = &file_internal_testprotos_test_test_proto_extTypes[36]
	// optional int64 default_int64 = 82;
	E_DefaultInt64 = &file_internal_testprotos_test_test_proto_extTypes[37]
	// optional uint32 default_uint32 = 83;
	E_DefaultUint32 = &file_internal_testprotos_test_test_proto_extTypes[38]
	// optional uint64 default_uint64 = 84;
	E_DefaultUint64 = &file_internal_testprotos_test_test_proto_extTypes[39]
	// optional sint32 default_sint32 = 85;
	E_DefaultSint32 = &file_internal_testprotos_test_test_proto_extTypes[40]
	// optional sint64 default_sint64 = 86;
	E_DefaultSint64 = &file_internal_testprotos_test_test_proto_extTypes[41]
	// optional fixed32 default_fixed32 = 87;
	E_DefaultFixed32 = &file_internal_testprotos_test_test_proto_extTypes[42]
	// optional fixed64 default_fixed64 = 88;
	E_DefaultFixed64 = &file_internal_testprotos_test_test_proto_extTypes[43]
	// optional sfixed32 default_sfixed32 = 89;
	E_DefaultSfixed32 = &file_internal_testprotos_test_test_proto_extTypes[44]
	// optional sfixed64 default_sfixed64 = 80;
	E_DefaultSfixed64 = &file_internal_testprotos_test_test_proto_extTypes[45]
	// optional float default_float = 91;
	E_DefaultFloat = &file_internal_testprotos_test_test_proto_extTypes[46]
	// optional double default_double = 92;
	E_DefaultDouble = &file_internal_testprotos_test_test_proto_extTypes[47]
	// optional bool default_bool = 93;
	E_DefaultBool = &file_internal_testprotos_test_test_proto_extTypes[48]
	// optional string default_string = 94;
	E_DefaultString = &file_internal_testprotos_test_test_proto_extTypes[49]
	// optional bytes default_bytes = 95;
	E_DefaultBytes = &file_internal_testprotos_test_test_proto_extTypes[50]
	// optional string nested_string_extension = 1003;
	E_TestNestedExtension_NestedStringExtension = &file_internal_testprotos_test_test_proto_extTypes[79]
	// optional goproto.proto.test.TestRequired single = 1000;
	E_TestRequired_Single = &file_internal_testprotos_test_test_proto_extTypes[80]
	// repeated goproto.proto.test.TestRequired multi = 1001;
	E_TestRequired_Multi = &file_internal_testprotos_test_test_proto_extTypes[81]
)

// Extension fields to TestPackedExtensions.
var (
	// repeated int32 packed_int32 = 90;
	E_PackedInt32 = &file_internal_testprotos_test_test_proto_extTypes[51]
	// repeated int64 packed_int64 = 91;
	E_PackedInt64 = &file_internal_testprotos_test_test_proto_extTypes[52]
	// repeated uint32 packed_uint32 = 92;
	E_PackedUint32 = &file_internal_testprotos_test_test_proto_extTypes[53]
	// repeated uint64 packed_uint64 = 93;
	E_PackedUint64 = &file_internal_testprotos_test_test_proto_extTypes[54]
	// repeated sint32 packed_sint32 = 94;
	E_PackedSint32 = &file_internal_testprotos_test_test_proto_extTypes[55]
	// repeated sint64 packed_sint64 = 95;
	E_PackedSint64 = &file_internal_testprotos_test_test_proto_extTypes[56]
	// repeated fixed32 packed_fixed32 = 96;
	E_PackedFixed32 = &file_internal_testprotos_test_test_proto_extTypes[57]
	// repeated fixed64 packed_fixed64 = 97;
	E_PackedFixed64 = &file_internal_testprotos_test_test_proto_extTypes[58]
	// repeated sfixed32 packed_sfixed32 = 98;
	E_PackedSfixed32 = &file_internal_testprotos_test_test_proto_extTypes[59]
	// repeated sfixed64 packed_sfixed64 = 99;
	E_PackedSfixed64 = &file_internal_testprotos_test_test_proto_extTypes[60]
	// repeated float packed_float = 100;
	E_PackedFloat = &file_internal_testprotos_test_test_proto_extTypes[61]
	// repeated double packed_double = 101;
	E_PackedDouble = &file_internal_testprotos_test_test_proto_extTypes[62]
	// repeated bool packed_bool = 102;
	E_PackedBool = &file_internal_testprotos_test_test_proto_extTypes[63]
	// repeated goproto.proto.test.ForeignEnum packed_enum = 103;
	E_PackedEnum = &file_internal_testprotos_test_test_proto_extTypes[64]
)

// Extension fields to TestUnpackedExtensions.
var (
	// repeated int32 unpacked_int32 = 90;
	E_UnpackedInt32 = &file_internal_testprotos_test_test_proto_extTypes[65]
	// repeated int64 unpacked_int64 = 91;
	E_UnpackedInt64 = &file_internal_testprotos_test_test_proto_extTypes[66]
	// repeated uint32 unpacked_uint32 = 92;
	E_UnpackedUint32 = &file_internal_testprotos_test_test_proto_extTypes[67]
	// repeated uint64 unpacked_uint64 = 93;
	E_UnpackedUint64 = &file_internal_testprotos_test_test_proto_extTypes[68]
	// repeated sint32 unpacked_sint32 = 94;
	E_UnpackedSint32 = &file_internal_testprotos_test_test_proto_extTypes[69]
	// repeated sint64 unpacked_sint64 = 95;
	E_UnpackedSint64 = &file_internal_testprotos_test_test_proto_extTypes[70]
	// repeated fixed32 unpacked_fixed32 = 96;
	E_UnpackedFixed32 = &file_internal_testprotos_test_test_proto_extTypes[71]
	// repeated fixed64 unpacked_fixed64 = 97;
	E_UnpackedFixed64 = &file_internal_testprotos_test_test_proto_extTypes[72]
	// repeated sfixed32 unpacked_sfixed32 = 98;
	E_UnpackedSfixed32 = &file_internal_testprotos_test_test_proto_extTypes[73]
	// repeated sfixed64 unpacked_sfixed64 = 99;
	E_UnpackedSfixed64 = &file_internal_testprotos_test_test_proto_extTypes[74]
	// repeated float unpacked_float = 100;
	E_UnpackedFloat = &file_internal_testprotos_test_test_proto_extTypes[75]
	// repeated double unpacked_double = 101;
	E_UnpackedDouble = &file_internal_testprotos_test_test_proto_extTypes[76]
	// repeated bool unpacked_bool = 102;
	E_UnpackedBool = &file_internal_testprotos_test_test_proto_extTypes[77]
	// repeated goproto.proto.test.ForeignEnum unpacked_enum = 103;
	E_UnpackedEnum = &file_internal_testprotos_test_test_proto_extTypes[78]
)

var File_internal_testprotos_test_test_proto protoreflect.FileDescriptor

const file_internal_testprotos_test_test_proto_rawDesc = "" +
	"\n" +
	"#internal/testprotos/test/test.proto\x12\x12goproto.proto.test\x1a*internal/testprotos/test/test_public.proto\x1a%internal/testprotos/enums/enums.proto\x1a+internal/testprotos/required/required.proto\x1a*internal/testprotos/test/test_import.proto\"\x9a;\n" +
	"\fTestAllTypes\x12%\n" +
	"\x0eoptional_int32\x18\x01 \x01(\x05R\roptionalInt32\x12%\n" +
	"\x0eoptional_int64\x18\x02 \x01(\x03R\roptionalInt64\x12'\n" +
	"\x0foptional_uint32\x18\x03 \x01(\rR\x0eoptionalUint32\x12'\n" +
	"\x0foptional_uint64\x18\x04 \x01(\x04R\x0eoptionalUint64\x12'\n" +
	"\x0foptional_sint32\x18\x05 \x01(\x11R\x0eoptionalSint32\x12'\n" +
	"\x0foptional_sint64\x18\x06 \x01(\x12R\x0eoptionalSint64\x12)\n" +
	"\x10optional_fixed32\x18\a \x01(\aR\x0foptionalFixed32\x12)\n" +
	"\x10optional_fixed64\x18\b \x01(\x06R\x0foptionalFixed64\x12+\n" +
	"\x11optional_sfixed32\x18\t \x01(\x0fR\x10optionalSfixed32\x12+\n" +
	"\x11optional_sfixed64\x18\n" +
	" \x01(\x10R\x10optionalSfixed64\x12%\n" +
	"\x0eoptional_float\x18\v \x01(\x02R\roptionalFloat\x12'\n" +
	"\x0foptional_double\x18\f \x01(\x01R\x0eoptionalDouble\x12#\n" +
	"\roptional_bool\x18\r \x01(\bR\foptionalBool\x12'\n" +
	"\x0foptional_string\x18\x0e \x01(\tR\x0eoptionalString\x12%\n" +
	"\x0eoptional_bytes\x18\x0f \x01(\fR\roptionalBytes\x12T\n" +
	"\roptionalgroup\x18\x10 \x01(\n" +
	"2..goproto.proto.test.TestAllTypes.OptionalGroupR\roptionalgroup\x12f\n" +
	"\x17optional_nested_message\x18\x12 \x01(\v2..goproto.proto.test.TestAllTypes.NestedMessageR\x15optionalNestedMessage\x12\\\n" +
	"\x18optional_foreign_message\x18\x13 \x01(\v2\".goproto.proto.test.ForeignMessageR\x16optionalForeignMessage\x12Y\n" +
	"\x17optional_import_message\x18\x14 \x01(\v2!.goproto.proto.test.ImportMessageR\x15optionalImportMessage\x12]\n" +
	"\x14optional_nested_enum\x18\x15 \x01(\x0e2+.goproto.proto.test.TestAllTypes.NestedEnumR\x12optionalNestedEnum\x12S\n" +
	"\x15optional_foreign_enum\x18\x16 \x01(\x0e2\x1f.goproto.proto.test.ForeignEnumR\x13optionalForeignEnum\x12P\n" +
	"\x14optional_import_enum\x18\x17 \x01(\x0e2\x1e.goproto.proto.test.ImportEnumR\x12optionalImportEnum\x12s\n" +
	"\x1coptional_lazy_nested_message\x18\x18 \x01(\v2..goproto.proto.test.TestAllTypes.NestedMessageB\x02(\x01R\x19optionalLazyNestedMessage\x12%\n" +
	"\x0erepeated_int32\x18\x1f \x03(\x05R\rrepeatedInt32\x12%\n" +
	"\x0erepeated_int64\x18  \x03(\x03R\rrepeatedInt64\x12'\n" +
	"\x0frepeated_uint32\x18! \x03(\rR\x0erepeatedUint32\x12'\n" +
	"\x0frepeated_uint64\x18\" \x03(\x04R\x0erepeatedUint64\x12'\n" +
	"\x0frepeated_sint32\x18# \x03(\x11R\x0erepeatedSint32\x12'\n" +
	"\x0frepeated_sint64\x18$ \x03(\x12R\x0erepeatedSint64\x12)\n" +
	"\x10repeated_fixed32\x18% \x03(\aR\x0frepeatedFixed32\x12)\n" +
	"\x10repeated_fixed64\x18& \x03(\x06R\x0frepeatedFixed64\x12+\n" +
	"\x11repeated_sfixed32\x18' \x03(\x0fR\x10repeatedSfixed32\x12+\n" +
	"\x11repeated_sfixed64\x18( \x03(\x10R\x10repeatedSfixed64\x12%\n" +
	"\x0erepeated_float\x18) \x03(\x02R\rrepeatedFloat\x12'\n" +
	"\x0frepeated_double\x18* \x03(\x01R\x0erepeatedDouble\x12#\n" +
	"\rrepeated_bool\x18+ \x03(\bR\frepeatedBool\x12'\n" +
	"\x0frepeated_string\x18, \x03(\tR\x0erepeatedString\x12%\n" +
	"\x0erepeated_bytes\x18- \x03(\fR\rrepeatedBytes\x12T\n" +
	"\rrepeatedgroup\x18. \x03(\n" +
	"2..goproto.proto.test.TestAllTypes.RepeatedGroupR\rrepeatedgroup\x12f\n" +
	"\x17repeated_nested_message\x180 \x03(\v2..goproto.proto.test.TestAllTypes.NestedMessageR\x15repeatedNestedMessage\x12\\\n" +
	"\x18repeated_foreign_message\x181 \x03(\v2\".goproto.proto.test.ForeignMessageR\x16repeatedForeignMessage\x12X\n" +
	"\x16repeated_importmessage\x182 \x03(\v2!.goproto.proto.test.ImportMessageR\x15repeatedImportmessage\x12]\n" +
	"\x14repeated_nested_enum\x183 \x03(\x0e2+.goproto.proto.test.TestAllTypes.NestedEnumR\x12repeatedNestedEnum\x12S\n" +
	"\x15repeated_foreign_enum\x184 \x03(\x0e2\x1f.goproto.proto.test.ForeignEnumR\x13repeatedForeignEnum\x12O\n" +
	"\x13repeated_importenum\x185 \x03(\x0e2\x1e.goproto.proto.test.ImportEnumR\x12repeatedImportenum\x12[\n" +
	"\x0fmap_int32_int32\x188 \x03(\v23.goproto.proto.test.TestAllTypes.MapInt32Int32EntryR\rmapInt32Int32\x12[\n" +
	"\x0fmap_int64_int64\x189 \x03(\v23.goproto.proto.test.TestAllTypes.MapInt64Int64EntryR\rmapInt64Int64\x12a\n" +
	"\x11map_uint32_uint32\x18: \x03(\v25.goproto.proto.test.TestAllTypes.MapUint32Uint32EntryR\x0fmapUint32Uint32\x12a\n" +
	"\x11map_uint64_uint64\x18; \x03(\v25.goproto.proto.test.TestAllTypes.MapUint64Uint64EntryR\x0fmapUint64Uint64\x12a\n" +
	"\x11map_sint32_sint32\x18< \x03(\v25.goproto.proto.test.TestAllTypes.MapSint32Sint32EntryR\x0fmapSint32Sint32\x12a\n" +
	"\x11map_sint64_sint64\x18= \x03(\v25.goproto.proto.test.TestAllTypes.MapSint64Sint64EntryR\x0fmapSint64Sint64\x12g\n" +
	"\x13map_fixed32_fixed32\x18> \x03(\v27.goproto.proto.test.TestAllTypes.MapFixed32Fixed32EntryR\x11mapFixed32Fixed32\x12g\n" +
	"\x13map_fixed64_fixed64\x18? \x03(\v27.goproto.proto.test.TestAllTypes.MapFixed64Fixed64EntryR\x11mapFixed64Fixed64\x12m\n" +
	"\x15map_sfixed32_sfixed32\x18@ \x03(\v29.goproto.proto.test.TestAllTypes.MapSfixed32Sfixed32EntryR\x13mapSfixed32Sfixed32\x12m\n" +
	"\x15map_sfixed64_sfixed64\x18A \x03(\v29.goproto.proto.test.TestAllTypes.MapSfixed64Sfixed64EntryR\x13mapSfixed64Sfixed64\x12[\n" +
	"\x0fmap_int32_float\x18B \x03(\v23.goproto.proto.test.TestAllTypes.MapInt32FloatEntryR\rmapInt32Float\x12^\n" +
	"\x10map_int32_double\x18C \x03(\v24.goproto.proto.test.TestAllTypes.MapInt32DoubleEntryR\x0emapInt32Double\x12U\n" +
	"\rmap_bool_bool\x18D \x03(\v21.goproto.proto.test.TestAllTypes.MapBoolBoolEntryR\vmapBoolBool\x12a\n" +
	"\x11map_string_string\x18E \x03(\v25.goproto.proto.test.TestAllTypes.MapStringStringEntryR\x0fmapStringString\x12^\n" +
	"\x10map_string_bytes\x18F \x03(\v24.goproto.proto.test.TestAllTypes.MapStringBytesEntryR\x0emapStringBytes\x12w\n" +
	"\x19map_string_nested_message\x18G \x03(\v2<.goproto.proto.test.TestAllTypes.MapStringNestedMessageEntryR\x16mapStringNestedMessage\x12n\n" +
	"\x16map_string_nested_enum\x18I \x03(\v29.goproto.proto.test.TestAllTypes.MapStringNestedEnumEntryR\x13mapStringNestedEnum\x12'\n" +
	"\rdefault_int32\x18Q \x01(\x05:\x0281R\fdefaultInt32\x12'\n" +
	"\rdefault_int64\x18R \x01(\x03:\x0282R\fdefaultInt64\x12)\n" +
	"\x0edefault_uint32\x18S \x01(\r:\x0283R\rdefaultUint32\x12)\n" +
	"\x0edefault_uint64\x18T \x01(\x04:\x0284R\rdefaultUint64\x12*\n" +
	"\x0edefault_sint32\x18U \x01(\x11:\x03-85R\rdefaultSint32\x12)\n" +
	"\x0edefault_sint64\x18V \x01(\x12:\x0286R\rdefaultSint64\x12+\n" +
	"\x0fdefault_fixed32\x18W \x01(\a:\x0287R\x0edefaultFixed32\x12+\n" +
	"\x0fdefault_fixed64\x18X \x01(\x06:\x0288R\x0edefaultFixed64\x12-\n" +
	"\x10default_sfixed32\x18Y \x01(\x0f:\x0289R\x0fdefaultSfixed32\x12.\n" +
	"\x10default_sfixed64\x18P \x01(\x10:\x03-90R\x0fdefaultSfixed64\x12)\n" +
	"\rdefault_float\x18[ \x01(\x02:\x0491.5R\fdefaultFloat\x12,\n" +
	"\x0edefault_double\x18\\ \x01(\x01:\x0592000R\rdefaultDouble\x12'\n" +
	"\fdefault_bool\x18] \x01(\b:\x04trueR\vdefaultBool\x12,\n" +
	"\x0edefault_string\x18^ \x01(\t:\x05helloR\rdefaultString\x12*\n" +
	"\rdefault_bytes\x18_ \x01(\f:\x05worldR\fdefaultBytes\x12`\n" +
	"\x13default_nested_enum\x18` \x01(\x0e2+.goproto.proto.test.TestAllTypes.NestedEnum:\x03BARR\x11defaultNestedEnum\x12^\n" +
	"\x14default_foreign_enum\x18a \x01(\x0e2\x1f.goproto.proto.test.ForeignEnum:\vFOREIGN_BARR\x12defaultForeignEnum\x12#\n" +
	"\foneof_uint32\x18o \x01(\rH\x00R\voneofUint32\x12b\n" +
	"\x14oneof_nested_message\x18p \x01(\v2..goproto.proto.test.TestAllTypes.NestedMessageH\x00R\x12oneofNestedMessage\x12#\n" +
	"\foneof_string\x18q \x01(\tH\x00R\voneofString\x12!\n" +
	"\voneof_bytes\x18r \x01(\fH\x00R\n" +
	"oneofBytes\x12\x1f\n" +
	"\n" +
	"oneof_bool\x18s \x01(\bH\x00R\toneofBool\x12#\n" +
	"\foneof_uint64\x18t \x01(\x04H\x00R\voneofUint64\x12!\n" +
	"\voneof_float\x18u \x01(\x02H\x00R\n" +
	"oneofFloat\x12#\n" +
	"\foneof_double\x18v \x01(\x01H\x00R\voneofDouble\x12L\n" +
	"\n" +
	"oneof_enum\x18w \x01(\x0e2+.goproto.proto.test.TestAllTypes.NestedEnumH\x00R\toneofEnum\x12M\n" +
	"\n" +
	"oneofgroup\x18y \x01(\n" +
	"2+.goproto.proto.test.TestAllTypes.OneofGroupH\x00R\n" +
	"oneofgroup\x124\n" +
	"\x15oneof_optional_uint32\x18x \x01(\rH\x01R\x13oneofOptionalUint32\x1aa\n" +
	"\rNestedMessage\x12\f\n" +
	"\x01a\x18\x01 \x01(\x05R\x01a\x12B\n" +
	"\vcorecursive\x18\x02 \x01(\v2 .goproto.proto.test.TestAllTypesR\vcorecursive\x1a\xb2\x01\n" +
	"\rOptionalGroup\x12\f\n" +
	"\x01a\x18\x11 \x01(\x05R\x01a\x12g\n" +
	"\x17optional_nested_message\x18\xe8\a \x01(\v2..goproto.proto.test.TestAllTypes.NestedMessageR\x15optionalNestedMessage\x12*\n" +
	"\x11same_field_number\x18\x10 \x01(\x05R\x0fsameFieldNumber\x1a\x86\x01\n" +
	"\rRepeatedGroup\x12\f\n" +
	"\x01a\x18/ \x01(\x05R\x01a\x12g\n" +
	"\x17optional_nested_message\x18\xe9\a \x01(\v2..goproto.proto.test.TestAllTypes.NestedMessageR\x15optionalNestedMessage\x1a@\n" +
	"\x12MapInt32Int32Entry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a@\n" +
	"\x12MapInt64Int64Entry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\x03R\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\x03R\x05value:\x028\x01\x1aB\n" +
	"\x14MapUint32Uint32Entry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\rR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\rR\x05value:\x028\x01\x1aB\n" +
	"\x14MapUint64Uint64Entry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\x04R\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\x04R\x05value:\x028\x01\x1aB\n" +
	"\x14MapSint32Sint32Entry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\x11R\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\x11R\x05value:\x028\x01\x1aB\n" +
	"\x14MapSint64Sint64Entry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\x12R\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\x12R\x05value:\x028\x01\x1aD\n" +
	"\x16MapFixed32Fixed32Entry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\aR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\aR\x05value:\x028\x01\x1aD\n" +
	"\x16MapFixed64Fixed64Entry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\x06R\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\x06R\x05value:\x028\x01\x1aF\n" +
	"\x18MapSfixed32Sfixed32Entry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\x0fR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\x0fR\x05value:\x028\x01\x1aF\n" +
	"\x18MapSfixed64Sfixed64Entry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\x10R\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\x10R\x05value:\x028\x01\x1a@\n" +
	"\x12MapInt32FloatEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\x02R\x05value:\x028\x01\x1aA\n" +
	"\x13MapInt32DoubleEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\x01R\x05value:\x028\x01\x1a>\n" +
	"\x10MapBoolBoolEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\bR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\bR\x05value:\x028\x01\x1aB\n" +
	"\x14MapStringStringEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1aA\n" +
	"\x13MapStringBytesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\x1ay\n" +
	"\x1bMapStringNestedMessageEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12D\n" +
	"\x05value\x18\x02 \x01(\v2..goproto.proto.test.TestAllTypes.NestedMessageR\x05value:\x028\x01\x1as\n" +
	"\x18MapStringNestedEnumEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12A\n" +
	"\x05value\x18\x02 \x01(\x0e2+.goproto.proto.test.TestAllTypes.NestedEnumR\x05value:\x028\x01\x1a(\n" +
	"\n" +
	"OneofGroup\x12\f\n" +
	"\x01a\x18\x01 \x01(\x05R\x01a\x12\f\n" +
	"\x01b\x18\x02 \x01(\x05R\x01b\"9\n" +
	"\n" +
	"NestedEnum\x12\a\n" +
	"\x03FOO\x10\x00\x12\a\n" +
	"\x03BAR\x10\x01\x12\a\n" +
	"\x03BAZ\x10\x02\x12\x10\n" +
	"\x03NEG\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01B\r\n" +
	"\voneof_fieldB\x10\n" +
	"\x0eoneof_optional\"\xde(\n" +
	"\x1cTestManyMessageFieldsMessage\x120\n" +
	"\x02f1\x18\x01 \x01(\v2 .goproto.proto.test.TestAllTypesR\x02f1\x120\n" +
	"\x02f2\x18\x02 \x01(\v2 .goproto.proto.test.TestAllTypesR\x02f2\x120\n" +
	"\x02f3\x18\x03 \x01(\v2 .goproto.proto.test.TestAllTypesR\x02f3\x120\n" +
	"\x02f4\x18\x04 \x01(\v2 .goproto.proto.test.TestAllTypesR\x02f4\x120\n" +
	"\x02f5\x18\x05 \x01(\v2 .goproto.proto.test.TestAllTypesR\x02f5\x120\n" +
	"\x02f6\x18\x06 \x01(\v2 .goproto.proto.test.TestAllTypesR\x02f6\x120\n" +
	"\x02f7\x18\a \x01(\v2 .goproto.proto.test.TestAllTypesR\x02f7\x120\n" +
	"\x02f8\x18\b \x01(\v2 .goproto.proto.test.TestAllTypesR\x02f8\x120\n" +
	"\x02f9\x18\t \x01(\v2 .goproto.proto.test.TestAllTypesR\x02f9\x122\n" +
	"\x03f10\x18\n" +
	" \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f10\x122\n" +
	"\x03f11\x18\v \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f11\x122\n" +
	"\x03f12\x18\f \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f12\x122\n" +
	"\x03f13\x18\r \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f13\x122\n" +
	"\x03f14\x18\x0e \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f14\x122\n" +
	"\x03f15\x18\x0f \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f15\x122\n" +
	"\x03f16\x18\x10 \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f16\x122\n" +
	"\x03f17\x18\x11 \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f17\x122\n" +
	"\x03f18\x18\x12 \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f18\x122\n" +
	"\x03f19\x18\x13 \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f19\x122\n" +
	"\x03f20\x18\x14 \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f20\x122\n" +
	"\x03f21\x18\x15 \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f21\x122\n" +
	"\x03f22\x18\x16 \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f22\x122\n" +
	"\x03f23\x18\x17 \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f23\x122\n" +
	"\x03f24\x18\x18 \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f24\x122\n" +
	"\x03f25\x18\x19 \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f25\x122\n" +
	"\x03f26\x18\x1a \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f26\x122\n" +
	"\x03f27\x18\x1b \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f27\x122\n" +
	"\x03f28\x18\x1c \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f28\x122\n" +
	"\x03f29\x18\x1d \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f29\x122\n" +
	"\x03f30\x18\x1e \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f30\x122\n" +
	"\x03f31\x18\x1f \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f31\x122\n" +
	"\x03f32\x18  \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f32\x122\n" +
	"\x03f33\x18! \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f33\x122\n" +
	"\x03f34\x18\" \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f34\x122\n" +
	"\x03f35\x18# \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f35\x122\n" +
	"\x03f36\x18$ \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f36\x122\n" +
	"\x03f37\x18% \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f37\x122\n" +
	"\x03f38\x18& \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f38\x122\n" +
	"\x03f39\x18' \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f39\x122\n" +
	"\x03f40\x18( \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f40\x122\n" +
	"\x03f41\x18) \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f41\x122\n" +
	"\x03f42\x18* \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f42\x122\n" +
	"\x03f43\x18+ \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f43\x122\n" +
	"\x03f44\x18, \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f44\x122\n" +
	"\x03f45\x18- \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f45\x122\n" +
	"\x03f46\x18. \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f46\x122\n" +
	"\x03f47\x18/ \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f47\x122\n" +
	"\x03f48\x180 \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f48\x122\n" +
	"\x03f49\x181 \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f49\x122\n" +
	"\x03f50\x182 \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f50\x122\n" +
	"\x03f51\x183 \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f51\x122\n" +
	"\x03f52\x184 \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f52\x122\n" +
	"\x03f53\x185 \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f53\x122\n" +
	"\x03f54\x186 \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f54\x122\n" +
	"\x03f55\x187 \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f55\x122\n" +
	"\x03f56\x188 \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f56\x122\n" +
	"\x03f57\x189 \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f57\x122\n" +
	"\x03f58\x18: \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f58\x122\n" +
	"\x03f59\x18; \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f59\x122\n" +
	"\x03f60\x18< \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f60\x122\n" +
	"\x03f61\x18= \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f61\x122\n" +
	"\x03f62\x18> \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f62\x122\n" +
	"\x03f63\x18? \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f63\x122\n" +
	"\x03f64\x18@ \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f64\x122\n" +
	"\x03f65\x18A \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f65\x122\n" +
	"\x03f66\x18B \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f66\x122\n" +
	"\x03f67\x18C \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f67\x122\n" +
	"\x03f68\x18D \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f68\x122\n" +
	"\x03f69\x18E \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f69\x122\n" +
	"\x03f70\x18F \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f70\x122\n" +
	"\x03f71\x18G \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f71\x122\n" +
	"\x03f72\x18H \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f72\x122\n" +
	"\x03f73\x18I \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f73\x122\n" +
	"\x03f74\x18J \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f74\x122\n" +
	"\x03f75\x18K \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f75\x122\n" +
	"\x03f76\x18L \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f76\x122\n" +
	"\x03f77\x18M \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f77\x122\n" +
	"\x03f78\x18N \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f78\x122\n" +
	"\x03f79\x18O \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f79\x122\n" +
	"\x03f80\x18P \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f80\x122\n" +
	"\x03f81\x18Q \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f81\x122\n" +
	"\x03f82\x18R \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f82\x122\n" +
	"\x03f83\x18S \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f83\x122\n" +
	"\x03f84\x18T \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f84\x122\n" +
	"\x03f85\x18U \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f85\x122\n" +
	"\x03f86\x18V \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f86\x122\n" +
	"\x03f87\x18W \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f87\x122\n" +
	"\x03f88\x18X \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f88\x122\n" +
	"\x03f89\x18Y \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f89\x122\n" +
	"\x03f90\x18Z \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f90\x122\n" +
	"\x03f91\x18[ \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f91\x122\n" +
	"\x03f92\x18\\ \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f92\x122\n" +
	"\x03f93\x18] \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f93\x122\n" +
	"\x03f94\x18^ \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f94\x122\n" +
	"\x03f95\x18_ \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f95\x122\n" +
	"\x03f96\x18` \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f96\x122\n" +
	"\x03f97\x18a \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f97\x122\n" +
	"\x03f98\x18b \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f98\x122\n" +
	"\x03f99\x18c \x01(\v2 .goproto.proto.test.TestAllTypesR\x03f99\x124\n" +
	"\x04f100\x18d \x01(\v2 .goproto.proto.test.TestAllTypesR\x04f100\"\xc4\x01\n" +
	"\x15TestDeprecatedMessage\x12-\n" +
	"\x10deprecated_int32\x18\x01 \x01(\x05B\x02\x18\x01R\x0fdeprecatedInt32\x12:\n" +
	"\x16deprecated_oneof_field\x18\x02 \x01(\x05B\x02\x18\x01H\x00R\x14deprecatedOneofField\"(\n" +
	"\x0eDeprecatedEnum\x12\x12\n" +
	"\n" +
	"DEPRECATED\x10\x00\x1a\x02\b\x01\x1a\x02\x18\x01:\x02\x18\x01B\x12\n" +
	"\x10deprecated_oneof\"\x99\x01\n" +
	"\x15TestOneofWithRequired\x12#\n" +
	"\foneof_uint32\x18\x01 \x01(\rH\x00R\voneofUint32\x12L\n" +
	"\x0eoneof_required\x18\x02 \x01(\v2#.goproto.proto.testrequired.MessageH\x00R\roneofRequiredB\r\n" +
	"\voneof_field\",\n" +
	"\x0eForeignMessage\x12\f\n" +
	"\x01c\x18\x01 \x01(\x05R\x01c\x12\f\n" +
	"\x01d\x18\x02 \x01(\x05R\x01d\"0\n" +
	"\x12TestReservedFieldsJ\x04\b\x02\x10\x03J\x04\b\x0f\x10\x10J\x04\b\t\x10\fR\x03barR\x03baz\"\x85\x01\n" +
	"\x11TestAllExtensions\x1af\n" +
	"\rNestedMessage\x12\f\n" +
	"\x01a\x18\x01 \x01(\x05R\x01a\x12G\n" +
	"\vcorecursive\x18\x02 \x01(\v2%.goproto.proto.test.TestAllExtensionsR\vcorecursive*\b\b\x01\x10\x80\x80\x80\x80\x02\"\xb7\x01\n" +
	"\rOptionalGroup\x12\f\n" +
	"\x01a\x18\x11 \x01(\x05R\x01a\x12*\n" +
	"\x11same_field_number\x18\x10 \x01(\x05R\x0fsameFieldNumber\x12l\n" +
	"\x17optional_nested_message\x18\xe8\a \x01(\v23.goproto.proto.test.TestAllExtensions.NestedMessageR\x15optionalNestedMessage\"\x8b\x01\n" +
	"\rRepeatedGroup\x12\f\n" +
	"\x01a\x18/ \x01(\x05R\x01a\x12l\n" +
	"\x17optional_nested_message\x18\xe9\a \x01(\v23.goproto.proto.test.TestAllExtensions.NestedMessageR\x15optionalNestedMessage\"u\n" +
	"\x13TestNestedExtension2^\n" +
	"\x17nested_string_extension\x12%.goproto.proto.test.TestAllExtensions\x18\xeb\a \x01(\tR\x15nestedStringExtension\"\xf7\x01\n" +
	"\fTestRequired\x12%\n" +
	"\x0erequired_field\x18\x01 \x02(\x05R\rrequiredField2`\n" +
	"\x06single\x12%.goproto.proto.test.TestAllExtensions\x18\xe8\a \x01(\v2 .goproto.proto.test.TestRequiredR\x06single2^\n" +
	"\x05multi\x12%.goproto.proto.test.TestAllExtensions\x18\xe9\a \x03(\v2 .goproto.proto.test.TestRequiredR\x05multi\"\xc2\x03\n" +
	"\x13TestRequiredForeign\x12K\n" +
	"\x10optional_message\x18\x01 \x01(\v2 .goproto.proto.test.TestRequiredR\x0foptionalMessage\x12K\n" +
	"\x10repeated_message\x18\x02 \x03(\v2 .goproto.proto.test.TestRequiredR\x0frepeatedMessage\x12X\n" +
	"\vmap_message\x18\x03 \x03(\v27.goproto.proto.test.TestRequiredForeign.MapMessageEntryR\n" +
	"mapMessage\x12G\n" +
	"\roneof_message\x18\x04 \x01(\v2 .goproto.proto.test.TestRequiredH\x00R\foneofMessage\x1a_\n" +
	"\x0fMapMessageEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\x05R\x03key\x126\n" +
	"\x05value\x18\x02 \x01(\v2 .goproto.proto.test.TestRequiredR\x05value:\x028\x01B\r\n" +
	"\voneof_field\"\x99\x02\n" +
	"\x17TestRequiredGroupFields\x12_\n" +
	"\roptionalgroup\x18\x01 \x01(\n" +
	"29.goproto.proto.test.TestRequiredGroupFields.OptionalGroupR\roptionalgroup\x12_\n" +
	"\rrepeatedgroup\x18\x03 \x03(\n" +
	"29.goproto.proto.test.TestRequiredGroupFields.RepeatedGroupR\rrepeatedgroup\x1a\x1d\n" +
	"\rOptionalGroup\x12\f\n" +
	"\x01a\x18\x02 \x02(\x05R\x01a\x1a\x1d\n" +
	"\rRepeatedGroup\x12\f\n" +
	"\x01a\x18\x04 \x02(\x05R\x01a\"l\n" +
	"\x10TestRequiredLazy\x12X\n" +
	"\x15optional_lazy_message\x18\x01 \x01(\v2 .goproto.proto.test.TestRequiredB\x02(\x01R\x13optionalLazyMessage\"\xee\x04\n" +
	"\x0fTestPackedTypes\x12%\n" +
	"\fpacked_int32\x18Z \x03(\x05B\x02\x10\x01R\vpackedInt32\x12%\n" +
	"\fpacked_int64\x18[ \x03(\x03B\x02\x10\x01R\vpackedInt64\x12'\n" +
	"\rpacked_uint32\x18\\ \x03(\rB\x02\x10\x01R\fpackedUint32\x12'\n" +
	"\rpacked_uint64\x18] \x03(\x04B\x02\x10\x01R\fpackedUint64\x12'\n" +
	"\rpacked_sint32\x18^ \x03(\x11B\x02\x10\x01R\fpackedSint32\x12'\n" +
	"\rpacked_sint64\x18_ \x03(\x12B\x02\x10\x01R\fpackedSint64\x12)\n" +
	"\x0epacked_fixed32\x18` \x03(\aB\x02\x10\x01R\rpackedFixed32\x12)\n" +
	"\x0epacked_fixed64\x18a \x03(\x06B\x02\x10\x01R\rpackedFixed64\x12+\n" +
	"\x0fpacked_sfixed32\x18b \x03(\x0fB\x02\x10\x01R\x0epackedSfixed32\x12+\n" +
	"\x0fpacked_sfixed64\x18c \x03(\x10B\x02\x10\x01R\x0epackedSfixed64\x12%\n" +
	"\fpacked_float\x18d \x03(\x02B\x02\x10\x01R\vpackedFloat\x12'\n" +
	"\rpacked_double\x18e \x03(\x01B\x02\x10\x01R\fpackedDouble\x12#\n" +
	"\vpacked_bool\x18f \x03(\bB\x02\x10\x01R\n" +
	"packedBool\x12D\n" +
	"\vpacked_enum\x18g \x03(\x0e2\x1f.goproto.proto.test.ForeignEnumB\x02\x10\x01R\n" +
	"packedEnum\"\xa8\x05\n" +
	"\x11TestUnpackedTypes\x12)\n" +
	"\x0eunpacked_int32\x18Z \x03(\x05B\x02\x10\x00R\runpackedInt32\x12)\n" +
	"\x0eunpacked_int64\x18[ \x03(\x03B\x02\x10\x00R\runpackedInt64\x12+\n" +
	"\x0funpacked_uint32\x18\\ \x03(\rB\x02\x10\x00R\x0eunpackedUint32\x12+\n" +
	"\x0funpacked_uint64\x18] \x03(\x04B\x02\x10\x00R\x0eunpackedUint64\x12+\n" +
	"\x0funpacked_sint32\x18^ \x03(\x11B\x02\x10\x00R\x0eunpackedSint32\x12+\n" +
	"\x0funpacked_sint64\x18_ \x03(\x12B\x02\x10\x00R\x0eunpackedSint64\x12-\n" +
	"\x10unpacked_fixed32\x18` \x03(\aB\x02\x10\x00R\x0funpackedFixed32\x12-\n" +
	"\x10unpacked_fixed64\x18a \x03(\x06B\x02\x10\x00R\x0funpackedFixed64\x12/\n" +
	"\x11unpacked_sfixed32\x18b \x03(\x0fB\x02\x10\x00R\x10unpackedSfixed32\x12/\n" +
	"\x11unpacked_sfixed64\x18c \x03(\x10B\x02\x10\x00R\x10unpackedSfixed64\x12)\n" +
	"\x0eunpacked_float\x18d \x03(\x02B\x02\x10\x00R\runpackedFloat\x12+\n" +
	"\x0funpacked_double\x18e \x03(\x01B\x02\x10\x00R\x0eunpackedDouble\x12'\n" +
	"\runpacked_bool\x18f \x03(\bB\x02\x10\x00R\funpackedBool\x12H\n" +
	"\runpacked_enum\x18g \x03(\x0e2\x1f.goproto.proto.test.ForeignEnumB\x02\x10\x00R\funpackedEnum\" \n" +
	"\x14TestPackedExtensions*\b\b\x01\x10\x80\x80\x80\x80\x02\"\"\n" +
	"\x16TestUnpackedExtensions*\b\b\x01\x10\x80\x80\x80\x80\x02\"\f\n" +
	"\n" +
	"FooRequest\"\r\n" +
	"\vFooResponse\"a\n" +
	"\fWeirdDefault\x12Q\n" +
	"\rweird_default\x18\x01 \x01(\f:,hello, \\\"world!\\\"\\ndead\\336\\255\\276\\357beef`R\fweirdDefault\"\xff\x03\n" +
	"\rRemoteDefault\x123\n" +
	"\adefault\x18\x01 \x01(\x0e2\x19.goproto.proto.enums.EnumR\adefault\x123\n" +
	"\x04zero\x18\x02 \x01(\x0e2\x19.goproto.proto.enums.Enum:\x04ZEROR\x04zero\x120\n" +
	"\x03one\x18\x03 \x01(\x0e2\x19.goproto.proto.enums.Enum:\x03ONER\x03one\x12<\n" +
	"\aelevent\x18\x04 \x01(\x0e2\x19.goproto.proto.enums.Enum:\aELEVENTR\aelevent\x12B\n" +
	"\tseventeen\x18\x05 \x01(\x0e2\x19.goproto.proto.enums.Enum:\tSEVENTEENR\tseventeen\x12H\n" +
	"\vthirtyseven\x18\x06 \x01(\x0e2\x19.goproto.proto.enums.Enum:\vTHIRTYSEVENR\vthirtyseven\x12E\n" +
	"\n" +
	"sixtyseven\x18\a \x01(\x0e2\x19.goproto.proto.enums.Enum:\n" +
	"SIXTYSEVENR\n" +
	"sixtyseven\x12?\n" +
	"\bnegative\x18\b \x01(\x0e2\x19.goproto.proto.enums.Enum:\bNEGATIVER\bnegative*@\n" +
	"\vForeignEnum\x12\x0f\n" +
	"\vFOREIGN_FOO\x10\x04\x12\x0f\n" +
	"\vFOREIGN_BAR\x10\x05\x12\x0f\n" +
	"\vFOREIGN_BAZ\x10\x06*G\n" +
	"\x16TestReservedEnumFields\x12\x11\n" +
	"\rRESERVED_ENUM\x10\x00\"\x04\b\x02\x10\x02\"\x04\b\x0f\x10\x0f\"\x04\b\t\x10\v*\x03BAR*\x03BAZ2\xa8\x01\n" +
	"\vTestService\x12F\n" +
	"\x03Foo\x12\x1e.goproto.proto.test.FooRequest\x1a\x1f.goproto.proto.test.FooResponse\x12Q\n" +
	"\n" +
	"TestStream\x12\x1e.goproto.proto.test.FooRequest\x1a\x1f.goproto.proto.test.FooResponse(\x010\x012\x85\x01\n" +
	"\x15TestDeprecatedService\x12g\n" +
	"\n" +
	"Deprecated\x12).goproto.proto.test.TestDeprecatedMessage\x1a).goproto.proto.test.TestDeprecatedMessage\"\x03\x88\x02\x01\x1a\x03\x88\x02\x01:L\n" +
	"\x0eoptional_int32\x12%.goproto.proto.test.TestAllExtensions\x18\x01 \x01(\x05R\roptionalInt32:L\n" +
	"\x0eoptional_int64\x12%.goproto.proto.test.TestAllExtensions\x18\x02 \x01(\x03R\roptionalInt64:N\n" +
	"\x0foptional_uint32\x12%.goproto.proto.test.TestAllExtensions\x18\x03 \x01(\rR\x0eoptionalUint32:N\n" +
	"\x0foptional_uint64\x12%.goproto.proto.test.TestAllExtensions\x18\x04 \x01(\x04R\x0eoptionalUint64:N\n" +
	"\x0foptional_sint32\x12%.goproto.proto.test.TestAllExtensions\x18\x05 \x01(\x11R\x0eoptionalSint32:N\n" +
	"\x0foptional_sint64\x12%.goproto.proto.test.TestAllExtensions\x18\x06 \x01(\x12R\x0eoptionalSint64:P\n" +
	"\x10optional_fixed32\x12%.goproto.proto.test.TestAllExtensions\x18\a \x01(\aR\x0foptionalFixed32:P\n" +
	"\x10optional_fixed64\x12%.goproto.proto.test.TestAllExtensions\x18\b \x01(\x06R\x0foptionalFixed64:R\n" +
	"\x11optional_sfixed32\x12%.goproto.proto.test.TestAllExtensions\x18\t \x01(\x0fR\x10optionalSfixed32:R\n" +
	"\x11optional_sfixed64\x12%.goproto.proto.test.TestAllExtensions\x18\n" +
	" \x01(\x10R\x10optionalSfixed64:L\n" +
	"\x0eoptional_float\x12%.goproto.proto.test.TestAllExtensions\x18\v \x01(\x02R\roptionalFloat:N\n" +
	"\x0foptional_double\x12%.goproto.proto.test.TestAllExtensions\x18\f \x01(\x01R\x0eoptionalDouble:J\n" +
	"\roptional_bool\x12%.goproto.proto.test.TestAllExtensions\x18\r \x01(\bR\foptionalBool:N\n" +
	"\x0foptional_string\x12%.goproto.proto.test.TestAllExtensions\x18\x0e \x01(\tR\x0eoptionalString:L\n" +
	"\x0eoptional_bytes\x12%.goproto.proto.test.TestAllExtensions\x18\x0f \x01(\fR\roptionalBytes:n\n" +
	"\roptionalgroup\x12%.goproto.proto.test.TestAllExtensions\x18\x10 \x01(\n" +
	"2!.goproto.proto.test.OptionalGroupR\roptionalgroup:\x92\x01\n" +
	"\x17optional_nested_message\x12%.goproto.proto.test.TestAllExtensions\x18\x12 \x01(\v23.goproto.proto.test.TestAllExtensions.NestedMessageR\x15optionalNestedMessage:\x84\x01\n" +
	"\x14optional_nested_enum\x12%.goproto.proto.test.TestAllExtensions\x18\x15 \x01(\x0e2+.goproto.proto.test.TestAllTypes.NestedEnumR\x12optionalNestedEnum:L\n" +
	"\x0erepeated_int32\x12%.goproto.proto.test.TestAllExtensions\x18\x1f \x03(\x05R\rrepeatedInt32:L\n" +
	"\x0erepeated_int64\x12%.goproto.proto.test.TestAllExtensions\x18  \x03(\x03R\rrepeatedInt64:N\n" +
	"\x0frepeated_uint32\x12%.goproto.proto.test.TestAllExtensions\x18! \x03(\rR\x0erepeatedUint32:N\n" +
	"\x0frepeated_uint64\x12%.goproto.proto.test.TestAllExtensions\x18\" \x03(\x04R\x0erepeatedUint64:N\n" +
	"\x0frepeated_sint32\x12%.goproto.proto.test.TestAllExtensions\x18# \x03(\x11R\x0erepeatedSint32:N\n" +
	"\x0frepeated_sint64\x12%.goproto.proto.test.TestAllExtensions\x18$ \x03(\x12R\x0erepeatedSint64:P\n" +
	"\x10repeated_fixed32\x12%.goproto.proto.test.TestAllExtensions\x18% \x03(\aR\x0frepeatedFixed32:P\n" +
	"\x10repeated_fixed64\x12%.goproto.proto.test.TestAllExtensions\x18& \x03(\x06R\x0frepeatedFixed64:R\n" +
	"\x11repeated_sfixed32\x12%.goproto.proto.test.TestAllExtensions\x18' \x03(\x0fR\x10repeatedSfixed32:R\n" +
	"\x11repeated_sfixed64\x12%.goproto.proto.test.TestAllExtensions\x18( \x03(\x10R\x10repeatedSfixed64:L\n" +
	"\x0erepeated_float\x12%.goproto.proto.test.TestAllExtensions\x18) \x03(\x02R\rrepeatedFloat:N\n" +
	"\x0frepeated_double\x12%.goproto.proto.test.TestAllExtensions\x18* \x03(\x01R\x0erepeatedDouble:J\n" +
	"\rrepeated_bool\x12%.goproto.proto.test.TestAllExtensions\x18+ \x03(\bR\frepeatedBool:N\n" +
	"\x0frepeated_string\x12%.goproto.proto.test.TestAllExtensions\x18, \x03(\tR\x0erepeatedString:L\n" +
	"\x0erepeated_bytes\x12%.goproto.proto.test.TestAllExtensions\x18- \x03(\fR\rrepeatedBytes:n\n" +
	"\rrepeatedgroup\x12%.goproto.proto.test.TestAllExtensions\x18. \x03(\n" +
	"2!.goproto.proto.test.RepeatedGroupR\rrepeatedgroup:\x92\x01\n" +
	"\x17repeated_nested_message\x12%.goproto.proto.test.TestAllExtensions\x180 \x03(\v23.goproto.proto.test.TestAllExtensions.NestedMessageR\x15repeatedNestedMessage:\x84\x01\n" +
	"\x14repeated_nested_enum\x12%.goproto.proto.test.TestAllExtensions\x183 \x03(\x0e2+.goproto.proto.test.TestAllTypes.NestedEnumR\x12repeatedNestedEnum:N\n" +
	"\rdefault_int32\x12%.goproto.proto.test.TestAllExtensions\x18Q \x01(\x05:\x0281R\fdefaultInt32:N\n" +
	"\rdefault_int64\x12%.goproto.proto.test.TestAllExtensions\x18R \x01(\x03:\x0282R\fdefaultInt64:P\n" +
	"\x0edefault_uint32\x12%.goproto.proto.test.TestAllExtensions\x18S \x01(\r:\x0283R\rdefaultUint32:P\n" +
	"\x0edefault_uint64\x12%.goproto.proto.test.TestAllExtensions\x18T \x01(\x04:\x0284R\rdefaultUint64:Q\n" +
	"\x0edefault_sint32\x12%.goproto.proto.test.TestAllExtensions\x18U \x01(\x11:\x03-85R\rdefaultSint32:P\n" +
	"\x0edefault_sint64\x12%.goproto.proto.test.TestAllExtensions\x18V \x01(\x12:\x0286R\rdefaultSint64:R\n" +
	"\x0fdefault_fixed32\x12%.goproto.proto.test.TestAllExtensions\x18W \x01(\a:\x0287R\x0edefaultFixed32:R\n" +
	"\x0fdefault_fixed64\x12%.goproto.proto.test.TestAllExtensions\x18X \x01(\x06:\x0288R\x0edefaultFixed64:T\n" +
	"\x10default_sfixed32\x12%.goproto.proto.test.TestAllExtensions\x18Y \x01(\x0f:\x0289R\x0fdefaultSfixed32:U\n" +
	"\x10default_sfixed64\x12%.goproto.proto.test.TestAllExtensions\x18P \x01(\x10:\x03-90R\x0fdefaultSfixed64:P\n" +
	"\rdefault_float\x12%.goproto.proto.test.TestAllExtensions\x18[ \x01(\x02:\x0491.5R\fdefaultFloat:S\n" +
	"\x0edefault_double\x12%.goproto.proto.test.TestAllExtensions\x18\\ \x01(\x01:\x0592000R\rdefaultDouble:N\n" +
	"\fdefault_bool\x12%.goproto.proto.test.TestAllExtensions\x18] \x01(\b:\x04trueR\vdefaultBool:S\n" +
	"\x0edefault_string\x12%.goproto.proto.test.TestAllExtensions\x18^ \x01(\t:\x05helloR\rdefaultString:Q\n" +
	"\rdefault_bytes\x12%.goproto.proto.test.TestAllExtensions\x18_ \x01(\f:\x05worldR\fdefaultBytes:O\n" +
	"\fpacked_int32\x12(.goproto.proto.test.TestPackedExtensions\x18Z \x03(\x05B\x02\x10\x01R\vpackedInt32:O\n" +
	"\fpacked_int64\x12(.goproto.proto.test.TestPackedExtensions\x18[ \x03(\x03B\x02\x10\x01R\vpackedInt64:Q\n" +
	"\rpacked_uint32\x12(.goproto.proto.test.TestPackedExtensions\x18\\ \x03(\rB\x02\x10\x01R\fpackedUint32:Q\n" +
	"\rpacked_uint64\x12(.goproto.proto.test.TestPackedExtensions\x18] \x03(\x04B\x02\x10\x01R\fpackedUint64:Q\n" +
	"\rpacked_sint32\x12(.goproto.proto.test.TestPackedExtensions\x18^ \x03(\x11B\x02\x10\x01R\fpackedSint32:Q\n" +
	"\rpacked_sint64\x12(.goproto.proto.test.TestPackedExtensions\x18_ \x03(\x12B\x02\x10\x01R\fpackedSint64:S\n" +
	"\x0epacked_fixed32\x12(.goproto.proto.test.TestPackedExtensions\x18` \x03(\aB\x02\x10\x01R\rpackedFixed32:S\n" +
	"\x0epacked_fixed64\x12(.goproto.proto.test.TestPackedExtensions\x18a \x03(\x06B\x02\x10\x01R\rpackedFixed64:U\n" +
	"\x0fpacked_sfixed32\x12(.goproto.proto.test.TestPackedExtensions\x18b \x03(\x0fB\x02\x10\x01R\x0epackedSfixed32:U\n" +
	"\x0fpacked_sfixed64\x12(.goproto.proto.test.TestPackedExtensions\x18c \x03(\x10B\x02\x10\x01R\x0epackedSfixed64:O\n" +
	"\fpacked_float\x12(.goproto.proto.test.TestPackedExtensions\x18d \x03(\x02B\x02\x10\x01R\vpackedFloat:Q\n" +
	"\rpacked_double\x12(.goproto.proto.test.TestPackedExtensions\x18e \x03(\x01B\x02\x10\x01R\fpackedDouble:M\n" +
	"\vpacked_bool\x12(.goproto.proto.test.TestPackedExtensions\x18f \x03(\bB\x02\x10\x01R\n" +
	"packedBool:n\n" +
	"\vpacked_enum\x12(.goproto.proto.test.TestPackedExtensions\x18g \x03(\x0e2\x1f.goproto.proto.test.ForeignEnumB\x02\x10\x01R\n" +
	"packedEnum:U\n" +
	"\x0eunpacked_int32\x12*.goproto.proto.test.TestUnpackedExtensions\x18Z \x03(\x05B\x02\x10\x00R\runpackedInt32:U\n" +
	"\x0eunpacked_int64\x12*.goproto.proto.test.TestUnpackedExtensions\x18[ \x03(\x03B\x02\x10\x00R\runpackedInt64:W\n" +
	"\x0funpacked_uint32\x12*.goproto.proto.test.TestUnpackedExtensions\x18\\ \x03(\rB\x02\x10\x00R\x0eunpackedUint32:W\n" +
	"\x0funpacked_uint64\x12*.goproto.proto.test.TestUnpackedExtensions\x18] \x03(\x04B\x02\x10\x00R\x0eunpackedUint64:W\n" +
	"\x0funpacked_sint32\x12*.goproto.proto.test.TestUnpackedExtensions\x18^ \x03(\x11B\x02\x10\x00R\x0eunpackedSint32:W\n" +
	"\x0funpacked_sint64\x12*.goproto.proto.test.TestUnpackedExtensions\x18_ \x03(\x12B\x02\x10\x00R\x0eunpackedSint64:Y\n" +
	"\x10unpacked_fixed32\x12*.goproto.proto.test.TestUnpackedExtensions\x18` \x03(\aB\x02\x10\x00R\x0funpackedFixed32:Y\n" +
	"\x10unpacked_fixed64\x12*.goproto.proto.test.TestUnpackedExtensions\x18a \x03(\x06B\x02\x10\x00R\x0funpackedFixed64:[\n" +
	"\x11unpacked_sfixed32\x12*.goproto.proto.test.TestUnpackedExtensions\x18b \x03(\x0fB\x02\x10\x00R\x10unpackedSfixed32:[\n" +
	"\x11unpacked_sfixed64\x12*.goproto.proto.test.TestUnpackedExtensions\x18c \x03(\x10B\x02\x10\x00R\x10unpackedSfixed64:U\n" +
	"\x0eunpacked_float\x12*.goproto.proto.test.TestUnpackedExtensions\x18d \x03(\x02B\x02\x10\x00R\runpackedFloat:W\n" +
	"\x0funpacked_double\x12*.goproto.proto.test.TestUnpackedExtensions\x18e \x03(\x01B\x02\x10\x00R\x0eunpackedDouble:S\n" +
	"\runpacked_bool\x12*.goproto.proto.test.TestUnpackedExtensions\x18f \x03(\bB\x02\x10\x00R\funpackedBool:t\n" +
	"\runpacked_enum\x12*.goproto.proto.test.TestUnpackedExtensions\x18g \x03(\x0e2\x1f.goproto.proto.test.ForeignEnumB\x02\x10\x00R\funpackedEnumB5Z3google.golang.org/protobuf/internal/testprotos/testP\x00"

var (
	file_internal_testprotos_test_test_proto_rawDescOnce sync.Once
	file_internal_testprotos_test_test_proto_rawDescData []byte
)

func file_internal_testprotos_test_test_proto_rawDescGZIP() []byte {
	file_internal_testprotos_test_test_proto_rawDescOnce.Do(func() {
		file_internal_testprotos_test_test_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_internal_testprotos_test_test_proto_rawDesc), len(file_internal_testprotos_test_test_proto_rawDesc)))
	})
	return file_internal_testprotos_test_test_proto_rawDescData
}

var file_internal_testprotos_test_test_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
var file_internal_testprotos_test_test_proto_msgTypes = make([]protoimpl.MessageInfo, 47)
var file_internal_testprotos_test_test_proto_goTypes = []any{
	(ForeignEnum)(0),                          // 0: goproto.proto.test.ForeignEnum
	(TestReservedEnumFields)(0),               // 1: goproto.proto.test.TestReservedEnumFields
	(TestAllTypes_NestedEnum)(0),              // 2: goproto.proto.test.TestAllTypes.NestedEnum
	(TestDeprecatedMessage_DeprecatedEnum)(0), // 3: goproto.proto.test.TestDeprecatedMessage.DeprecatedEnum
	(*TestAllTypes)(nil),                      // 4: goproto.proto.test.TestAllTypes
	(*TestManyMessageFieldsMessage)(nil),      // 5: goproto.proto.test.TestManyMessageFieldsMessage
	(*TestDeprecatedMessage)(nil),             // 6: goproto.proto.test.TestDeprecatedMessage
	(*TestOneofWithRequired)(nil),             // 7: goproto.proto.test.TestOneofWithRequired
	(*ForeignMessage)(nil),                    // 8: goproto.proto.test.ForeignMessage
	(*TestReservedFields)(nil),                // 9: goproto.proto.test.TestReservedFields
	(*TestAllExtensions)(nil),                 // 10: goproto.proto.test.TestAllExtensions
	(*OptionalGroup)(nil),                     // 11: goproto.proto.test.OptionalGroup
	(*RepeatedGroup)(nil),                     // 12: goproto.proto.test.RepeatedGroup
	(*TestNestedExtension)(nil),               // 13: goproto.proto.test.TestNestedExtension
	(*TestRequired)(nil),                      // 14: goproto.proto.test.TestRequired
	(*TestRequiredForeign)(nil),               // 15: goproto.proto.test.TestRequiredForeign
	(*TestRequiredGroupFields)(nil),           // 16: goproto.proto.test.TestRequiredGroupFields
	(*TestRequiredLazy)(nil),                  // 17: goproto.proto.test.TestRequiredLazy
	(*TestPackedTypes)(nil),                   // 18: goproto.proto.test.TestPackedTypes
	(*TestUnpackedTypes)(nil),                 // 19: goproto.proto.test.TestUnpackedTypes
	(*TestPackedExtensions)(nil),              // 20: goproto.proto.test.TestPackedExtensions
	(*TestUnpackedExtensions)(nil),            // 21: goproto.proto.test.TestUnpackedExtensions
	(*FooRequest)(nil),                        // 22: goproto.proto.test.FooRequest
	(*FooResponse)(nil),                       // 23: goproto.proto.test.FooResponse
	(*WeirdDefault)(nil),                      // 24: goproto.proto.test.WeirdDefault
	(*RemoteDefault)(nil),                     // 25: goproto.proto.test.RemoteDefault
	(*TestAllTypes_NestedMessage)(nil),        // 26: goproto.proto.test.TestAllTypes.NestedMessage
	(*TestAllTypes_OptionalGroup)(nil),        // 27: goproto.proto.test.TestAllTypes.OptionalGroup
	(*TestAllTypes_RepeatedGroup)(nil),        // 28: goproto.proto.test.TestAllTypes.RepeatedGroup
	nil,                                       // 29: goproto.proto.test.TestAllTypes.MapInt32Int32Entry
	nil,                                       // 30: goproto.proto.test.TestAllTypes.MapInt64Int64Entry
	nil,                                       // 31: goproto.proto.test.TestAllTypes.MapUint32Uint32Entry
	nil,                                       // 32: goproto.proto.test.TestAllTypes.MapUint64Uint64Entry
	nil,                                       // 33: goproto.proto.test.TestAllTypes.MapSint32Sint32Entry
	nil,                                       // 34: goproto.proto.test.TestAllTypes.MapSint64Sint64Entry
	nil,                                       // 35: goproto.proto.test.TestAllTypes.MapFixed32Fixed32Entry
	nil,                                       // 36: goproto.proto.test.TestAllTypes.MapFixed64Fixed64Entry
	nil,                                       // 37: goproto.proto.test.TestAllTypes.MapSfixed32Sfixed32Entry
	nil,                                       // 38: goproto.proto.test.TestAllTypes.MapSfixed64Sfixed64Entry
	nil,                                       // 39: goproto.proto.test.TestAllTypes.MapInt32FloatEntry
	nil,                                       // 40: goproto.proto.test.TestAllTypes.MapInt32DoubleEntry
	nil,                                       // 41: goproto.proto.test.TestAllTypes.MapBoolBoolEntry
	nil,                                       // 42: goproto.proto.test.TestAllTypes.MapStringStringEntry
	nil,                                       // 43: goproto.proto.test.TestAllTypes.MapStringBytesEntry
	nil,                                       // 44: goproto.proto.test.TestAllTypes.MapStringNestedMessageEntry
	nil,                                       // 45: goproto.proto.test.TestAllTypes.MapStringNestedEnumEntry
	(*TestAllTypes_OneofGroup)(nil),           // 46: goproto.proto.test.TestAllTypes.OneofGroup
	(*TestAllExtensions_NestedMessage)(nil),   // 47: goproto.proto.test.TestAllExtensions.NestedMessage
	nil,                                       // 48: goproto.proto.test.TestRequiredForeign.MapMessageEntry
	(*TestRequiredGroupFields_OptionalGroup)(nil), // 49: goproto.proto.test.TestRequiredGroupFields.OptionalGroup
	(*TestRequiredGroupFields_RepeatedGroup)(nil), // 50: goproto.proto.test.TestRequiredGroupFields.RepeatedGroup
	(*ImportMessage)(nil),                         // 51: goproto.proto.test.ImportMessage
	(ImportEnum)(0),                               // 52: goproto.proto.test.ImportEnum
	(*required.Message)(nil),                      // 53: goproto.proto.testrequired.Message
	(enums.Enum)(0),                               // 54: goproto.proto.enums.Enum
}
var file_internal_testprotos_test_test_proto_depIdxs = []int32{
	27,  // 0: goproto.proto.test.TestAllTypes.optionalgroup:type_name -> goproto.proto.test.TestAllTypes.OptionalGroup
	26,  // 1: goproto.proto.test.TestAllTypes.optional_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
	8,   // 2: goproto.proto.test.TestAllTypes.optional_foreign_message:type_name -> goproto.proto.test.ForeignMessage
	51,  // 3: goproto.proto.test.TestAllTypes.optional_import_message:type_name -> goproto.proto.test.ImportMessage
	2,   // 4: goproto.proto.test.TestAllTypes.optional_nested_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
	0,   // 5: goproto.proto.test.TestAllTypes.optional_foreign_enum:type_name -> goproto.proto.test.ForeignEnum
	52,  // 6: goproto.proto.test.TestAllTypes.optional_import_enum:type_name -> goproto.proto.test.ImportEnum
	26,  // 7: goproto.proto.test.TestAllTypes.optional_lazy_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
	28,  // 8: goproto.proto.test.TestAllTypes.repeatedgroup:type_name -> goproto.proto.test.TestAllTypes.RepeatedGroup
	26,  // 9: goproto.proto.test.TestAllTypes.repeated_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
	8,   // 10: goproto.proto.test.TestAllTypes.repeated_foreign_message:type_name -> goproto.proto.test.ForeignMessage
	51,  // 11: goproto.proto.test.TestAllTypes.repeated_importmessage:type_name -> goproto.proto.test.ImportMessage
	2,   // 12: goproto.proto.test.TestAllTypes.repeated_nested_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
	0,   // 13: goproto.proto.test.TestAllTypes.repeated_foreign_enum:type_name -> goproto.proto.test.ForeignEnum
	52,  // 14: goproto.proto.test.TestAllTypes.repeated_importenum:type_name -> goproto.proto.test.ImportEnum
	29,  // 15: goproto.proto.test.TestAllTypes.map_int32_int32:type_name -> goproto.proto.test.TestAllTypes.MapInt32Int32Entry
	30,  // 16: goproto.proto.test.TestAllTypes.map_int64_int64:type_name -> goproto.proto.test.TestAllTypes.MapInt64Int64Entry
	31,  // 17: goproto.proto.test.TestAllTypes.map_uint32_uint32:type_name -> goproto.proto.test.TestAllTypes.MapUint32Uint32Entry
	32,  // 18: goproto.proto.test.TestAllTypes.map_uint64_uint64:type_name -> goproto.proto.test.TestAllTypes.MapUint64Uint64Entry
	33,  // 19: goproto.proto.test.TestAllTypes.map_sint32_sint32:type_name -> goproto.proto.test.TestAllTypes.MapSint32Sint32Entry
	34,  // 20: goproto.proto.test.TestAllTypes.map_sint64_sint64:type_name -> goproto.proto.test.TestAllTypes.MapSint64Sint64Entry
	35,  // 21: goproto.proto.test.TestAllTypes.map_fixed32_fixed32:type_name -> goproto.proto.test.TestAllTypes.MapFixed32Fixed32Entry
	36,  // 22: goproto.proto.test.TestAllTypes.map_fixed64_fixed64:type_name -> goproto.proto.test.TestAllTypes.MapFixed64Fixed64Entry
	37,  // 23: goproto.proto.test.TestAllTypes.map_sfixed32_sfixed32:type_name -> goproto.proto.test.TestAllTypes.MapSfixed32Sfixed32Entry
	38,  // 24: goproto.proto.test.TestAllTypes.map_sfixed64_sfixed64:type_name -> goproto.proto.test.TestAllTypes.MapSfixed64Sfixed64Entry
	39,  // 25: goproto.proto.test.TestAllTypes.map_int32_float:type_name -> goproto.proto.test.TestAllTypes.MapInt32FloatEntry
	40,  // 26: goproto.proto.test.TestAllTypes.map_int32_double:type_name -> goproto.proto.test.TestAllTypes.MapInt32DoubleEntry
	41,  // 27: goproto.proto.test.TestAllTypes.map_bool_bool:type_name -> goproto.proto.test.TestAllTypes.MapBoolBoolEntry
	42,  // 28: goproto.proto.test.TestAllTypes.map_string_string:type_name -> goproto.proto.test.TestAllTypes.MapStringStringEntry
	43,  // 29: goproto.proto.test.TestAllTypes.map_string_bytes:type_name -> goproto.proto.test.TestAllTypes.MapStringBytesEntry
	44,  // 30: goproto.proto.test.TestAllTypes.map_string_nested_message:type_name -> goproto.proto.test.TestAllTypes.MapStringNestedMessageEntry
	45,  // 31: goproto.proto.test.TestAllTypes.map_string_nested_enum:type_name -> goproto.proto.test.TestAllTypes.MapStringNestedEnumEntry
	2,   // 32: goproto.proto.test.TestAllTypes.default_nested_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
	0,   // 33: goproto.proto.test.TestAllTypes.default_foreign_enum:type_name -> goproto.proto.test.ForeignEnum
	26,  // 34: goproto.proto.test.TestAllTypes.oneof_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
	2,   // 35: goproto.proto.test.TestAllTypes.oneof_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
	46,  // 36: goproto.proto.test.TestAllTypes.oneofgroup:type_name -> goproto.proto.test.TestAllTypes.OneofGroup
	4,   // 37: goproto.proto.test.TestManyMessageFieldsMessage.f1:type_name -> goproto.proto.test.TestAllTypes
	4,   // 38: goproto.proto.test.TestManyMessageFieldsMessage.f2:type_name -> goproto.proto.test.TestAllTypes
	4,   // 39: goproto.proto.test.TestManyMessageFieldsMessage.f3:type_name -> goproto.proto.test.TestAllTypes
	4,   // 40: goproto.proto.test.TestManyMessageFieldsMessage.f4:type_name -> goproto.proto.test.TestAllTypes
	4,   // 41: goproto.proto.test.TestManyMessageFieldsMessage.f5:type_name -> goproto.proto.test.TestAllTypes
	4,   // 42: goproto.proto.test.TestManyMessageFieldsMessage.f6:type_name -> goproto.proto.test.TestAllTypes
	4,   // 43: goproto.proto.test.TestManyMessageFieldsMessage.f7:type_name -> goproto.proto.test.TestAllTypes
	4,   // 44: goproto.proto.test.TestManyMessageFieldsMessage.f8:type_name -> goproto.proto.test.TestAllTypes
	4,   // 45: goproto.proto.test.TestManyMessageFieldsMessage.f9:type_name -> goproto.proto.test.TestAllTypes
	4,   // 46: goproto.proto.test.TestManyMessageFieldsMessage.f10:type_name -> goproto.proto.test.TestAllTypes
	4,   // 47: goproto.proto.test.TestManyMessageFieldsMessage.f11:type_name -> goproto.proto.test.TestAllTypes
	4,   // 48: goproto.proto.test.TestManyMessageFieldsMessage.f12:type_name -> goproto.proto.test.TestAllTypes
	4,   // 49: goproto.proto.test.TestManyMessageFieldsMessage.f13:type_name -> goproto.proto.test.TestAllTypes
	4,   // 50: goproto.proto.test.TestManyMessageFieldsMessage.f14:type_name -> goproto.proto.test.TestAllTypes
	4,   // 51: goproto.proto.test.TestManyMessageFieldsMessage.f15:type_name -> goproto.proto.test.TestAllTypes
	4,   // 52: goproto.proto.test.TestManyMessageFieldsMessage.f16:type_name -> goproto.proto.test.TestAllTypes
	4,   // 53: goproto.proto.test.TestManyMessageFieldsMessage.f17:type_name -> goproto.proto.test.TestAllTypes
	4,   // 54: goproto.proto.test.TestManyMessageFieldsMessage.f18:type_name -> goproto.proto.test.TestAllTypes
	4,   // 55: goproto.proto.test.TestManyMessageFieldsMessage.f19:type_name -> goproto.proto.test.TestAllTypes
	4,   // 56: goproto.proto.test.TestManyMessageFieldsMessage.f20:type_name -> goproto.proto.test.TestAllTypes
	4,   // 57: goproto.proto.test.TestManyMessageFieldsMessage.f21:type_name -> goproto.proto.test.TestAllTypes
	4,   // 58: goproto.proto.test.TestManyMessageFieldsMessage.f22:type_name -> goproto.proto.test.TestAllTypes
	4,   // 59: goproto.proto.test.TestManyMessageFieldsMessage.f23:type_name -> goproto.proto.test.TestAllTypes
	4,   // 60: goproto.proto.test.TestManyMessageFieldsMessage.f24:type_name -> goproto.proto.test.TestAllTypes
	4,   // 61: goproto.proto.test.TestManyMessageFieldsMessage.f25:type_name -> goproto.proto.test.TestAllTypes
	4,   // 62: goproto.proto.test.TestManyMessageFieldsMessage.f26:type_name -> goproto.proto.test.TestAllTypes
	4,   // 63: goproto.proto.test.TestManyMessageFieldsMessage.f27:type_name -> goproto.proto.test.TestAllTypes
	4,   // 64: goproto.proto.test.TestManyMessageFieldsMessage.f28:type_name -> goproto.proto.test.TestAllTypes
	4,   // 65: goproto.proto.test.TestManyMessageFieldsMessage.f29:type_name -> goproto.proto.test.TestAllTypes
	4,   // 66: goproto.proto.test.TestManyMessageFieldsMessage.f30:type_name -> goproto.proto.test.TestAllTypes
	4,   // 67: goproto.proto.test.TestManyMessageFieldsMessage.f31:type_name -> goproto.proto.test.TestAllTypes
	4,   // 68: goproto.proto.test.TestManyMessageFieldsMessage.f32:type_name -> goproto.proto.test.TestAllTypes
	4,   // 69: goproto.proto.test.TestManyMessageFieldsMessage.f33:type_name -> goproto.proto.test.TestAllTypes
	4,   // 70: goproto.proto.test.TestManyMessageFieldsMessage.f34:type_name -> goproto.proto.test.TestAllTypes
	4,   // 71: goproto.proto.test.TestManyMessageFieldsMessage.f35:type_name -> goproto.proto.test.TestAllTypes
	4,   // 72: goproto.proto.test.TestManyMessageFieldsMessage.f36:type_name -> goproto.proto.test.TestAllTypes
	4,   // 73: goproto.proto.test.TestManyMessageFieldsMessage.f37:type_name -> goproto.proto.test.TestAllTypes
	4,   // 74: goproto.proto.test.TestManyMessageFieldsMessage.f38:type_name -> goproto.proto.test.TestAllTypes
	4,   // 75: goproto.proto.test.TestManyMessageFieldsMessage.f39:type_name -> goproto.proto.test.TestAllTypes
	4,   // 76: goproto.proto.test.TestManyMessageFieldsMessage.f40:type_name -> goproto.proto.test.TestAllTypes
	4,   // 77: goproto.proto.test.TestManyMessageFieldsMessage.f41:type_name -> goproto.proto.test.TestAllTypes
	4,   // 78: goproto.proto.test.TestManyMessageFieldsMessage.f42:type_name -> goproto.proto.test.TestAllTypes
	4,   // 79: goproto.proto.test.TestManyMessageFieldsMessage.f43:type_name -> goproto.proto.test.TestAllTypes
	4,   // 80: goproto.proto.test.TestManyMessageFieldsMessage.f44:type_name -> goproto.proto.test.TestAllTypes
	4,   // 81: goproto.proto.test.TestManyMessageFieldsMessage.f45:type_name -> goproto.proto.test.TestAllTypes
	4,   // 82: goproto.proto.test.TestManyMessageFieldsMessage.f46:type_name -> goproto.proto.test.TestAllTypes
	4,   // 83: goproto.proto.test.TestManyMessageFieldsMessage.f47:type_name -> goproto.proto.test.TestAllTypes
	4,   // 84: goproto.proto.test.TestManyMessageFieldsMessage.f48:type_name -> goproto.proto.test.TestAllTypes
	4,   // 85: goproto.proto.test.TestManyMessageFieldsMessage.f49:type_name -> goproto.proto.test.TestAllTypes
	4,   // 86: goproto.proto.test.TestManyMessageFieldsMessage.f50:type_name -> goproto.proto.test.TestAllTypes
	4,   // 87: goproto.proto.test.TestManyMessageFieldsMessage.f51:type_name -> goproto.proto.test.TestAllTypes
	4,   // 88: goproto.proto.test.TestManyMessageFieldsMessage.f52:type_name -> goproto.proto.test.TestAllTypes
	4,   // 89: goproto.proto.test.TestManyMessageFieldsMessage.f53:type_name -> goproto.proto.test.TestAllTypes
	4,   // 90: goproto.proto.test.TestManyMessageFieldsMessage.f54:type_name -> goproto.proto.test.TestAllTypes
	4,   // 91: goproto.proto.test.TestManyMessageFieldsMessage.f55:type_name -> goproto.proto.test.TestAllTypes
	4,   // 92: goproto.proto.test.TestManyMessageFieldsMessage.f56:type_name -> goproto.proto.test.TestAllTypes
	4,   // 93: goproto.proto.test.TestManyMessageFieldsMessage.f57:type_name -> goproto.proto.test.TestAllTypes
	4,   // 94: goproto.proto.test.TestManyMessageFieldsMessage.f58:type_name -> goproto.proto.test.TestAllTypes
	4,   // 95: goproto.proto.test.TestManyMessageFieldsMessage.f59:type_name -> goproto.proto.test.TestAllTypes
	4,   // 96: goproto.proto.test.TestManyMessageFieldsMessage.f60:type_name -> goproto.proto.test.TestAllTypes
	4,   // 97: goproto.proto.test.TestManyMessageFieldsMessage.f61:type_name -> goproto.proto.test.TestAllTypes
	4,   // 98: goproto.proto.test.TestManyMessageFieldsMessage.f62:type_name -> goproto.proto.test.TestAllTypes
	4,   // 99: goproto.proto.test.TestManyMessageFieldsMessage.f63:type_name -> goproto.proto.test.TestAllTypes
	4,   // 100: goproto.proto.test.TestManyMessageFieldsMessage.f64:type_name -> goproto.proto.test.TestAllTypes
	4,   // 101: goproto.proto.test.TestManyMessageFieldsMessage.f65:type_name -> goproto.proto.test.TestAllTypes
	4,   // 102: goproto.proto.test.TestManyMessageFieldsMessage.f66:type_name -> goproto.proto.test.TestAllTypes
	4,   // 103: goproto.proto.test.TestManyMessageFieldsMessage.f67:type_name -> goproto.proto.test.TestAllTypes
	4,   // 104: goproto.proto.test.TestManyMessageFieldsMessage.f68:type_name -> goproto.proto.test.TestAllTypes
	4,   // 105: goproto.proto.test.TestManyMessageFieldsMessage.f69:type_name -> goproto.proto.test.TestAllTypes
	4,   // 106: goproto.proto.test.TestManyMessageFieldsMessage.f70:type_name -> goproto.proto.test.TestAllTypes
	4,   // 107: goproto.proto.test.TestManyMessageFieldsMessage.f71:type_name -> goproto.proto.test.TestAllTypes
	4,   // 108: goproto.proto.test.TestManyMessageFieldsMessage.f72:type_name -> goproto.proto.test.TestAllTypes
	4,   // 109: goproto.proto.test.TestManyMessageFieldsMessage.f73:type_name -> goproto.proto.test.TestAllTypes
	4,   // 110: goproto.proto.test.TestManyMessageFieldsMessage.f74:type_name -> goproto.proto.test.TestAllTypes
	4,   // 111: goproto.proto.test.TestManyMessageFieldsMessage.f75:type_name -> goproto.proto.test.TestAllTypes
	4,   // 112: goproto.proto.test.TestManyMessageFieldsMessage.f76:type_name -> goproto.proto.test.TestAllTypes
	4,   // 113: goproto.proto.test.TestManyMessageFieldsMessage.f77:type_name -> goproto.proto.test.TestAllTypes
	4,   // 114: goproto.proto.test.TestManyMessageFieldsMessage.f78:type_name -> goproto.proto.test.TestAllTypes
	4,   // 115: goproto.proto.test.TestManyMessageFieldsMessage.f79:type_name -> goproto.proto.test.TestAllTypes
	4,   // 116: goproto.proto.test.TestManyMessageFieldsMessage.f80:type_name -> goproto.proto.test.TestAllTypes
	4,   // 117: goproto.proto.test.TestManyMessageFieldsMessage.f81:type_name -> goproto.proto.test.TestAllTypes
	4,   // 118: goproto.proto.test.TestManyMessageFieldsMessage.f82:type_name -> goproto.proto.test.TestAllTypes
	4,   // 119: goproto.proto.test.TestManyMessageFieldsMessage.f83:type_name -> goproto.proto.test.TestAllTypes
	4,   // 120: goproto.proto.test.TestManyMessageFieldsMessage.f84:type_name -> goproto.proto.test.TestAllTypes
	4,   // 121: goproto.proto.test.TestManyMessageFieldsMessage.f85:type_name -> goproto.proto.test.TestAllTypes
	4,   // 122: goproto.proto.test.TestManyMessageFieldsMessage.f86:type_name -> goproto.proto.test.TestAllTypes
	4,   // 123: goproto.proto.test.TestManyMessageFieldsMessage.f87:type_name -> goproto.proto.test.TestAllTypes
	4,   // 124: goproto.proto.test.TestManyMessageFieldsMessage.f88:type_name -> goproto.proto.test.TestAllTypes
	4,   // 125: goproto.proto.test.TestManyMessageFieldsMessage.f89:type_name -> goproto.proto.test.TestAllTypes
	4,   // 126: goproto.proto.test.TestManyMessageFieldsMessage.f90:type_name -> goproto.proto.test.TestAllTypes
	4,   // 127: goproto.proto.test.TestManyMessageFieldsMessage.f91:type_name -> goproto.proto.test.TestAllTypes
	4,   // 128: goproto.proto.test.TestManyMessageFieldsMessage.f92:type_name -> goproto.proto.test.TestAllTypes
	4,   // 129: goproto.proto.test.TestManyMessageFieldsMessage.f93:type_name -> goproto.proto.test.TestAllTypes
	4,   // 130: goproto.proto.test.TestManyMessageFieldsMessage.f94:type_name -> goproto.proto.test.TestAllTypes
	4,   // 131: goproto.proto.test.TestManyMessageFieldsMessage.f95:type_name -> goproto.proto.test.TestAllTypes
	4,   // 132: goproto.proto.test.TestManyMessageFieldsMessage.f96:type_name -> goproto.proto.test.TestAllTypes
	4,   // 133: goproto.proto.test.TestManyMessageFieldsMessage.f97:type_name -> goproto.proto.test.TestAllTypes
	4,   // 134: goproto.proto.test.TestManyMessageFieldsMessage.f98:type_name -> goproto.proto.test.TestAllTypes
	4,   // 135: goproto.proto.test.TestManyMessageFieldsMessage.f99:type_name -> goproto.proto.test.TestAllTypes
	4,   // 136: goproto.proto.test.TestManyMessageFieldsMessage.f100:type_name -> goproto.proto.test.TestAllTypes
	53,  // 137: goproto.proto.test.TestOneofWithRequired.oneof_required:type_name -> goproto.proto.testrequired.Message
	47,  // 138: goproto.proto.test.OptionalGroup.optional_nested_message:type_name -> goproto.proto.test.TestAllExtensions.NestedMessage
	47,  // 139: goproto.proto.test.RepeatedGroup.optional_nested_message:type_name -> goproto.proto.test.TestAllExtensions.NestedMessage
	14,  // 140: goproto.proto.test.TestRequiredForeign.optional_message:type_name -> goproto.proto.test.TestRequired
	14,  // 141: goproto.proto.test.TestRequiredForeign.repeated_message:type_name -> goproto.proto.test.TestRequired
	48,  // 142: goproto.proto.test.TestRequiredForeign.map_message:type_name -> goproto.proto.test.TestRequiredForeign.MapMessageEntry
	14,  // 143: goproto.proto.test.TestRequiredForeign.oneof_message:type_name -> goproto.proto.test.TestRequired
	49,  // 144: goproto.proto.test.TestRequiredGroupFields.optionalgroup:type_name -> goproto.proto.test.TestRequiredGroupFields.OptionalGroup
	50,  // 145: goproto.proto.test.TestRequiredGroupFields.repeatedgroup:type_name -> goproto.proto.test.TestRequiredGroupFields.RepeatedGroup
	14,  // 146: goproto.proto.test.TestRequiredLazy.optional_lazy_message:type_name -> goproto.proto.test.TestRequired
	0,   // 147: goproto.proto.test.TestPackedTypes.packed_enum:type_name -> goproto.proto.test.ForeignEnum
	0,   // 148: goproto.proto.test.TestUnpackedTypes.unpacked_enum:type_name -> goproto.proto.test.ForeignEnum
	54,  // 149: goproto.proto.test.RemoteDefault.default:type_name -> goproto.proto.enums.Enum
	54,  // 150: goproto.proto.test.RemoteDefault.zero:type_name -> goproto.proto.enums.Enum
	54,  // 151: goproto.proto.test.RemoteDefault.one:type_name -> goproto.proto.enums.Enum
	54,  // 152: goproto.proto.test.RemoteDefault.elevent:type_name -> goproto.proto.enums.Enum
	54,  // 153: goproto.proto.test.RemoteDefault.seventeen:type_name -> goproto.proto.enums.Enum
	54,  // 154: goproto.proto.test.RemoteDefault.thirtyseven:type_name -> goproto.proto.enums.Enum
	54,  // 155: goproto.proto.test.RemoteDefault.sixtyseven:type_name -> goproto.proto.enums.Enum
	54,  // 156: goproto.proto.test.RemoteDefault.negative:type_name -> goproto.proto.enums.Enum
	4,   // 157: goproto.proto.test.TestAllTypes.NestedMessage.corecursive:type_name -> goproto.proto.test.TestAllTypes
	26,  // 158: goproto.proto.test.TestAllTypes.OptionalGroup.optional_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
	26,  // 159: goproto.proto.test.TestAllTypes.RepeatedGroup.optional_nested_message:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
	26,  // 160: goproto.proto.test.TestAllTypes.MapStringNestedMessageEntry.value:type_name -> goproto.proto.test.TestAllTypes.NestedMessage
	2,   // 161: goproto.proto.test.TestAllTypes.MapStringNestedEnumEntry.value:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
	10,  // 162: goproto.proto.test.TestAllExtensions.NestedMessage.corecursive:type_name -> goproto.proto.test.TestAllExtensions
	14,  // 163: goproto.proto.test.TestRequiredForeign.MapMessageEntry.value:type_name -> goproto.proto.test.TestRequired
	10,  // 164: goproto.proto.test.optional_int32:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 165: goproto.proto.test.optional_int64:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 166: goproto.proto.test.optional_uint32:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 167: goproto.proto.test.optional_uint64:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 168: goproto.proto.test.optional_sint32:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 169: goproto.proto.test.optional_sint64:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 170: goproto.proto.test.optional_fixed32:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 171: goproto.proto.test.optional_fixed64:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 172: goproto.proto.test.optional_sfixed32:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 173: goproto.proto.test.optional_sfixed64:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 174: goproto.proto.test.optional_float:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 175: goproto.proto.test.optional_double:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 176: goproto.proto.test.optional_bool:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 177: goproto.proto.test.optional_string:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 178: goproto.proto.test.optional_bytes:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 179: goproto.proto.test.optionalgroup:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 180: goproto.proto.test.optional_nested_message:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 181: goproto.proto.test.optional_nested_enum:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 182: goproto.proto.test.repeated_int32:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 183: goproto.proto.test.repeated_int64:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 184: goproto.proto.test.repeated_uint32:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 185: goproto.proto.test.repeated_uint64:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 186: goproto.proto.test.repeated_sint32:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 187: goproto.proto.test.repeated_sint64:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 188: goproto.proto.test.repeated_fixed32:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 189: goproto.proto.test.repeated_fixed64:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 190: goproto.proto.test.repeated_sfixed32:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 191: goproto.proto.test.repeated_sfixed64:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 192: goproto.proto.test.repeated_float:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 193: goproto.proto.test.repeated_double:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 194: goproto.proto.test.repeated_bool:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 195: goproto.proto.test.repeated_string:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 196: goproto.proto.test.repeated_bytes:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 197: goproto.proto.test.repeatedgroup:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 198: goproto.proto.test.repeated_nested_message:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 199: goproto.proto.test.repeated_nested_enum:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 200: goproto.proto.test.default_int32:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 201: goproto.proto.test.default_int64:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 202: goproto.proto.test.default_uint32:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 203: goproto.proto.test.default_uint64:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 204: goproto.proto.test.default_sint32:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 205: goproto.proto.test.default_sint64:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 206: goproto.proto.test.default_fixed32:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 207: goproto.proto.test.default_fixed64:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 208: goproto.proto.test.default_sfixed32:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 209: goproto.proto.test.default_sfixed64:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 210: goproto.proto.test.default_float:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 211: goproto.proto.test.default_double:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 212: goproto.proto.test.default_bool:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 213: goproto.proto.test.default_string:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 214: goproto.proto.test.default_bytes:extendee -> goproto.proto.test.TestAllExtensions
	20,  // 215: goproto.proto.test.packed_int32:extendee -> goproto.proto.test.TestPackedExtensions
	20,  // 216: goproto.proto.test.packed_int64:extendee -> goproto.proto.test.TestPackedExtensions
	20,  // 217: goproto.proto.test.packed_uint32:extendee -> goproto.proto.test.TestPackedExtensions
	20,  // 218: goproto.proto.test.packed_uint64:extendee -> goproto.proto.test.TestPackedExtensions
	20,  // 219: goproto.proto.test.packed_sint32:extendee -> goproto.proto.test.TestPackedExtensions
	20,  // 220: goproto.proto.test.packed_sint64:extendee -> goproto.proto.test.TestPackedExtensions
	20,  // 221: goproto.proto.test.packed_fixed32:extendee -> goproto.proto.test.TestPackedExtensions
	20,  // 222: goproto.proto.test.packed_fixed64:extendee -> goproto.proto.test.TestPackedExtensions
	20,  // 223: goproto.proto.test.packed_sfixed32:extendee -> goproto.proto.test.TestPackedExtensions
	20,  // 224: goproto.proto.test.packed_sfixed64:extendee -> goproto.proto.test.TestPackedExtensions
	20,  // 225: goproto.proto.test.packed_float:extendee -> goproto.proto.test.TestPackedExtensions
	20,  // 226: goproto.proto.test.packed_double:extendee -> goproto.proto.test.TestPackedExtensions
	20,  // 227: goproto.proto.test.packed_bool:extendee -> goproto.proto.test.TestPackedExtensions
	20,  // 228: goproto.proto.test.packed_enum:extendee -> goproto.proto.test.TestPackedExtensions
	21,  // 229: goproto.proto.test.unpacked_int32:extendee -> goproto.proto.test.TestUnpackedExtensions
	21,  // 230: goproto.proto.test.unpacked_int64:extendee -> goproto.proto.test.TestUnpackedExtensions
	21,  // 231: goproto.proto.test.unpacked_uint32:extendee -> goproto.proto.test.TestUnpackedExtensions
	21,  // 232: goproto.proto.test.unpacked_uint64:extendee -> goproto.proto.test.TestUnpackedExtensions
	21,  // 233: goproto.proto.test.unpacked_sint32:extendee -> goproto.proto.test.TestUnpackedExtensions
	21,  // 234: goproto.proto.test.unpacked_sint64:extendee -> goproto.proto.test.TestUnpackedExtensions
	21,  // 235: goproto.proto.test.unpacked_fixed32:extendee -> goproto.proto.test.TestUnpackedExtensions
	21,  // 236: goproto.proto.test.unpacked_fixed64:extendee -> goproto.proto.test.TestUnpackedExtensions
	21,  // 237: goproto.proto.test.unpacked_sfixed32:extendee -> goproto.proto.test.TestUnpackedExtensions
	21,  // 238: goproto.proto.test.unpacked_sfixed64:extendee -> goproto.proto.test.TestUnpackedExtensions
	21,  // 239: goproto.proto.test.unpacked_float:extendee -> goproto.proto.test.TestUnpackedExtensions
	21,  // 240: goproto.proto.test.unpacked_double:extendee -> goproto.proto.test.TestUnpackedExtensions
	21,  // 241: goproto.proto.test.unpacked_bool:extendee -> goproto.proto.test.TestUnpackedExtensions
	21,  // 242: goproto.proto.test.unpacked_enum:extendee -> goproto.proto.test.TestUnpackedExtensions
	10,  // 243: goproto.proto.test.TestNestedExtension.nested_string_extension:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 244: goproto.proto.test.TestRequired.single:extendee -> goproto.proto.test.TestAllExtensions
	10,  // 245: goproto.proto.test.TestRequired.multi:extendee -> goproto.proto.test.TestAllExtensions
	11,  // 246: goproto.proto.test.optionalgroup:type_name -> goproto.proto.test.OptionalGroup
	47,  // 247: goproto.proto.test.optional_nested_message:type_name -> goproto.proto.test.TestAllExtensions.NestedMessage
	2,   // 248: goproto.proto.test.optional_nested_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
	12,  // 249: goproto.proto.test.repeatedgroup:type_name -> goproto.proto.test.RepeatedGroup
	47,  // 250: goproto.proto.test.repeated_nested_message:type_name -> goproto.proto.test.TestAllExtensions.NestedMessage
	2,   // 251: goproto.proto.test.repeated_nested_enum:type_name -> goproto.proto.test.TestAllTypes.NestedEnum
	0,   // 252: goproto.proto.test.packed_enum:type_name -> goproto.proto.test.ForeignEnum
	0,   // 253: goproto.proto.test.unpacked_enum:type_name -> goproto.proto.test.ForeignEnum
	14,  // 254: goproto.proto.test.TestRequired.single:type_name -> goproto.proto.test.TestRequired
	14,  // 255: goproto.proto.test.TestRequired.multi:type_name -> goproto.proto.test.TestRequired
	22,  // 256: goproto.proto.test.TestService.Foo:input_type -> goproto.proto.test.FooRequest
	22,  // 257: goproto.proto.test.TestService.TestStream:input_type -> goproto.proto.test.FooRequest
	6,   // 258: goproto.proto.test.TestDeprecatedService.Deprecated:input_type -> goproto.proto.test.TestDeprecatedMessage
	23,  // 259: goproto.proto.test.TestService.Foo:output_type -> goproto.proto.test.FooResponse
	23,  // 260: goproto.proto.test.TestService.TestStream:output_type -> goproto.proto.test.FooResponse
	6,   // 261: goproto.proto.test.TestDeprecatedService.Deprecated:output_type -> goproto.proto.test.TestDeprecatedMessage
	259, // [259:262] is the sub-list for method output_type
	256, // [256:259] is the sub-list for method input_type
	246, // [246:256] is the sub-list for extension type_name
	164, // [164:246] is the sub-list for extension extendee
	0,   // [0:164] is the sub-list for field type_name
}

func init() { file_internal_testprotos_test_test_proto_init() }
func file_internal_testprotos_test_test_proto_init() {
	if File_internal_testprotos_test_test_proto != nil {
		return
	}
	file_internal_testprotos_test_test_public_proto_init()
	file_internal_testprotos_test_test_import_proto_init()
	file_internal_testprotos_test_test_proto_msgTypes[0].OneofWrappers = []any{
		(*TestAllTypes_OneofUint32)(nil),
		(*TestAllTypes_OneofNestedMessage)(nil),
		(*TestAllTypes_OneofString)(nil),
		(*TestAllTypes_OneofBytes)(nil),
		(*TestAllTypes_OneofBool)(nil),
		(*TestAllTypes_OneofUint64)(nil),
		(*TestAllTypes_OneofFloat)(nil),
		(*TestAllTypes_OneofDouble)(nil),
		(*TestAllTypes_OneofEnum)(nil),
		(*TestAllTypes_Oneofgroup)(nil),
		(*TestAllTypes_OneofOptionalUint32)(nil),
	}
	file_internal_testprotos_test_test_proto_msgTypes[2].OneofWrappers = []any{
		(*TestDeprecatedMessage_DeprecatedOneofField)(nil),
	}
	file_internal_testprotos_test_test_proto_msgTypes[3].OneofWrappers = []any{
		(*TestOneofWithRequired_OneofUint32)(nil),
		(*TestOneofWithRequired_OneofRequired)(nil),
	}
	file_internal_testprotos_test_test_proto_msgTypes[11].OneofWrappers = []any{
		(*TestRequiredForeign_OneofMessage)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_internal_testprotos_test_test_proto_rawDesc), len(file_internal_testprotos_test_test_proto_rawDesc)),
			NumEnums:      4,
			NumMessages:   47,
			NumExtensions: 82,
			NumServices:   2,
		},
		GoTypes:           file_internal_testprotos_test_test_proto_goTypes,
		DependencyIndexes: file_internal_testprotos_test_test_proto_depIdxs,
		EnumInfos:         file_internal_testprotos_test_test_proto_enumTypes,
		MessageInfos:      file_internal_testprotos_test_test_proto_msgTypes,
		ExtensionInfos:    file_internal_testprotos_test_test_proto_extTypes,
	}.Build()
	File_internal_testprotos_test_test_proto = out.File
	file_internal_testprotos_test_test_proto_goTypes = nil
	file_internal_testprotos_test_test_proto_depIdxs = nil
}
