// 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/test3/test_extension.proto

package test3

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	descriptorpb "google.golang.org/protobuf/types/descriptorpb"
	reflect "reflect"
	unsafe "unsafe"
)

var file_internal_testprotos_test3_test_extension_proto_extTypes = []protoimpl.ExtensionInfo{
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*int32)(nil),
		Field:         1001,
		Name:          "goproto.proto.test3.optional_int32_ext",
		Tag:           "varint,1001,opt,name=optional_int32_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*int64)(nil),
		Field:         1002,
		Name:          "goproto.proto.test3.optional_int64_ext",
		Tag:           "varint,1002,opt,name=optional_int64_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*uint32)(nil),
		Field:         1003,
		Name:          "goproto.proto.test3.optional_uint32_ext",
		Tag:           "varint,1003,opt,name=optional_uint32_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*uint64)(nil),
		Field:         1004,
		Name:          "goproto.proto.test3.optional_uint64_ext",
		Tag:           "varint,1004,opt,name=optional_uint64_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*int32)(nil),
		Field:         1005,
		Name:          "goproto.proto.test3.optional_sint32_ext",
		Tag:           "zigzag32,1005,opt,name=optional_sint32_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*int64)(nil),
		Field:         1006,
		Name:          "goproto.proto.test3.optional_sint64_ext",
		Tag:           "zigzag64,1006,opt,name=optional_sint64_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*uint32)(nil),
		Field:         1007,
		Name:          "goproto.proto.test3.optional_fixed32_ext",
		Tag:           "fixed32,1007,opt,name=optional_fixed32_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*uint64)(nil),
		Field:         1008,
		Name:          "goproto.proto.test3.optional_fixed64_ext",
		Tag:           "fixed64,1008,opt,name=optional_fixed64_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*int32)(nil),
		Field:         1009,
		Name:          "goproto.proto.test3.optional_sfixed32_ext",
		Tag:           "fixed32,1009,opt,name=optional_sfixed32_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*int64)(nil),
		Field:         1010,
		Name:          "goproto.proto.test3.optional_sfixed64_ext",
		Tag:           "fixed64,1010,opt,name=optional_sfixed64_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*float32)(nil),
		Field:         1011,
		Name:          "goproto.proto.test3.optional_float_ext",
		Tag:           "fixed32,1011,opt,name=optional_float_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*float64)(nil),
		Field:         1012,
		Name:          "goproto.proto.test3.optional_double_ext",
		Tag:           "fixed64,1012,opt,name=optional_double_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*bool)(nil),
		Field:         1013,
		Name:          "goproto.proto.test3.optional_bool_ext",
		Tag:           "varint,1013,opt,name=optional_bool_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*string)(nil),
		Field:         1014,
		Name:          "goproto.proto.test3.optional_string_ext",
		Tag:           "bytes,1014,opt,name=optional_string_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: ([]byte)(nil),
		Field:         1015,
		Name:          "goproto.proto.test3.optional_bytes_ext",
		Tag:           "bytes,1015,opt,name=optional_bytes_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*ForeignMessage)(nil),
		Field:         1016,
		Name:          "goproto.proto.test3.optional_foreign_message_ext",
		Tag:           "bytes,1016,opt,name=optional_foreign_message_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*ForeignEnum)(nil),
		Field:         1017,
		Name:          "goproto.proto.test3.optional_foreign_enum_ext",
		Tag:           "varint,1017,opt,name=optional_foreign_enum_ext,enum=goproto.proto.test3.ForeignEnum",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*int32)(nil),
		Field:         2001,
		Name:          "goproto.proto.test3.optional_optional_int32_ext",
		Tag:           "varint,2001,opt,name=optional_optional_int32_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*int64)(nil),
		Field:         2002,
		Name:          "goproto.proto.test3.optional_optional_int64_ext",
		Tag:           "varint,2002,opt,name=optional_optional_int64_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*uint32)(nil),
		Field:         2003,
		Name:          "goproto.proto.test3.optional_optional_uint32_ext",
		Tag:           "varint,2003,opt,name=optional_optional_uint32_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*uint64)(nil),
		Field:         2004,
		Name:          "goproto.proto.test3.optional_optional_uint64_ext",
		Tag:           "varint,2004,opt,name=optional_optional_uint64_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*int32)(nil),
		Field:         2005,
		Name:          "goproto.proto.test3.optional_optional_sint32_ext",
		Tag:           "zigzag32,2005,opt,name=optional_optional_sint32_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*int64)(nil),
		Field:         2006,
		Name:          "goproto.proto.test3.optional_optional_sint64_ext",
		Tag:           "zigzag64,2006,opt,name=optional_optional_sint64_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*uint32)(nil),
		Field:         2007,
		Name:          "goproto.proto.test3.optional_optional_fixed32_ext",
		Tag:           "fixed32,2007,opt,name=optional_optional_fixed32_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*uint64)(nil),
		Field:         2008,
		Name:          "goproto.proto.test3.optional_optional_fixed64_ext",
		Tag:           "fixed64,2008,opt,name=optional_optional_fixed64_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*int32)(nil),
		Field:         2009,
		Name:          "goproto.proto.test3.optional_optional_sfixed32_ext",
		Tag:           "fixed32,2009,opt,name=optional_optional_sfixed32_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*int64)(nil),
		Field:         2010,
		Name:          "goproto.proto.test3.optional_optional_sfixed64_ext",
		Tag:           "fixed64,2010,opt,name=optional_optional_sfixed64_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*float32)(nil),
		Field:         2011,
		Name:          "goproto.proto.test3.optional_optional_float_ext",
		Tag:           "fixed32,2011,opt,name=optional_optional_float_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*float64)(nil),
		Field:         2012,
		Name:          "goproto.proto.test3.optional_optional_double_ext",
		Tag:           "fixed64,2012,opt,name=optional_optional_double_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*bool)(nil),
		Field:         2013,
		Name:          "goproto.proto.test3.optional_optional_bool_ext",
		Tag:           "varint,2013,opt,name=optional_optional_bool_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*string)(nil),
		Field:         2014,
		Name:          "goproto.proto.test3.optional_optional_string_ext",
		Tag:           "bytes,2014,opt,name=optional_optional_string_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: ([]byte)(nil),
		Field:         2015,
		Name:          "goproto.proto.test3.optional_optional_bytes_ext",
		Tag:           "bytes,2015,opt,name=optional_optional_bytes_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*ForeignMessage)(nil),
		Field:         2016,
		Name:          "goproto.proto.test3.optional_optional_foreign_message_ext",
		Tag:           "bytes,2016,opt,name=optional_optional_foreign_message_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: (*ForeignEnum)(nil),
		Field:         2017,
		Name:          "goproto.proto.test3.optional_optional_foreign_enum_ext",
		Tag:           "varint,2017,opt,name=optional_optional_foreign_enum_ext,enum=goproto.proto.test3.ForeignEnum",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: ([]int32)(nil),
		Field:         3001,
		Name:          "goproto.proto.test3.repeated_int32_ext",
		Tag:           "varint,3001,rep,packed,name=repeated_int32_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: ([]int64)(nil),
		Field:         3002,
		Name:          "goproto.proto.test3.repeated_int64_ext",
		Tag:           "varint,3002,rep,packed,name=repeated_int64_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: ([]uint32)(nil),
		Field:         3003,
		Name:          "goproto.proto.test3.repeated_uint32_ext",
		Tag:           "varint,3003,rep,packed,name=repeated_uint32_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: ([]uint64)(nil),
		Field:         3004,
		Name:          "goproto.proto.test3.repeated_uint64_ext",
		Tag:           "varint,3004,rep,packed,name=repeated_uint64_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: ([]int32)(nil),
		Field:         3005,
		Name:          "goproto.proto.test3.repeated_sint32_ext",
		Tag:           "zigzag32,3005,rep,packed,name=repeated_sint32_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: ([]int64)(nil),
		Field:         3006,
		Name:          "goproto.proto.test3.repeated_sint64_ext",
		Tag:           "zigzag64,3006,rep,packed,name=repeated_sint64_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: ([]uint32)(nil),
		Field:         3007,
		Name:          "goproto.proto.test3.repeated_fixed32_ext",
		Tag:           "fixed32,3007,rep,packed,name=repeated_fixed32_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: ([]uint64)(nil),
		Field:         3008,
		Name:          "goproto.proto.test3.repeated_fixed64_ext",
		Tag:           "fixed64,3008,rep,packed,name=repeated_fixed64_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: ([]int32)(nil),
		Field:         3009,
		Name:          "goproto.proto.test3.repeated_sfixed32_ext",
		Tag:           "fixed32,3009,rep,packed,name=repeated_sfixed32_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: ([]int64)(nil),
		Field:         3010,
		Name:          "goproto.proto.test3.repeated_sfixed64_ext",
		Tag:           "fixed64,3010,rep,packed,name=repeated_sfixed64_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: ([]float32)(nil),
		Field:         3011,
		Name:          "goproto.proto.test3.repeated_float_ext",
		Tag:           "fixed32,3011,rep,packed,name=repeated_float_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: ([]float64)(nil),
		Field:         3012,
		Name:          "goproto.proto.test3.repeated_double_ext",
		Tag:           "fixed64,3012,rep,packed,name=repeated_double_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: ([]bool)(nil),
		Field:         3013,
		Name:          "goproto.proto.test3.repeated_bool_ext",
		Tag:           "varint,3013,rep,packed,name=repeated_bool_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: ([]string)(nil),
		Field:         3014,
		Name:          "goproto.proto.test3.repeated_string_ext",
		Tag:           "bytes,3014,rep,name=repeated_string_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: ([][]byte)(nil),
		Field:         3015,
		Name:          "goproto.proto.test3.repeated_bytes_ext",
		Tag:           "bytes,3015,rep,name=repeated_bytes_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: ([]*ForeignMessage)(nil),
		Field:         3016,
		Name:          "goproto.proto.test3.repeated_foreign_message_ext",
		Tag:           "bytes,3016,rep,name=repeated_foreign_message_ext",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
	{
		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
		ExtensionType: ([]ForeignEnum)(nil),
		Field:         3017,
		Name:          "goproto.proto.test3.repeated_foreign_enum_ext",
		Tag:           "varint,3017,rep,packed,name=repeated_foreign_enum_ext,enum=goproto.proto.test3.ForeignEnum",
		Filename:      "internal/testprotos/test3/test_extension.proto",
	},
}

// Extension fields to descriptorpb.MessageOptions.
var (
	// optional int32 optional_int32_ext = 1001;
	E_OptionalInt32Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[0]
	// optional int64 optional_int64_ext = 1002;
	E_OptionalInt64Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[1]
	// optional uint32 optional_uint32_ext = 1003;
	E_OptionalUint32Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[2]
	// optional uint64 optional_uint64_ext = 1004;
	E_OptionalUint64Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[3]
	// optional sint32 optional_sint32_ext = 1005;
	E_OptionalSint32Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[4]
	// optional sint64 optional_sint64_ext = 1006;
	E_OptionalSint64Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[5]
	// optional fixed32 optional_fixed32_ext = 1007;
	E_OptionalFixed32Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[6]
	// optional fixed64 optional_fixed64_ext = 1008;
	E_OptionalFixed64Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[7]
	// optional sfixed32 optional_sfixed32_ext = 1009;
	E_OptionalSfixed32Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[8]
	// optional sfixed64 optional_sfixed64_ext = 1010;
	E_OptionalSfixed64Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[9]
	// optional float optional_float_ext = 1011;
	E_OptionalFloatExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[10]
	// optional double optional_double_ext = 1012;
	E_OptionalDoubleExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[11]
	// optional bool optional_bool_ext = 1013;
	E_OptionalBoolExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[12]
	// optional string optional_string_ext = 1014;
	E_OptionalStringExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[13]
	// optional bytes optional_bytes_ext = 1015;
	E_OptionalBytesExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[14]
	// optional goproto.proto.test3.ForeignMessage optional_foreign_message_ext = 1016;
	E_OptionalForeignMessageExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[15]
	// optional goproto.proto.test3.ForeignEnum optional_foreign_enum_ext = 1017;
	E_OptionalForeignEnumExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[16]
	// optional int32 optional_optional_int32_ext = 2001;
	E_OptionalOptionalInt32Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[17]
	// optional int64 optional_optional_int64_ext = 2002;
	E_OptionalOptionalInt64Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[18]
	// optional uint32 optional_optional_uint32_ext = 2003;
	E_OptionalOptionalUint32Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[19]
	// optional uint64 optional_optional_uint64_ext = 2004;
	E_OptionalOptionalUint64Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[20]
	// optional sint32 optional_optional_sint32_ext = 2005;
	E_OptionalOptionalSint32Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[21]
	// optional sint64 optional_optional_sint64_ext = 2006;
	E_OptionalOptionalSint64Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[22]
	// optional fixed32 optional_optional_fixed32_ext = 2007;
	E_OptionalOptionalFixed32Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[23]
	// optional fixed64 optional_optional_fixed64_ext = 2008;
	E_OptionalOptionalFixed64Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[24]
	// optional sfixed32 optional_optional_sfixed32_ext = 2009;
	E_OptionalOptionalSfixed32Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[25]
	// optional sfixed64 optional_optional_sfixed64_ext = 2010;
	E_OptionalOptionalSfixed64Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[26]
	// optional float optional_optional_float_ext = 2011;
	E_OptionalOptionalFloatExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[27]
	// optional double optional_optional_double_ext = 2012;
	E_OptionalOptionalDoubleExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[28]
	// optional bool optional_optional_bool_ext = 2013;
	E_OptionalOptionalBoolExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[29]
	// optional string optional_optional_string_ext = 2014;
	E_OptionalOptionalStringExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[30]
	// optional bytes optional_optional_bytes_ext = 2015;
	E_OptionalOptionalBytesExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[31]
	// optional goproto.proto.test3.ForeignMessage optional_optional_foreign_message_ext = 2016;
	E_OptionalOptionalForeignMessageExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[32]
	// optional goproto.proto.test3.ForeignEnum optional_optional_foreign_enum_ext = 2017;
	E_OptionalOptionalForeignEnumExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[33]
	// repeated int32 repeated_int32_ext = 3001;
	E_RepeatedInt32Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[34]
	// repeated int64 repeated_int64_ext = 3002;
	E_RepeatedInt64Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[35]
	// repeated uint32 repeated_uint32_ext = 3003;
	E_RepeatedUint32Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[36]
	// repeated uint64 repeated_uint64_ext = 3004;
	E_RepeatedUint64Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[37]
	// repeated sint32 repeated_sint32_ext = 3005;
	E_RepeatedSint32Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[38]
	// repeated sint64 repeated_sint64_ext = 3006;
	E_RepeatedSint64Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[39]
	// repeated fixed32 repeated_fixed32_ext = 3007;
	E_RepeatedFixed32Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[40]
	// repeated fixed64 repeated_fixed64_ext = 3008;
	E_RepeatedFixed64Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[41]
	// repeated sfixed32 repeated_sfixed32_ext = 3009;
	E_RepeatedSfixed32Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[42]
	// repeated sfixed64 repeated_sfixed64_ext = 3010;
	E_RepeatedSfixed64Ext = &file_internal_testprotos_test3_test_extension_proto_extTypes[43]
	// repeated float repeated_float_ext = 3011;
	E_RepeatedFloatExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[44]
	// repeated double repeated_double_ext = 3012;
	E_RepeatedDoubleExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[45]
	// repeated bool repeated_bool_ext = 3013;
	E_RepeatedBoolExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[46]
	// repeated string repeated_string_ext = 3014;
	E_RepeatedStringExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[47]
	// repeated bytes repeated_bytes_ext = 3015;
	E_RepeatedBytesExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[48]
	// repeated goproto.proto.test3.ForeignMessage repeated_foreign_message_ext = 3016;
	E_RepeatedForeignMessageExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[49]
	// repeated goproto.proto.test3.ForeignEnum repeated_foreign_enum_ext = 3017;
	E_RepeatedForeignEnumExt = &file_internal_testprotos_test3_test_extension_proto_extTypes[50]
)

var File_internal_testprotos_test3_test_extension_proto protoreflect.FileDescriptor

const file_internal_testprotos_test3_test_extension_proto_rawDesc = "" +
	"\n" +
	".internal/testprotos/test3/test_extension.proto\x12\x13goproto.proto.test3\x1a google/protobuf/descriptor.proto\x1a$internal/testprotos/test3/test.proto:N\n" +
	"\x12optional_int32_ext\x12\x1f.google.protobuf.MessageOptions\x18\xe9\a \x01(\x05R\x10optionalInt32Ext:N\n" +
	"\x12optional_int64_ext\x12\x1f.google.protobuf.MessageOptions\x18\xea\a \x01(\x03R\x10optionalInt64Ext:P\n" +
	"\x13optional_uint32_ext\x12\x1f.google.protobuf.MessageOptions\x18\xeb\a \x01(\rR\x11optionalUint32Ext:P\n" +
	"\x13optional_uint64_ext\x12\x1f.google.protobuf.MessageOptions\x18\xec\a \x01(\x04R\x11optionalUint64Ext:P\n" +
	"\x13optional_sint32_ext\x12\x1f.google.protobuf.MessageOptions\x18\xed\a \x01(\x11R\x11optionalSint32Ext:P\n" +
	"\x13optional_sint64_ext\x12\x1f.google.protobuf.MessageOptions\x18\xee\a \x01(\x12R\x11optionalSint64Ext:R\n" +
	"\x14optional_fixed32_ext\x12\x1f.google.protobuf.MessageOptions\x18\xef\a \x01(\aR\x12optionalFixed32Ext:R\n" +
	"\x14optional_fixed64_ext\x12\x1f.google.protobuf.MessageOptions\x18\xf0\a \x01(\x06R\x12optionalFixed64Ext:T\n" +
	"\x15optional_sfixed32_ext\x12\x1f.google.protobuf.MessageOptions\x18\xf1\a \x01(\x0fR\x13optionalSfixed32Ext:T\n" +
	"\x15optional_sfixed64_ext\x12\x1f.google.protobuf.MessageOptions\x18\xf2\a \x01(\x10R\x13optionalSfixed64Ext:N\n" +
	"\x12optional_float_ext\x12\x1f.google.protobuf.MessageOptions\x18\xf3\a \x01(\x02R\x10optionalFloatExt:P\n" +
	"\x13optional_double_ext\x12\x1f.google.protobuf.MessageOptions\x18\xf4\a \x01(\x01R\x11optionalDoubleExt:L\n" +
	"\x11optional_bool_ext\x12\x1f.google.protobuf.MessageOptions\x18\xf5\a \x01(\bR\x0foptionalBoolExt:P\n" +
	"\x13optional_string_ext\x12\x1f.google.protobuf.MessageOptions\x18\xf6\a \x01(\tR\x11optionalStringExt:N\n" +
	"\x12optional_bytes_ext\x12\x1f.google.protobuf.MessageOptions\x18\xf7\a \x01(\fR\x10optionalBytesExt:\x86\x01\n" +
	"\x1coptional_foreign_message_ext\x12\x1f.google.protobuf.MessageOptions\x18\xf8\a \x01(\v2#.goproto.proto.test3.ForeignMessageR\x19optionalForeignMessageExt:}\n" +
	"\x19optional_foreign_enum_ext\x12\x1f.google.protobuf.MessageOptions\x18\xf9\a \x01(\x0e2 .goproto.proto.test3.ForeignEnumR\x16optionalForeignEnumExt:b\n" +
	"\x1boptional_optional_int32_ext\x12\x1f.google.protobuf.MessageOptions\x18\xd1\x0f \x01(\x05R\x18optionalOptionalInt32Ext\x88\x01\x01:b\n" +
	"\x1boptional_optional_int64_ext\x12\x1f.google.protobuf.MessageOptions\x18\xd2\x0f \x01(\x03R\x18optionalOptionalInt64Ext\x88\x01\x01:d\n" +
	"\x1coptional_optional_uint32_ext\x12\x1f.google.protobuf.MessageOptions\x18\xd3\x0f \x01(\rR\x19optionalOptionalUint32Ext\x88\x01\x01:d\n" +
	"\x1coptional_optional_uint64_ext\x12\x1f.google.protobuf.MessageOptions\x18\xd4\x0f \x01(\x04R\x19optionalOptionalUint64Ext\x88\x01\x01:d\n" +
	"\x1coptional_optional_sint32_ext\x12\x1f.google.protobuf.MessageOptions\x18\xd5\x0f \x01(\x11R\x19optionalOptionalSint32Ext\x88\x01\x01:d\n" +
	"\x1coptional_optional_sint64_ext\x12\x1f.google.protobuf.MessageOptions\x18\xd6\x0f \x01(\x12R\x19optionalOptionalSint64Ext\x88\x01\x01:f\n" +
	"\x1doptional_optional_fixed32_ext\x12\x1f.google.protobuf.MessageOptions\x18\xd7\x0f \x01(\aR\x1aoptionalOptionalFixed32Ext\x88\x01\x01:f\n" +
	"\x1doptional_optional_fixed64_ext\x12\x1f.google.protobuf.MessageOptions\x18\xd8\x0f \x01(\x06R\x1aoptionalOptionalFixed64Ext\x88\x01\x01:h\n" +
	"\x1eoptional_optional_sfixed32_ext\x12\x1f.google.protobuf.MessageOptions\x18\xd9\x0f \x01(\x0fR\x1boptionalOptionalSfixed32Ext\x88\x01\x01:h\n" +
	"\x1eoptional_optional_sfixed64_ext\x12\x1f.google.protobuf.MessageOptions\x18\xda\x0f \x01(\x10R\x1boptionalOptionalSfixed64Ext\x88\x01\x01:b\n" +
	"\x1boptional_optional_float_ext\x12\x1f.google.protobuf.MessageOptions\x18\xdb\x0f \x01(\x02R\x18optionalOptionalFloatExt\x88\x01\x01:d\n" +
	"\x1coptional_optional_double_ext\x12\x1f.google.protobuf.MessageOptions\x18\xdc\x0f \x01(\x01R\x19optionalOptionalDoubleExt\x88\x01\x01:`\n" +
	"\x1aoptional_optional_bool_ext\x12\x1f.google.protobuf.MessageOptions\x18\xdd\x0f \x01(\bR\x17optionalOptionalBoolExt\x88\x01\x01:d\n" +
	"\x1coptional_optional_string_ext\x12\x1f.google.protobuf.MessageOptions\x18\xde\x0f \x01(\tR\x19optionalOptionalStringExt\x88\x01\x01:b\n" +
	"\x1boptional_optional_bytes_ext\x12\x1f.google.protobuf.MessageOptions\x18\xdf\x0f \x01(\fR\x18optionalOptionalBytesExt\x88\x01\x01:\x9a\x01\n" +
	"%optional_optional_foreign_message_ext\x12\x1f.google.protobuf.MessageOptions\x18\xe0\x0f \x01(\v2#.goproto.proto.test3.ForeignMessageR!optionalOptionalForeignMessageExt\x88\x01\x01:\x91\x01\n" +
	"\"optional_optional_foreign_enum_ext\x12\x1f.google.protobuf.MessageOptions\x18\xe1\x0f \x01(\x0e2 .goproto.proto.test3.ForeignEnumR\x1eoptionalOptionalForeignEnumExt\x88\x01\x01:N\n" +
	"\x12repeated_int32_ext\x12\x1f.google.protobuf.MessageOptions\x18\xb9\x17 \x03(\x05R\x10repeatedInt32Ext:N\n" +
	"\x12repeated_int64_ext\x12\x1f.google.protobuf.MessageOptions\x18\xba\x17 \x03(\x03R\x10repeatedInt64Ext:P\n" +
	"\x13repeated_uint32_ext\x12\x1f.google.protobuf.MessageOptions\x18\xbb\x17 \x03(\rR\x11repeatedUint32Ext:P\n" +
	"\x13repeated_uint64_ext\x12\x1f.google.protobuf.MessageOptions\x18\xbc\x17 \x03(\x04R\x11repeatedUint64Ext:P\n" +
	"\x13repeated_sint32_ext\x12\x1f.google.protobuf.MessageOptions\x18\xbd\x17 \x03(\x11R\x11repeatedSint32Ext:P\n" +
	"\x13repeated_sint64_ext\x12\x1f.google.protobuf.MessageOptions\x18\xbe\x17 \x03(\x12R\x11repeatedSint64Ext:R\n" +
	"\x14repeated_fixed32_ext\x12\x1f.google.protobuf.MessageOptions\x18\xbf\x17 \x03(\aR\x12repeatedFixed32Ext:R\n" +
	"\x14repeated_fixed64_ext\x12\x1f.google.protobuf.MessageOptions\x18\xc0\x17 \x03(\x06R\x12repeatedFixed64Ext:T\n" +
	"\x15repeated_sfixed32_ext\x12\x1f.google.protobuf.MessageOptions\x18\xc1\x17 \x03(\x0fR\x13repeatedSfixed32Ext:T\n" +
	"\x15repeated_sfixed64_ext\x12\x1f.google.protobuf.MessageOptions\x18\xc2\x17 \x03(\x10R\x13repeatedSfixed64Ext:N\n" +
	"\x12repeated_float_ext\x12\x1f.google.protobuf.MessageOptions\x18\xc3\x17 \x03(\x02R\x10repeatedFloatExt:P\n" +
	"\x13repeated_double_ext\x12\x1f.google.protobuf.MessageOptions\x18\xc4\x17 \x03(\x01R\x11repeatedDoubleExt:L\n" +
	"\x11repeated_bool_ext\x12\x1f.google.protobuf.MessageOptions\x18\xc5\x17 \x03(\bR\x0frepeatedBoolExt:P\n" +
	"\x13repeated_string_ext\x12\x1f.google.protobuf.MessageOptions\x18\xc6\x17 \x03(\tR\x11repeatedStringExt:N\n" +
	"\x12repeated_bytes_ext\x12\x1f.google.protobuf.MessageOptions\x18\xc7\x17 \x03(\fR\x10repeatedBytesExt:\x86\x01\n" +
	"\x1crepeated_foreign_message_ext\x12\x1f.google.protobuf.MessageOptions\x18\xc8\x17 \x03(\v2#.goproto.proto.test3.ForeignMessageR\x19repeatedForeignMessageExt:}\n" +
	"\x19repeated_foreign_enum_ext\x12\x1f.google.protobuf.MessageOptions\x18\xc9\x17 \x03(\x0e2 .goproto.proto.test3.ForeignEnumR\x16repeatedForeignEnumExtB6Z4google.golang.org/protobuf/internal/testprotos/test3b\x06proto3"

var file_internal_testprotos_test3_test_extension_proto_goTypes = []any{
	(*descriptorpb.MessageOptions)(nil), // 0: google.protobuf.MessageOptions
	(*ForeignMessage)(nil),              // 1: goproto.proto.test3.ForeignMessage
	(ForeignEnum)(0),                    // 2: goproto.proto.test3.ForeignEnum
}
var file_internal_testprotos_test3_test_extension_proto_depIdxs = []int32{
	0,  // 0: goproto.proto.test3.optional_int32_ext:extendee -> google.protobuf.MessageOptions
	0,  // 1: goproto.proto.test3.optional_int64_ext:extendee -> google.protobuf.MessageOptions
	0,  // 2: goproto.proto.test3.optional_uint32_ext:extendee -> google.protobuf.MessageOptions
	0,  // 3: goproto.proto.test3.optional_uint64_ext:extendee -> google.protobuf.MessageOptions
	0,  // 4: goproto.proto.test3.optional_sint32_ext:extendee -> google.protobuf.MessageOptions
	0,  // 5: goproto.proto.test3.optional_sint64_ext:extendee -> google.protobuf.MessageOptions
	0,  // 6: goproto.proto.test3.optional_fixed32_ext:extendee -> google.protobuf.MessageOptions
	0,  // 7: goproto.proto.test3.optional_fixed64_ext:extendee -> google.protobuf.MessageOptions
	0,  // 8: goproto.proto.test3.optional_sfixed32_ext:extendee -> google.protobuf.MessageOptions
	0,  // 9: goproto.proto.test3.optional_sfixed64_ext:extendee -> google.protobuf.MessageOptions
	0,  // 10: goproto.proto.test3.optional_float_ext:extendee -> google.protobuf.MessageOptions
	0,  // 11: goproto.proto.test3.optional_double_ext:extendee -> google.protobuf.MessageOptions
	0,  // 12: goproto.proto.test3.optional_bool_ext:extendee -> google.protobuf.MessageOptions
	0,  // 13: goproto.proto.test3.optional_string_ext:extendee -> google.protobuf.MessageOptions
	0,  // 14: goproto.proto.test3.optional_bytes_ext:extendee -> google.protobuf.MessageOptions
	0,  // 15: goproto.proto.test3.optional_foreign_message_ext:extendee -> google.protobuf.MessageOptions
	0,  // 16: goproto.proto.test3.optional_foreign_enum_ext:extendee -> google.protobuf.MessageOptions
	0,  // 17: goproto.proto.test3.optional_optional_int32_ext:extendee -> google.protobuf.MessageOptions
	0,  // 18: goproto.proto.test3.optional_optional_int64_ext:extendee -> google.protobuf.MessageOptions
	0,  // 19: goproto.proto.test3.optional_optional_uint32_ext:extendee -> google.protobuf.MessageOptions
	0,  // 20: goproto.proto.test3.optional_optional_uint64_ext:extendee -> google.protobuf.MessageOptions
	0,  // 21: goproto.proto.test3.optional_optional_sint32_ext:extendee -> google.protobuf.MessageOptions
	0,  // 22: goproto.proto.test3.optional_optional_sint64_ext:extendee -> google.protobuf.MessageOptions
	0,  // 23: goproto.proto.test3.optional_optional_fixed32_ext:extendee -> google.protobuf.MessageOptions
	0,  // 24: goproto.proto.test3.optional_optional_fixed64_ext:extendee -> google.protobuf.MessageOptions
	0,  // 25: goproto.proto.test3.optional_optional_sfixed32_ext:extendee -> google.protobuf.MessageOptions
	0,  // 26: goproto.proto.test3.optional_optional_sfixed64_ext:extendee -> google.protobuf.MessageOptions
	0,  // 27: goproto.proto.test3.optional_optional_float_ext:extendee -> google.protobuf.MessageOptions
	0,  // 28: goproto.proto.test3.optional_optional_double_ext:extendee -> google.protobuf.MessageOptions
	0,  // 29: goproto.proto.test3.optional_optional_bool_ext:extendee -> google.protobuf.MessageOptions
	0,  // 30: goproto.proto.test3.optional_optional_string_ext:extendee -> google.protobuf.MessageOptions
	0,  // 31: goproto.proto.test3.optional_optional_bytes_ext:extendee -> google.protobuf.MessageOptions
	0,  // 32: goproto.proto.test3.optional_optional_foreign_message_ext:extendee -> google.protobuf.MessageOptions
	0,  // 33: goproto.proto.test3.optional_optional_foreign_enum_ext:extendee -> google.protobuf.MessageOptions
	0,  // 34: goproto.proto.test3.repeated_int32_ext:extendee -> google.protobuf.MessageOptions
	0,  // 35: goproto.proto.test3.repeated_int64_ext:extendee -> google.protobuf.MessageOptions
	0,  // 36: goproto.proto.test3.repeated_uint32_ext:extendee -> google.protobuf.MessageOptions
	0,  // 37: goproto.proto.test3.repeated_uint64_ext:extendee -> google.protobuf.MessageOptions
	0,  // 38: goproto.proto.test3.repeated_sint32_ext:extendee -> google.protobuf.MessageOptions
	0,  // 39: goproto.proto.test3.repeated_sint64_ext:extendee -> google.protobuf.MessageOptions
	0,  // 40: goproto.proto.test3.repeated_fixed32_ext:extendee -> google.protobuf.MessageOptions
	0,  // 41: goproto.proto.test3.repeated_fixed64_ext:extendee -> google.protobuf.MessageOptions
	0,  // 42: goproto.proto.test3.repeated_sfixed32_ext:extendee -> google.protobuf.MessageOptions
	0,  // 43: goproto.proto.test3.repeated_sfixed64_ext:extendee -> google.protobuf.MessageOptions
	0,  // 44: goproto.proto.test3.repeated_float_ext:extendee -> google.protobuf.MessageOptions
	0,  // 45: goproto.proto.test3.repeated_double_ext:extendee -> google.protobuf.MessageOptions
	0,  // 46: goproto.proto.test3.repeated_bool_ext:extendee -> google.protobuf.MessageOptions
	0,  // 47: goproto.proto.test3.repeated_string_ext:extendee -> google.protobuf.MessageOptions
	0,  // 48: goproto.proto.test3.repeated_bytes_ext:extendee -> google.protobuf.MessageOptions
	0,  // 49: goproto.proto.test3.repeated_foreign_message_ext:extendee -> google.protobuf.MessageOptions
	0,  // 50: goproto.proto.test3.repeated_foreign_enum_ext:extendee -> google.protobuf.MessageOptions
	1,  // 51: goproto.proto.test3.optional_foreign_message_ext:type_name -> goproto.proto.test3.ForeignMessage
	2,  // 52: goproto.proto.test3.optional_foreign_enum_ext:type_name -> goproto.proto.test3.ForeignEnum
	1,  // 53: goproto.proto.test3.optional_optional_foreign_message_ext:type_name -> goproto.proto.test3.ForeignMessage
	2,  // 54: goproto.proto.test3.optional_optional_foreign_enum_ext:type_name -> goproto.proto.test3.ForeignEnum
	1,  // 55: goproto.proto.test3.repeated_foreign_message_ext:type_name -> goproto.proto.test3.ForeignMessage
	2,  // 56: goproto.proto.test3.repeated_foreign_enum_ext:type_name -> goproto.proto.test3.ForeignEnum
	57, // [57:57] is the sub-list for method output_type
	57, // [57:57] is the sub-list for method input_type
	51, // [51:57] is the sub-list for extension type_name
	0,  // [0:51] is the sub-list for extension extendee
	0,  // [0:0] is the sub-list for field type_name
}

func init() { file_internal_testprotos_test3_test_extension_proto_init() }
func file_internal_testprotos_test3_test_extension_proto_init() {
	if File_internal_testprotos_test3_test_extension_proto != nil {
		return
	}
	file_internal_testprotos_test3_test_proto_init()
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_internal_testprotos_test3_test_extension_proto_rawDesc), len(file_internal_testprotos_test3_test_extension_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   0,
			NumExtensions: 51,
			NumServices:   0,
		},
		GoTypes:           file_internal_testprotos_test3_test_extension_proto_goTypes,
		DependencyIndexes: file_internal_testprotos_test3_test_extension_proto_depIdxs,
		ExtensionInfos:    file_internal_testprotos_test3_test_extension_proto_extTypes,
	}.Build()
	File_internal_testprotos_test3_test_extension_proto = out.File
	file_internal_testprotos_test3_test_extension_proto_goTypes = nil
	file_internal_testprotos_test3_test_extension_proto_depIdxs = nil
}
