github.com/cosmos/cosmos-proto@v1.0.0-beta.3/testpb/1.pulsar.go (about)

     1  // Code generated by protoc-gen-go-pulsar. DO NOT EDIT.
     2  package testpb
     3  
     4  import (
     5  	binary "encoding/binary"
     6  	fmt "fmt"
     7  	runtime "github.com/cosmos/cosmos-proto/runtime"
     8  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
     9  	protoiface "google.golang.org/protobuf/runtime/protoiface"
    10  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    11  	io "io"
    12  	math "math"
    13  	reflect "reflect"
    14  	sort "sort"
    15  	sync "sync"
    16  )
    17  
    18  var _ protoreflect.Map = (*_A_18_map)(nil)
    19  
    20  type _A_18_map struct {
    21  	m *map[string]*B
    22  }
    23  
    24  func (x *_A_18_map) Len() int {
    25  	if x.m == nil {
    26  		return 0
    27  	}
    28  	return len(*x.m)
    29  }
    30  
    31  func (x *_A_18_map) Range(f func(protoreflect.MapKey, protoreflect.Value) bool) {
    32  	if x.m == nil {
    33  		return
    34  	}
    35  	for k, v := range *x.m {
    36  		mapKey := (protoreflect.MapKey)(protoreflect.ValueOfString(k))
    37  		mapValue := protoreflect.ValueOfMessage(v.ProtoReflect())
    38  		if !f(mapKey, mapValue) {
    39  			break
    40  		}
    41  	}
    42  }
    43  
    44  func (x *_A_18_map) Has(key protoreflect.MapKey) bool {
    45  	if x.m == nil {
    46  		return false
    47  	}
    48  	keyUnwrapped := key.String()
    49  	concreteValue := keyUnwrapped
    50  	_, ok := (*x.m)[concreteValue]
    51  	return ok
    52  }
    53  
    54  func (x *_A_18_map) Clear(key protoreflect.MapKey) {
    55  	if x.m == nil {
    56  		return
    57  	}
    58  	keyUnwrapped := key.String()
    59  	concreteKey := keyUnwrapped
    60  	delete(*x.m, concreteKey)
    61  }
    62  
    63  func (x *_A_18_map) Get(key protoreflect.MapKey) protoreflect.Value {
    64  	if x.m == nil {
    65  		return protoreflect.Value{}
    66  	}
    67  	keyUnwrapped := key.String()
    68  	concreteKey := keyUnwrapped
    69  	v, ok := (*x.m)[concreteKey]
    70  	if !ok {
    71  		return protoreflect.Value{}
    72  	}
    73  	return protoreflect.ValueOfMessage(v.ProtoReflect())
    74  }
    75  
    76  func (x *_A_18_map) Set(key protoreflect.MapKey, value protoreflect.Value) {
    77  	if !key.IsValid() || !value.IsValid() {
    78  		panic("invalid key or value provided")
    79  	}
    80  	keyUnwrapped := key.String()
    81  	concreteKey := keyUnwrapped
    82  	valueUnwrapped := value.Message()
    83  	concreteValue := valueUnwrapped.Interface().(*B)
    84  	(*x.m)[concreteKey] = concreteValue
    85  }
    86  
    87  func (x *_A_18_map) Mutable(key protoreflect.MapKey) protoreflect.Value {
    88  	keyUnwrapped := key.String()
    89  	concreteKey := keyUnwrapped
    90  	v, ok := (*x.m)[concreteKey]
    91  	if ok {
    92  		return protoreflect.ValueOfMessage(v.ProtoReflect())
    93  	}
    94  	newValue := new(B)
    95  	(*x.m)[concreteKey] = newValue
    96  	return protoreflect.ValueOfMessage(newValue.ProtoReflect())
    97  }
    98  
    99  func (x *_A_18_map) NewValue() protoreflect.Value {
   100  	v := new(B)
   101  	return protoreflect.ValueOfMessage(v.ProtoReflect())
   102  }
   103  
   104  func (x *_A_18_map) IsValid() bool {
   105  	return x.m != nil
   106  }
   107  
   108  var _ protoreflect.List = (*_A_19_list)(nil)
   109  
   110  type _A_19_list struct {
   111  	list *[]*B
   112  }
   113  
   114  func (x *_A_19_list) Len() int {
   115  	if x.list == nil {
   116  		return 0
   117  	}
   118  	return len(*x.list)
   119  }
   120  
   121  func (x *_A_19_list) Get(i int) protoreflect.Value {
   122  	return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect())
   123  }
   124  
   125  func (x *_A_19_list) Set(i int, value protoreflect.Value) {
   126  	valueUnwrapped := value.Message()
   127  	concreteValue := valueUnwrapped.Interface().(*B)
   128  	(*x.list)[i] = concreteValue
   129  }
   130  
   131  func (x *_A_19_list) Append(value protoreflect.Value) {
   132  	valueUnwrapped := value.Message()
   133  	concreteValue := valueUnwrapped.Interface().(*B)
   134  	*x.list = append(*x.list, concreteValue)
   135  }
   136  
   137  func (x *_A_19_list) AppendMutable() protoreflect.Value {
   138  	v := new(B)
   139  	*x.list = append(*x.list, v)
   140  	return protoreflect.ValueOfMessage(v.ProtoReflect())
   141  }
   142  
   143  func (x *_A_19_list) Truncate(n int) {
   144  	for i := n; i < len(*x.list); i++ {
   145  		(*x.list)[i] = nil
   146  	}
   147  	*x.list = (*x.list)[:n]
   148  }
   149  
   150  func (x *_A_19_list) NewElement() protoreflect.Value {
   151  	v := new(B)
   152  	return protoreflect.ValueOfMessage(v.ProtoReflect())
   153  }
   154  
   155  func (x *_A_19_list) IsValid() bool {
   156  	return x.list != nil
   157  }
   158  
   159  var _ protoreflect.List = (*_A_22_list)(nil)
   160  
   161  type _A_22_list struct {
   162  	list *[]Enumeration
   163  }
   164  
   165  func (x *_A_22_list) Len() int {
   166  	if x.list == nil {
   167  		return 0
   168  	}
   169  	return len(*x.list)
   170  }
   171  
   172  func (x *_A_22_list) Get(i int) protoreflect.Value {
   173  	return protoreflect.ValueOfEnum((protoreflect.EnumNumber)((*x.list)[i]))
   174  }
   175  
   176  func (x *_A_22_list) Set(i int, value protoreflect.Value) {
   177  	valueUnwrapped := value.Enum()
   178  	concreteValue := (Enumeration)(valueUnwrapped)
   179  	(*x.list)[i] = concreteValue
   180  }
   181  
   182  func (x *_A_22_list) Append(value protoreflect.Value) {
   183  	valueUnwrapped := value.Enum()
   184  	concreteValue := (Enumeration)(valueUnwrapped)
   185  	*x.list = append(*x.list, concreteValue)
   186  }
   187  
   188  func (x *_A_22_list) AppendMutable() protoreflect.Value {
   189  	panic(fmt.Errorf("AppendMutable can not be called on message A at list field LIST_ENUM as it is not of Message kind"))
   190  }
   191  
   192  func (x *_A_22_list) Truncate(n int) {
   193  	*x.list = (*x.list)[:n]
   194  }
   195  
   196  func (x *_A_22_list) NewElement() protoreflect.Value {
   197  	v := 0
   198  	return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(v))
   199  }
   200  
   201  func (x *_A_22_list) IsValid() bool {
   202  	return x.list != nil
   203  }
   204  
   205  var (
   206  	md_A              protoreflect.MessageDescriptor
   207  	fd_A_enum         protoreflect.FieldDescriptor
   208  	fd_A_some_boolean protoreflect.FieldDescriptor
   209  	fd_A_INT32        protoreflect.FieldDescriptor
   210  	fd_A_SINT32       protoreflect.FieldDescriptor
   211  	fd_A_UINT32       protoreflect.FieldDescriptor
   212  	fd_A_INT64        protoreflect.FieldDescriptor
   213  	fd_A_SING64       protoreflect.FieldDescriptor
   214  	fd_A_UINT64       protoreflect.FieldDescriptor
   215  	fd_A_SFIXED32     protoreflect.FieldDescriptor
   216  	fd_A_FIXED32      protoreflect.FieldDescriptor
   217  	fd_A_FLOAT        protoreflect.FieldDescriptor
   218  	fd_A_SFIXED64     protoreflect.FieldDescriptor
   219  	fd_A_FIXED64      protoreflect.FieldDescriptor
   220  	fd_A_DOUBLE       protoreflect.FieldDescriptor
   221  	fd_A_STRING       protoreflect.FieldDescriptor
   222  	fd_A_BYTES        protoreflect.FieldDescriptor
   223  	fd_A_MESSAGE      protoreflect.FieldDescriptor
   224  	fd_A_MAP          protoreflect.FieldDescriptor
   225  	fd_A_LIST         protoreflect.FieldDescriptor
   226  	fd_A_ONEOF_B      protoreflect.FieldDescriptor
   227  	fd_A_ONEOF_STRING protoreflect.FieldDescriptor
   228  	fd_A_LIST_ENUM    protoreflect.FieldDescriptor
   229  	fd_A_imported     protoreflect.FieldDescriptor
   230  	fd_A_type         protoreflect.FieldDescriptor
   231  )
   232  
   233  func init() {
   234  	file_testpb_1_proto_init()
   235  	md_A = File_testpb_1_proto.Messages().ByName("A")
   236  	fd_A_enum = md_A.Fields().ByName("enum")
   237  	fd_A_some_boolean = md_A.Fields().ByName("some_boolean")
   238  	fd_A_INT32 = md_A.Fields().ByName("INT32")
   239  	fd_A_SINT32 = md_A.Fields().ByName("SINT32")
   240  	fd_A_UINT32 = md_A.Fields().ByName("UINT32")
   241  	fd_A_INT64 = md_A.Fields().ByName("INT64")
   242  	fd_A_SING64 = md_A.Fields().ByName("SING64")
   243  	fd_A_UINT64 = md_A.Fields().ByName("UINT64")
   244  	fd_A_SFIXED32 = md_A.Fields().ByName("SFIXED32")
   245  	fd_A_FIXED32 = md_A.Fields().ByName("FIXED32")
   246  	fd_A_FLOAT = md_A.Fields().ByName("FLOAT")
   247  	fd_A_SFIXED64 = md_A.Fields().ByName("SFIXED64")
   248  	fd_A_FIXED64 = md_A.Fields().ByName("FIXED64")
   249  	fd_A_DOUBLE = md_A.Fields().ByName("DOUBLE")
   250  	fd_A_STRING = md_A.Fields().ByName("STRING")
   251  	fd_A_BYTES = md_A.Fields().ByName("BYTES")
   252  	fd_A_MESSAGE = md_A.Fields().ByName("MESSAGE")
   253  	fd_A_MAP = md_A.Fields().ByName("MAP")
   254  	fd_A_LIST = md_A.Fields().ByName("LIST")
   255  	fd_A_ONEOF_B = md_A.Fields().ByName("ONEOF_B")
   256  	fd_A_ONEOF_STRING = md_A.Fields().ByName("ONEOF_STRING")
   257  	fd_A_LIST_ENUM = md_A.Fields().ByName("LIST_ENUM")
   258  	fd_A_imported = md_A.Fields().ByName("imported")
   259  	fd_A_type = md_A.Fields().ByName("type")
   260  }
   261  
   262  var _ protoreflect.Message = (*fastReflection_A)(nil)
   263  
   264  type fastReflection_A A
   265  
   266  func (x *A) ProtoReflect() protoreflect.Message {
   267  	return (*fastReflection_A)(x)
   268  }
   269  
   270  func (x *A) slowProtoReflect() protoreflect.Message {
   271  	mi := &file_testpb_1_proto_msgTypes[0]
   272  	if protoimpl.UnsafeEnabled && x != nil {
   273  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   274  		if ms.LoadMessageInfo() == nil {
   275  			ms.StoreMessageInfo(mi)
   276  		}
   277  		return ms
   278  	}
   279  	return mi.MessageOf(x)
   280  }
   281  
   282  var _fastReflection_A_messageType fastReflection_A_messageType
   283  var _ protoreflect.MessageType = fastReflection_A_messageType{}
   284  
   285  type fastReflection_A_messageType struct{}
   286  
   287  func (x fastReflection_A_messageType) Zero() protoreflect.Message {
   288  	return (*fastReflection_A)(nil)
   289  }
   290  func (x fastReflection_A_messageType) New() protoreflect.Message {
   291  	return new(fastReflection_A)
   292  }
   293  func (x fastReflection_A_messageType) Descriptor() protoreflect.MessageDescriptor {
   294  	return md_A
   295  }
   296  
   297  // Descriptor returns message descriptor, which contains only the protobuf
   298  // type information for the message.
   299  func (x *fastReflection_A) Descriptor() protoreflect.MessageDescriptor {
   300  	return md_A
   301  }
   302  
   303  // Type returns the message type, which encapsulates both Go and protobuf
   304  // type information. If the Go type information is not needed,
   305  // it is recommended that the message descriptor be used instead.
   306  func (x *fastReflection_A) Type() protoreflect.MessageType {
   307  	return _fastReflection_A_messageType
   308  }
   309  
   310  // New returns a newly allocated and mutable empty message.
   311  func (x *fastReflection_A) New() protoreflect.Message {
   312  	return new(fastReflection_A)
   313  }
   314  
   315  // Interface unwraps the message reflection interface and
   316  // returns the underlying ProtoMessage interface.
   317  func (x *fastReflection_A) Interface() protoreflect.ProtoMessage {
   318  	return (*A)(x)
   319  }
   320  
   321  // Range iterates over every populated field in an undefined order,
   322  // calling f for each field descriptor and value encountered.
   323  // Range returns immediately if f returns false.
   324  // While iterating, mutating operations may only be performed
   325  // on the current field descriptor.
   326  func (x *fastReflection_A) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
   327  	if x.Enum != 0 {
   328  		value := protoreflect.ValueOfEnum((protoreflect.EnumNumber)(x.Enum))
   329  		if !f(fd_A_enum, value) {
   330  			return
   331  		}
   332  	}
   333  	if x.SomeBoolean != false {
   334  		value := protoreflect.ValueOfBool(x.SomeBoolean)
   335  		if !f(fd_A_some_boolean, value) {
   336  			return
   337  		}
   338  	}
   339  	if x.INT32 != int32(0) {
   340  		value := protoreflect.ValueOfInt32(x.INT32)
   341  		if !f(fd_A_INT32, value) {
   342  			return
   343  		}
   344  	}
   345  	if x.SINT32 != int32(0) {
   346  		value := protoreflect.ValueOfInt32(x.SINT32)
   347  		if !f(fd_A_SINT32, value) {
   348  			return
   349  		}
   350  	}
   351  	if x.UINT32 != uint32(0) {
   352  		value := protoreflect.ValueOfUint32(x.UINT32)
   353  		if !f(fd_A_UINT32, value) {
   354  			return
   355  		}
   356  	}
   357  	if x.INT64 != int64(0) {
   358  		value := protoreflect.ValueOfInt64(x.INT64)
   359  		if !f(fd_A_INT64, value) {
   360  			return
   361  		}
   362  	}
   363  	if x.SING64 != int64(0) {
   364  		value := protoreflect.ValueOfInt64(x.SING64)
   365  		if !f(fd_A_SING64, value) {
   366  			return
   367  		}
   368  	}
   369  	if x.UINT64 != uint64(0) {
   370  		value := protoreflect.ValueOfUint64(x.UINT64)
   371  		if !f(fd_A_UINT64, value) {
   372  			return
   373  		}
   374  	}
   375  	if x.SFIXED32 != int32(0) {
   376  		value := protoreflect.ValueOfInt32(x.SFIXED32)
   377  		if !f(fd_A_SFIXED32, value) {
   378  			return
   379  		}
   380  	}
   381  	if x.FIXED32 != uint32(0) {
   382  		value := protoreflect.ValueOfUint32(x.FIXED32)
   383  		if !f(fd_A_FIXED32, value) {
   384  			return
   385  		}
   386  	}
   387  	if x.FLOAT != float32(0) || math.Signbit(float64(x.FLOAT)) {
   388  		value := protoreflect.ValueOfFloat32(x.FLOAT)
   389  		if !f(fd_A_FLOAT, value) {
   390  			return
   391  		}
   392  	}
   393  	if x.SFIXED64 != int64(0) {
   394  		value := protoreflect.ValueOfInt64(x.SFIXED64)
   395  		if !f(fd_A_SFIXED64, value) {
   396  			return
   397  		}
   398  	}
   399  	if x.FIXED64 != uint64(0) {
   400  		value := protoreflect.ValueOfUint64(x.FIXED64)
   401  		if !f(fd_A_FIXED64, value) {
   402  			return
   403  		}
   404  	}
   405  	if x.DOUBLE != float64(0) || math.Signbit(x.DOUBLE) {
   406  		value := protoreflect.ValueOfFloat64(x.DOUBLE)
   407  		if !f(fd_A_DOUBLE, value) {
   408  			return
   409  		}
   410  	}
   411  	if x.STRING != "" {
   412  		value := protoreflect.ValueOfString(x.STRING)
   413  		if !f(fd_A_STRING, value) {
   414  			return
   415  		}
   416  	}
   417  	if len(x.BYTES) != 0 {
   418  		value := protoreflect.ValueOfBytes(x.BYTES)
   419  		if !f(fd_A_BYTES, value) {
   420  			return
   421  		}
   422  	}
   423  	if x.MESSAGE != nil {
   424  		value := protoreflect.ValueOfMessage(x.MESSAGE.ProtoReflect())
   425  		if !f(fd_A_MESSAGE, value) {
   426  			return
   427  		}
   428  	}
   429  	if len(x.MAP) != 0 {
   430  		value := protoreflect.ValueOfMap(&_A_18_map{m: &x.MAP})
   431  		if !f(fd_A_MAP, value) {
   432  			return
   433  		}
   434  	}
   435  	if len(x.LIST) != 0 {
   436  		value := protoreflect.ValueOfList(&_A_19_list{list: &x.LIST})
   437  		if !f(fd_A_LIST, value) {
   438  			return
   439  		}
   440  	}
   441  	if x.ONEOF != nil {
   442  		switch o := x.ONEOF.(type) {
   443  		case *A_ONEOF_B:
   444  			v := o.ONEOF_B
   445  			value := protoreflect.ValueOfMessage(v.ProtoReflect())
   446  			if !f(fd_A_ONEOF_B, value) {
   447  				return
   448  			}
   449  		case *A_ONEOF_STRING:
   450  			v := o.ONEOF_STRING
   451  			value := protoreflect.ValueOfString(v)
   452  			if !f(fd_A_ONEOF_STRING, value) {
   453  				return
   454  			}
   455  		}
   456  	}
   457  	if len(x.LIST_ENUM) != 0 {
   458  		value := protoreflect.ValueOfList(&_A_22_list{list: &x.LIST_ENUM})
   459  		if !f(fd_A_LIST_ENUM, value) {
   460  			return
   461  		}
   462  	}
   463  	if x.Imported != nil {
   464  		value := protoreflect.ValueOfMessage(x.Imported.ProtoReflect())
   465  		if !f(fd_A_imported, value) {
   466  			return
   467  		}
   468  	}
   469  	if x.Type_ != "" {
   470  		value := protoreflect.ValueOfString(x.Type_)
   471  		if !f(fd_A_type, value) {
   472  			return
   473  		}
   474  	}
   475  }
   476  
   477  // Has reports whether a field is populated.
   478  //
   479  // Some fields have the property of nullability where it is possible to
   480  // distinguish between the default value of a field and whether the field
   481  // was explicitly populated with the default value. Singular message fields,
   482  // member fields of a oneof, and proto2 scalar fields are nullable. Such
   483  // fields are populated only if explicitly set.
   484  //
   485  // In other cases (aside from the nullable cases above),
   486  // a proto3 scalar field is populated if it contains a non-zero value, and
   487  // a repeated field is populated if it is non-empty.
   488  func (x *fastReflection_A) Has(fd protoreflect.FieldDescriptor) bool {
   489  	switch fd.FullName() {
   490  	case "A.enum":
   491  		return x.Enum != 0
   492  	case "A.some_boolean":
   493  		return x.SomeBoolean != false
   494  	case "A.INT32":
   495  		return x.INT32 != int32(0)
   496  	case "A.SINT32":
   497  		return x.SINT32 != int32(0)
   498  	case "A.UINT32":
   499  		return x.UINT32 != uint32(0)
   500  	case "A.INT64":
   501  		return x.INT64 != int64(0)
   502  	case "A.SING64":
   503  		return x.SING64 != int64(0)
   504  	case "A.UINT64":
   505  		return x.UINT64 != uint64(0)
   506  	case "A.SFIXED32":
   507  		return x.SFIXED32 != int32(0)
   508  	case "A.FIXED32":
   509  		return x.FIXED32 != uint32(0)
   510  	case "A.FLOAT":
   511  		return x.FLOAT != float32(0) || math.Signbit(float64(x.FLOAT))
   512  	case "A.SFIXED64":
   513  		return x.SFIXED64 != int64(0)
   514  	case "A.FIXED64":
   515  		return x.FIXED64 != uint64(0)
   516  	case "A.DOUBLE":
   517  		return x.DOUBLE != float64(0) || math.Signbit(x.DOUBLE)
   518  	case "A.STRING":
   519  		return x.STRING != ""
   520  	case "A.BYTES":
   521  		return len(x.BYTES) != 0
   522  	case "A.MESSAGE":
   523  		return x.MESSAGE != nil
   524  	case "A.MAP":
   525  		return len(x.MAP) != 0
   526  	case "A.LIST":
   527  		return len(x.LIST) != 0
   528  	case "A.ONEOF_B":
   529  		if x.ONEOF == nil {
   530  			return false
   531  		} else if _, ok := x.ONEOF.(*A_ONEOF_B); ok {
   532  			return true
   533  		} else {
   534  			return false
   535  		}
   536  	case "A.ONEOF_STRING":
   537  		if x.ONEOF == nil {
   538  			return false
   539  		} else if _, ok := x.ONEOF.(*A_ONEOF_STRING); ok {
   540  			return true
   541  		} else {
   542  			return false
   543  		}
   544  	case "A.LIST_ENUM":
   545  		return len(x.LIST_ENUM) != 0
   546  	case "A.imported":
   547  		return x.Imported != nil
   548  	case "A.type":
   549  		return x.Type_ != ""
   550  	default:
   551  		if fd.IsExtension() {
   552  			panic(fmt.Errorf("proto3 declared messages do not support extensions: A"))
   553  		}
   554  		panic(fmt.Errorf("message A does not contain field %s", fd.FullName()))
   555  	}
   556  }
   557  
   558  // Clear clears the field such that a subsequent Has call reports false.
   559  //
   560  // Clearing an extension field clears both the extension type and value
   561  // associated with the given field number.
   562  //
   563  // Clear is a mutating operation and unsafe for concurrent use.
   564  func (x *fastReflection_A) Clear(fd protoreflect.FieldDescriptor) {
   565  	switch fd.FullName() {
   566  	case "A.enum":
   567  		x.Enum = 0
   568  	case "A.some_boolean":
   569  		x.SomeBoolean = false
   570  	case "A.INT32":
   571  		x.INT32 = int32(0)
   572  	case "A.SINT32":
   573  		x.SINT32 = int32(0)
   574  	case "A.UINT32":
   575  		x.UINT32 = uint32(0)
   576  	case "A.INT64":
   577  		x.INT64 = int64(0)
   578  	case "A.SING64":
   579  		x.SING64 = int64(0)
   580  	case "A.UINT64":
   581  		x.UINT64 = uint64(0)
   582  	case "A.SFIXED32":
   583  		x.SFIXED32 = int32(0)
   584  	case "A.FIXED32":
   585  		x.FIXED32 = uint32(0)
   586  	case "A.FLOAT":
   587  		x.FLOAT = float32(0)
   588  	case "A.SFIXED64":
   589  		x.SFIXED64 = int64(0)
   590  	case "A.FIXED64":
   591  		x.FIXED64 = uint64(0)
   592  	case "A.DOUBLE":
   593  		x.DOUBLE = float64(0)
   594  	case "A.STRING":
   595  		x.STRING = ""
   596  	case "A.BYTES":
   597  		x.BYTES = nil
   598  	case "A.MESSAGE":
   599  		x.MESSAGE = nil
   600  	case "A.MAP":
   601  		x.MAP = nil
   602  	case "A.LIST":
   603  		x.LIST = nil
   604  	case "A.ONEOF_B":
   605  		x.ONEOF = nil
   606  	case "A.ONEOF_STRING":
   607  		x.ONEOF = nil
   608  	case "A.LIST_ENUM":
   609  		x.LIST_ENUM = nil
   610  	case "A.imported":
   611  		x.Imported = nil
   612  	case "A.type":
   613  		x.Type_ = ""
   614  	default:
   615  		if fd.IsExtension() {
   616  			panic(fmt.Errorf("proto3 declared messages do not support extensions: A"))
   617  		}
   618  		panic(fmt.Errorf("message A does not contain field %s", fd.FullName()))
   619  	}
   620  }
   621  
   622  // Get retrieves the value for a field.
   623  //
   624  // For unpopulated scalars, it returns the default value, where
   625  // the default value of a bytes scalar is guaranteed to be a copy.
   626  // For unpopulated composite types, it returns an empty, read-only view
   627  // of the value; to obtain a mutable reference, use Mutable.
   628  func (x *fastReflection_A) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
   629  	switch descriptor.FullName() {
   630  	case "A.enum":
   631  		value := x.Enum
   632  		return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(value))
   633  	case "A.some_boolean":
   634  		value := x.SomeBoolean
   635  		return protoreflect.ValueOfBool(value)
   636  	case "A.INT32":
   637  		value := x.INT32
   638  		return protoreflect.ValueOfInt32(value)
   639  	case "A.SINT32":
   640  		value := x.SINT32
   641  		return protoreflect.ValueOfInt32(value)
   642  	case "A.UINT32":
   643  		value := x.UINT32
   644  		return protoreflect.ValueOfUint32(value)
   645  	case "A.INT64":
   646  		value := x.INT64
   647  		return protoreflect.ValueOfInt64(value)
   648  	case "A.SING64":
   649  		value := x.SING64
   650  		return protoreflect.ValueOfInt64(value)
   651  	case "A.UINT64":
   652  		value := x.UINT64
   653  		return protoreflect.ValueOfUint64(value)
   654  	case "A.SFIXED32":
   655  		value := x.SFIXED32
   656  		return protoreflect.ValueOfInt32(value)
   657  	case "A.FIXED32":
   658  		value := x.FIXED32
   659  		return protoreflect.ValueOfUint32(value)
   660  	case "A.FLOAT":
   661  		value := x.FLOAT
   662  		return protoreflect.ValueOfFloat32(value)
   663  	case "A.SFIXED64":
   664  		value := x.SFIXED64
   665  		return protoreflect.ValueOfInt64(value)
   666  	case "A.FIXED64":
   667  		value := x.FIXED64
   668  		return protoreflect.ValueOfUint64(value)
   669  	case "A.DOUBLE":
   670  		value := x.DOUBLE
   671  		return protoreflect.ValueOfFloat64(value)
   672  	case "A.STRING":
   673  		value := x.STRING
   674  		return protoreflect.ValueOfString(value)
   675  	case "A.BYTES":
   676  		value := x.BYTES
   677  		return protoreflect.ValueOfBytes(value)
   678  	case "A.MESSAGE":
   679  		value := x.MESSAGE
   680  		return protoreflect.ValueOfMessage(value.ProtoReflect())
   681  	case "A.MAP":
   682  		if len(x.MAP) == 0 {
   683  			return protoreflect.ValueOfMap(&_A_18_map{})
   684  		}
   685  		mapValue := &_A_18_map{m: &x.MAP}
   686  		return protoreflect.ValueOfMap(mapValue)
   687  	case "A.LIST":
   688  		if len(x.LIST) == 0 {
   689  			return protoreflect.ValueOfList(&_A_19_list{})
   690  		}
   691  		listValue := &_A_19_list{list: &x.LIST}
   692  		return protoreflect.ValueOfList(listValue)
   693  	case "A.ONEOF_B":
   694  		if x.ONEOF == nil {
   695  			return protoreflect.ValueOfMessage((*B)(nil).ProtoReflect())
   696  		} else if v, ok := x.ONEOF.(*A_ONEOF_B); ok {
   697  			return protoreflect.ValueOfMessage(v.ONEOF_B.ProtoReflect())
   698  		} else {
   699  			return protoreflect.ValueOfMessage((*B)(nil).ProtoReflect())
   700  		}
   701  	case "A.ONEOF_STRING":
   702  		if x.ONEOF == nil {
   703  			return protoreflect.ValueOfString("")
   704  		} else if v, ok := x.ONEOF.(*A_ONEOF_STRING); ok {
   705  			return protoreflect.ValueOfString(v.ONEOF_STRING)
   706  		} else {
   707  			return protoreflect.ValueOfString("")
   708  		}
   709  	case "A.LIST_ENUM":
   710  		if len(x.LIST_ENUM) == 0 {
   711  			return protoreflect.ValueOfList(&_A_22_list{})
   712  		}
   713  		listValue := &_A_22_list{list: &x.LIST_ENUM}
   714  		return protoreflect.ValueOfList(listValue)
   715  	case "A.imported":
   716  		value := x.Imported
   717  		return protoreflect.ValueOfMessage(value.ProtoReflect())
   718  	case "A.type":
   719  		value := x.Type_
   720  		return protoreflect.ValueOfString(value)
   721  	default:
   722  		if descriptor.IsExtension() {
   723  			panic(fmt.Errorf("proto3 declared messages do not support extensions: A"))
   724  		}
   725  		panic(fmt.Errorf("message A does not contain field %s", descriptor.FullName()))
   726  	}
   727  }
   728  
   729  // Set stores the value for a field.
   730  //
   731  // For a field belonging to a oneof, it implicitly clears any other field
   732  // that may be currently set within the same oneof.
   733  // For extension fields, it implicitly stores the provided ExtensionType.
   734  // When setting a composite type, it is unspecified whether the stored value
   735  // aliases the source's memory in any way. If the composite value is an
   736  // empty, read-only value, then it panics.
   737  //
   738  // Set is a mutating operation and unsafe for concurrent use.
   739  func (x *fastReflection_A) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
   740  	switch fd.FullName() {
   741  	case "A.enum":
   742  		x.Enum = (Enumeration)(value.Enum())
   743  	case "A.some_boolean":
   744  		x.SomeBoolean = value.Bool()
   745  	case "A.INT32":
   746  		x.INT32 = int32(value.Int())
   747  	case "A.SINT32":
   748  		x.SINT32 = int32(value.Int())
   749  	case "A.UINT32":
   750  		x.UINT32 = uint32(value.Uint())
   751  	case "A.INT64":
   752  		x.INT64 = value.Int()
   753  	case "A.SING64":
   754  		x.SING64 = value.Int()
   755  	case "A.UINT64":
   756  		x.UINT64 = value.Uint()
   757  	case "A.SFIXED32":
   758  		x.SFIXED32 = int32(value.Int())
   759  	case "A.FIXED32":
   760  		x.FIXED32 = uint32(value.Uint())
   761  	case "A.FLOAT":
   762  		x.FLOAT = float32(value.Float())
   763  	case "A.SFIXED64":
   764  		x.SFIXED64 = value.Int()
   765  	case "A.FIXED64":
   766  		x.FIXED64 = value.Uint()
   767  	case "A.DOUBLE":
   768  		x.DOUBLE = value.Float()
   769  	case "A.STRING":
   770  		x.STRING = value.Interface().(string)
   771  	case "A.BYTES":
   772  		x.BYTES = value.Bytes()
   773  	case "A.MESSAGE":
   774  		x.MESSAGE = value.Message().Interface().(*B)
   775  	case "A.MAP":
   776  		mv := value.Map()
   777  		cmv := mv.(*_A_18_map)
   778  		x.MAP = *cmv.m
   779  	case "A.LIST":
   780  		lv := value.List()
   781  		clv := lv.(*_A_19_list)
   782  		x.LIST = *clv.list
   783  	case "A.ONEOF_B":
   784  		cv := value.Message().Interface().(*B)
   785  		x.ONEOF = &A_ONEOF_B{ONEOF_B: cv}
   786  	case "A.ONEOF_STRING":
   787  		cv := value.Interface().(string)
   788  		x.ONEOF = &A_ONEOF_STRING{ONEOF_STRING: cv}
   789  	case "A.LIST_ENUM":
   790  		lv := value.List()
   791  		clv := lv.(*_A_22_list)
   792  		x.LIST_ENUM = *clv.list
   793  	case "A.imported":
   794  		x.Imported = value.Message().Interface().(*ImportedMessage)
   795  	case "A.type":
   796  		x.Type_ = value.Interface().(string)
   797  	default:
   798  		if fd.IsExtension() {
   799  			panic(fmt.Errorf("proto3 declared messages do not support extensions: A"))
   800  		}
   801  		panic(fmt.Errorf("message A does not contain field %s", fd.FullName()))
   802  	}
   803  }
   804  
   805  // Mutable returns a mutable reference to a composite type.
   806  //
   807  // If the field is unpopulated, it may allocate a composite value.
   808  // For a field belonging to a oneof, it implicitly clears any other field
   809  // that may be currently set within the same oneof.
   810  // For extension fields, it implicitly stores the provided ExtensionType
   811  // if not already stored.
   812  // It panics if the field does not contain a composite type.
   813  //
   814  // Mutable is a mutating operation and unsafe for concurrent use.
   815  func (x *fastReflection_A) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
   816  	switch fd.FullName() {
   817  	case "A.MESSAGE":
   818  		if x.MESSAGE == nil {
   819  			x.MESSAGE = new(B)
   820  		}
   821  		return protoreflect.ValueOfMessage(x.MESSAGE.ProtoReflect())
   822  	case "A.MAP":
   823  		if x.MAP == nil {
   824  			x.MAP = make(map[string]*B)
   825  		}
   826  		value := &_A_18_map{m: &x.MAP}
   827  		return protoreflect.ValueOfMap(value)
   828  	case "A.LIST":
   829  		if x.LIST == nil {
   830  			x.LIST = []*B{}
   831  		}
   832  		value := &_A_19_list{list: &x.LIST}
   833  		return protoreflect.ValueOfList(value)
   834  	case "A.ONEOF_B":
   835  		if x.ONEOF == nil {
   836  			value := &B{}
   837  			oneofValue := &A_ONEOF_B{ONEOF_B: value}
   838  			x.ONEOF = oneofValue
   839  			return protoreflect.ValueOfMessage(value.ProtoReflect())
   840  		}
   841  		switch m := x.ONEOF.(type) {
   842  		case *A_ONEOF_B:
   843  			return protoreflect.ValueOfMessage(m.ONEOF_B.ProtoReflect())
   844  		default:
   845  			value := &B{}
   846  			oneofValue := &A_ONEOF_B{ONEOF_B: value}
   847  			x.ONEOF = oneofValue
   848  			return protoreflect.ValueOfMessage(value.ProtoReflect())
   849  		}
   850  	case "A.LIST_ENUM":
   851  		if x.LIST_ENUM == nil {
   852  			x.LIST_ENUM = []Enumeration{}
   853  		}
   854  		value := &_A_22_list{list: &x.LIST_ENUM}
   855  		return protoreflect.ValueOfList(value)
   856  	case "A.imported":
   857  		if x.Imported == nil {
   858  			x.Imported = new(ImportedMessage)
   859  		}
   860  		return protoreflect.ValueOfMessage(x.Imported.ProtoReflect())
   861  	case "A.enum":
   862  		panic(fmt.Errorf("field enum of message A is not mutable"))
   863  	case "A.some_boolean":
   864  		panic(fmt.Errorf("field some_boolean of message A is not mutable"))
   865  	case "A.INT32":
   866  		panic(fmt.Errorf("field INT32 of message A is not mutable"))
   867  	case "A.SINT32":
   868  		panic(fmt.Errorf("field SINT32 of message A is not mutable"))
   869  	case "A.UINT32":
   870  		panic(fmt.Errorf("field UINT32 of message A is not mutable"))
   871  	case "A.INT64":
   872  		panic(fmt.Errorf("field INT64 of message A is not mutable"))
   873  	case "A.SING64":
   874  		panic(fmt.Errorf("field SING64 of message A is not mutable"))
   875  	case "A.UINT64":
   876  		panic(fmt.Errorf("field UINT64 of message A is not mutable"))
   877  	case "A.SFIXED32":
   878  		panic(fmt.Errorf("field SFIXED32 of message A is not mutable"))
   879  	case "A.FIXED32":
   880  		panic(fmt.Errorf("field FIXED32 of message A is not mutable"))
   881  	case "A.FLOAT":
   882  		panic(fmt.Errorf("field FLOAT of message A is not mutable"))
   883  	case "A.SFIXED64":
   884  		panic(fmt.Errorf("field SFIXED64 of message A is not mutable"))
   885  	case "A.FIXED64":
   886  		panic(fmt.Errorf("field FIXED64 of message A is not mutable"))
   887  	case "A.DOUBLE":
   888  		panic(fmt.Errorf("field DOUBLE of message A is not mutable"))
   889  	case "A.STRING":
   890  		panic(fmt.Errorf("field STRING of message A is not mutable"))
   891  	case "A.BYTES":
   892  		panic(fmt.Errorf("field BYTES of message A is not mutable"))
   893  	case "A.ONEOF_STRING":
   894  		panic(fmt.Errorf("field ONEOF_STRING of message A is not mutable"))
   895  	case "A.type":
   896  		panic(fmt.Errorf("field type of message A is not mutable"))
   897  	default:
   898  		if fd.IsExtension() {
   899  			panic(fmt.Errorf("proto3 declared messages do not support extensions: A"))
   900  		}
   901  		panic(fmt.Errorf("message A does not contain field %s", fd.FullName()))
   902  	}
   903  }
   904  
   905  // NewField returns a new value that is assignable to the field
   906  // for the given descriptor. For scalars, this returns the default value.
   907  // For lists, maps, and messages, this returns a new, empty, mutable value.
   908  func (x *fastReflection_A) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
   909  	switch fd.FullName() {
   910  	case "A.enum":
   911  		return protoreflect.ValueOfEnum(0)
   912  	case "A.some_boolean":
   913  		return protoreflect.ValueOfBool(false)
   914  	case "A.INT32":
   915  		return protoreflect.ValueOfInt32(int32(0))
   916  	case "A.SINT32":
   917  		return protoreflect.ValueOfInt32(int32(0))
   918  	case "A.UINT32":
   919  		return protoreflect.ValueOfUint32(uint32(0))
   920  	case "A.INT64":
   921  		return protoreflect.ValueOfInt64(int64(0))
   922  	case "A.SING64":
   923  		return protoreflect.ValueOfInt64(int64(0))
   924  	case "A.UINT64":
   925  		return protoreflect.ValueOfUint64(uint64(0))
   926  	case "A.SFIXED32":
   927  		return protoreflect.ValueOfInt32(int32(0))
   928  	case "A.FIXED32":
   929  		return protoreflect.ValueOfUint32(uint32(0))
   930  	case "A.FLOAT":
   931  		return protoreflect.ValueOfFloat32(float32(0))
   932  	case "A.SFIXED64":
   933  		return protoreflect.ValueOfInt64(int64(0))
   934  	case "A.FIXED64":
   935  		return protoreflect.ValueOfUint64(uint64(0))
   936  	case "A.DOUBLE":
   937  		return protoreflect.ValueOfFloat64(float64(0))
   938  	case "A.STRING":
   939  		return protoreflect.ValueOfString("")
   940  	case "A.BYTES":
   941  		return protoreflect.ValueOfBytes(nil)
   942  	case "A.MESSAGE":
   943  		m := new(B)
   944  		return protoreflect.ValueOfMessage(m.ProtoReflect())
   945  	case "A.MAP":
   946  		m := make(map[string]*B)
   947  		return protoreflect.ValueOfMap(&_A_18_map{m: &m})
   948  	case "A.LIST":
   949  		list := []*B{}
   950  		return protoreflect.ValueOfList(&_A_19_list{list: &list})
   951  	case "A.ONEOF_B":
   952  		value := &B{}
   953  		return protoreflect.ValueOfMessage(value.ProtoReflect())
   954  	case "A.ONEOF_STRING":
   955  		return protoreflect.ValueOfString("")
   956  	case "A.LIST_ENUM":
   957  		list := []Enumeration{}
   958  		return protoreflect.ValueOfList(&_A_22_list{list: &list})
   959  	case "A.imported":
   960  		m := new(ImportedMessage)
   961  		return protoreflect.ValueOfMessage(m.ProtoReflect())
   962  	case "A.type":
   963  		return protoreflect.ValueOfString("")
   964  	default:
   965  		if fd.IsExtension() {
   966  			panic(fmt.Errorf("proto3 declared messages do not support extensions: A"))
   967  		}
   968  		panic(fmt.Errorf("message A does not contain field %s", fd.FullName()))
   969  	}
   970  }
   971  
   972  // WhichOneof reports which field within the oneof is populated,
   973  // returning nil if none are populated.
   974  // It panics if the oneof descriptor does not belong to this message.
   975  func (x *fastReflection_A) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
   976  	switch d.FullName() {
   977  	case "A.ONEOF":
   978  		if x.ONEOF == nil {
   979  			return nil
   980  		}
   981  		switch x.ONEOF.(type) {
   982  		case *A_ONEOF_B:
   983  			return x.Descriptor().Fields().ByName("ONEOF_B")
   984  		case *A_ONEOF_STRING:
   985  			return x.Descriptor().Fields().ByName("ONEOF_STRING")
   986  		}
   987  	default:
   988  		panic(fmt.Errorf("%s is not a oneof field in A", d.FullName()))
   989  	}
   990  	panic("unreachable")
   991  }
   992  
   993  // GetUnknown retrieves the entire list of unknown fields.
   994  // The caller may only mutate the contents of the RawFields
   995  // if the mutated bytes are stored back into the message with SetUnknown.
   996  func (x *fastReflection_A) GetUnknown() protoreflect.RawFields {
   997  	return x.unknownFields
   998  }
   999  
  1000  // SetUnknown stores an entire list of unknown fields.
  1001  // The raw fields must be syntactically valid according to the wire format.
  1002  // An implementation may panic if this is not the case.
  1003  // Once stored, the caller must not mutate the content of the RawFields.
  1004  // An empty RawFields may be passed to clear the fields.
  1005  //
  1006  // SetUnknown is a mutating operation and unsafe for concurrent use.
  1007  func (x *fastReflection_A) SetUnknown(fields protoreflect.RawFields) {
  1008  	x.unknownFields = fields
  1009  }
  1010  
  1011  // IsValid reports whether the message is valid.
  1012  //
  1013  // An invalid message is an empty, read-only value.
  1014  //
  1015  // An invalid message often corresponds to a nil pointer of the concrete
  1016  // message type, but the details are implementation dependent.
  1017  // Validity is not part of the protobuf data model, and may not
  1018  // be preserved in marshaling or other operations.
  1019  func (x *fastReflection_A) IsValid() bool {
  1020  	return x != nil
  1021  }
  1022  
  1023  // ProtoMethods returns optional fastReflectionFeature-path implementations of various operations.
  1024  // This method may return nil.
  1025  //
  1026  // The returned methods type is identical to
  1027  // "google.golang.org/protobuf/runtime/protoiface".Methods.
  1028  // Consult the protoiface package documentation for details.
  1029  func (x *fastReflection_A) ProtoMethods() *protoiface.Methods {
  1030  	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
  1031  		x := input.Message.Interface().(*A)
  1032  		if x == nil {
  1033  			return protoiface.SizeOutput{
  1034  				NoUnkeyedLiterals: input.NoUnkeyedLiterals,
  1035  				Size:              0,
  1036  			}
  1037  		}
  1038  		options := runtime.SizeInputToOptions(input)
  1039  		_ = options
  1040  		var n int
  1041  		var l int
  1042  		_ = l
  1043  		if x.Enum != 0 {
  1044  			n += 1 + runtime.Sov(uint64(x.Enum))
  1045  		}
  1046  		if x.SomeBoolean {
  1047  			n += 2
  1048  		}
  1049  		if x.INT32 != 0 {
  1050  			n += 1 + runtime.Sov(uint64(x.INT32))
  1051  		}
  1052  		if x.SINT32 != 0 {
  1053  			n += 1 + runtime.Soz(uint64(x.SINT32))
  1054  		}
  1055  		if x.UINT32 != 0 {
  1056  			n += 1 + runtime.Sov(uint64(x.UINT32))
  1057  		}
  1058  		if x.INT64 != 0 {
  1059  			n += 1 + runtime.Sov(uint64(x.INT64))
  1060  		}
  1061  		if x.SING64 != 0 {
  1062  			n += 1 + runtime.Soz(uint64(x.SING64))
  1063  		}
  1064  		if x.UINT64 != 0 {
  1065  			n += 1 + runtime.Sov(uint64(x.UINT64))
  1066  		}
  1067  		if x.SFIXED32 != 0 {
  1068  			n += 5
  1069  		}
  1070  		if x.FIXED32 != 0 {
  1071  			n += 5
  1072  		}
  1073  		if x.FLOAT != 0 || math.Signbit(float64(x.FLOAT)) {
  1074  			n += 5
  1075  		}
  1076  		if x.SFIXED64 != 0 {
  1077  			n += 9
  1078  		}
  1079  		if x.FIXED64 != 0 {
  1080  			n += 9
  1081  		}
  1082  		if x.DOUBLE != 0 || math.Signbit(x.DOUBLE) {
  1083  			n += 9
  1084  		}
  1085  		l = len(x.STRING)
  1086  		if l > 0 {
  1087  			n += 1 + l + runtime.Sov(uint64(l))
  1088  		}
  1089  		l = len(x.BYTES)
  1090  		if l > 0 {
  1091  			n += 2 + l + runtime.Sov(uint64(l))
  1092  		}
  1093  		if x.MESSAGE != nil {
  1094  			l = options.Size(x.MESSAGE)
  1095  			n += 2 + l + runtime.Sov(uint64(l))
  1096  		}
  1097  		if len(x.MAP) > 0 {
  1098  			SiZeMaP := func(k string, v *B) {
  1099  				l := 0
  1100  				if v != nil {
  1101  					l = options.Size(v)
  1102  				}
  1103  				l += 1 + runtime.Sov(uint64(l))
  1104  				mapEntrySize := 1 + len(k) + runtime.Sov(uint64(len(k))) + l
  1105  				n += mapEntrySize + 2 + runtime.Sov(uint64(mapEntrySize))
  1106  			}
  1107  			if options.Deterministic {
  1108  				sortme := make([]string, 0, len(x.MAP))
  1109  				for k := range x.MAP {
  1110  					sortme = append(sortme, k)
  1111  				}
  1112  				sort.Strings(sortme)
  1113  				for _, k := range sortme {
  1114  					v := x.MAP[k]
  1115  					SiZeMaP(k, v)
  1116  				}
  1117  			} else {
  1118  				for k, v := range x.MAP {
  1119  					SiZeMaP(k, v)
  1120  				}
  1121  			}
  1122  		}
  1123  		if len(x.LIST) > 0 {
  1124  			for _, e := range x.LIST {
  1125  				l = options.Size(e)
  1126  				n += 2 + l + runtime.Sov(uint64(l))
  1127  			}
  1128  		}
  1129  		switch x := x.ONEOF.(type) {
  1130  		case *A_ONEOF_B:
  1131  			if x == nil {
  1132  				break
  1133  			}
  1134  			l = options.Size(x.ONEOF_B)
  1135  			n += 2 + l + runtime.Sov(uint64(l))
  1136  		case *A_ONEOF_STRING:
  1137  			if x == nil {
  1138  				break
  1139  			}
  1140  			l = len(x.ONEOF_STRING)
  1141  			n += 2 + l + runtime.Sov(uint64(l))
  1142  		}
  1143  		if len(x.LIST_ENUM) > 0 {
  1144  			l = 0
  1145  			for _, e := range x.LIST_ENUM {
  1146  				l += runtime.Sov(uint64(e))
  1147  			}
  1148  			n += 2 + runtime.Sov(uint64(l)) + l
  1149  		}
  1150  		if x.Imported != nil {
  1151  			l = options.Size(x.Imported)
  1152  			n += 2 + l + runtime.Sov(uint64(l))
  1153  		}
  1154  		l = len(x.Type_)
  1155  		if l > 0 {
  1156  			n += 2 + l + runtime.Sov(uint64(l))
  1157  		}
  1158  		if x.unknownFields != nil {
  1159  			n += len(x.unknownFields)
  1160  		}
  1161  		return protoiface.SizeOutput{
  1162  			NoUnkeyedLiterals: input.NoUnkeyedLiterals,
  1163  			Size:              n,
  1164  		}
  1165  	}
  1166  
  1167  	marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) {
  1168  		x := input.Message.Interface().(*A)
  1169  		if x == nil {
  1170  			return protoiface.MarshalOutput{
  1171  				NoUnkeyedLiterals: input.NoUnkeyedLiterals,
  1172  				Buf:               input.Buf,
  1173  			}, nil
  1174  		}
  1175  		options := runtime.MarshalInputToOptions(input)
  1176  		_ = options
  1177  		size := options.Size(x)
  1178  		dAtA := make([]byte, size)
  1179  		i := len(dAtA)
  1180  		_ = i
  1181  		var l int
  1182  		_ = l
  1183  		if x.unknownFields != nil {
  1184  			i -= len(x.unknownFields)
  1185  			copy(dAtA[i:], x.unknownFields)
  1186  		}
  1187  		switch x := x.ONEOF.(type) {
  1188  		case *A_ONEOF_B:
  1189  			encoded, err := options.Marshal(x.ONEOF_B)
  1190  			if err != nil {
  1191  				return protoiface.MarshalOutput{
  1192  					NoUnkeyedLiterals: input.NoUnkeyedLiterals,
  1193  					Buf:               input.Buf,
  1194  				}, err
  1195  			}
  1196  			i -= len(encoded)
  1197  			copy(dAtA[i:], encoded)
  1198  			i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
  1199  			i--
  1200  			dAtA[i] = 0x1
  1201  			i--
  1202  			dAtA[i] = 0xa2
  1203  		case *A_ONEOF_STRING:
  1204  			i -= len(x.ONEOF_STRING)
  1205  			copy(dAtA[i:], x.ONEOF_STRING)
  1206  			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ONEOF_STRING)))
  1207  			i--
  1208  			dAtA[i] = 0x1
  1209  			i--
  1210  			dAtA[i] = 0xaa
  1211  		}
  1212  		if len(x.Type_) > 0 {
  1213  			i -= len(x.Type_)
  1214  			copy(dAtA[i:], x.Type_)
  1215  			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Type_)))
  1216  			i--
  1217  			dAtA[i] = 0x1
  1218  			i--
  1219  			dAtA[i] = 0xc2
  1220  		}
  1221  		if x.Imported != nil {
  1222  			encoded, err := options.Marshal(x.Imported)
  1223  			if err != nil {
  1224  				return protoiface.MarshalOutput{
  1225  					NoUnkeyedLiterals: input.NoUnkeyedLiterals,
  1226  					Buf:               input.Buf,
  1227  				}, err
  1228  			}
  1229  			i -= len(encoded)
  1230  			copy(dAtA[i:], encoded)
  1231  			i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
  1232  			i--
  1233  			dAtA[i] = 0x1
  1234  			i--
  1235  			dAtA[i] = 0xba
  1236  		}
  1237  		if len(x.LIST_ENUM) > 0 {
  1238  			var pksize2 int
  1239  			for _, num := range x.LIST_ENUM {
  1240  				pksize2 += runtime.Sov(uint64(num))
  1241  			}
  1242  			i -= pksize2
  1243  			j1 := i
  1244  			for _, num1 := range x.LIST_ENUM {
  1245  				num := uint64(num1)
  1246  				for num >= 1<<7 {
  1247  					dAtA[j1] = uint8(uint64(num)&0x7f | 0x80)
  1248  					num >>= 7
  1249  					j1++
  1250  				}
  1251  				dAtA[j1] = uint8(num)
  1252  				j1++
  1253  			}
  1254  			i = runtime.EncodeVarint(dAtA, i, uint64(pksize2))
  1255  			i--
  1256  			dAtA[i] = 0x1
  1257  			i--
  1258  			dAtA[i] = 0xb2
  1259  		}
  1260  		if len(x.LIST) > 0 {
  1261  			for iNdEx := len(x.LIST) - 1; iNdEx >= 0; iNdEx-- {
  1262  				encoded, err := options.Marshal(x.LIST[iNdEx])
  1263  				if err != nil {
  1264  					return protoiface.MarshalOutput{
  1265  						NoUnkeyedLiterals: input.NoUnkeyedLiterals,
  1266  						Buf:               input.Buf,
  1267  					}, err
  1268  				}
  1269  				i -= len(encoded)
  1270  				copy(dAtA[i:], encoded)
  1271  				i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
  1272  				i--
  1273  				dAtA[i] = 0x1
  1274  				i--
  1275  				dAtA[i] = 0x9a
  1276  			}
  1277  		}
  1278  		if len(x.MAP) > 0 {
  1279  			MaRsHaLmAp := func(k string, v *B) (protoiface.MarshalOutput, error) {
  1280  				baseI := i
  1281  				encoded, err := options.Marshal(v)
  1282  				if err != nil {
  1283  					return protoiface.MarshalOutput{
  1284  						NoUnkeyedLiterals: input.NoUnkeyedLiterals,
  1285  						Buf:               input.Buf,
  1286  					}, err
  1287  				}
  1288  				i -= len(encoded)
  1289  				copy(dAtA[i:], encoded)
  1290  				i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
  1291  				i--
  1292  				dAtA[i] = 0x12
  1293  				i -= len(k)
  1294  				copy(dAtA[i:], k)
  1295  				i = runtime.EncodeVarint(dAtA, i, uint64(len(k)))
  1296  				i--
  1297  				dAtA[i] = 0xa
  1298  				i = runtime.EncodeVarint(dAtA, i, uint64(baseI-i))
  1299  				i--
  1300  				dAtA[i] = 0x1
  1301  				i--
  1302  				dAtA[i] = 0x92
  1303  				return protoiface.MarshalOutput{}, nil
  1304  			}
  1305  			if options.Deterministic {
  1306  				keysForMAP := make([]string, 0, len(x.MAP))
  1307  				for k := range x.MAP {
  1308  					keysForMAP = append(keysForMAP, string(k))
  1309  				}
  1310  				sort.Slice(keysForMAP, func(i, j int) bool {
  1311  					return keysForMAP[i] < keysForMAP[j]
  1312  				})
  1313  				for iNdEx := len(keysForMAP) - 1; iNdEx >= 0; iNdEx-- {
  1314  					v := x.MAP[string(keysForMAP[iNdEx])]
  1315  					out, err := MaRsHaLmAp(keysForMAP[iNdEx], v)
  1316  					if err != nil {
  1317  						return out, err
  1318  					}
  1319  				}
  1320  			} else {
  1321  				for k := range x.MAP {
  1322  					v := x.MAP[k]
  1323  					out, err := MaRsHaLmAp(k, v)
  1324  					if err != nil {
  1325  						return out, err
  1326  					}
  1327  				}
  1328  			}
  1329  		}
  1330  		if x.MESSAGE != nil {
  1331  			encoded, err := options.Marshal(x.MESSAGE)
  1332  			if err != nil {
  1333  				return protoiface.MarshalOutput{
  1334  					NoUnkeyedLiterals: input.NoUnkeyedLiterals,
  1335  					Buf:               input.Buf,
  1336  				}, err
  1337  			}
  1338  			i -= len(encoded)
  1339  			copy(dAtA[i:], encoded)
  1340  			i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
  1341  			i--
  1342  			dAtA[i] = 0x1
  1343  			i--
  1344  			dAtA[i] = 0x8a
  1345  		}
  1346  		if len(x.BYTES) > 0 {
  1347  			i -= len(x.BYTES)
  1348  			copy(dAtA[i:], x.BYTES)
  1349  			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.BYTES)))
  1350  			i--
  1351  			dAtA[i] = 0x1
  1352  			i--
  1353  			dAtA[i] = 0x82
  1354  		}
  1355  		if len(x.STRING) > 0 {
  1356  			i -= len(x.STRING)
  1357  			copy(dAtA[i:], x.STRING)
  1358  			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.STRING)))
  1359  			i--
  1360  			dAtA[i] = 0x7a
  1361  		}
  1362  		if x.DOUBLE != 0 || math.Signbit(x.DOUBLE) {
  1363  			i -= 8
  1364  			binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(x.DOUBLE))))
  1365  			i--
  1366  			dAtA[i] = 0x71
  1367  		}
  1368  		if x.FIXED64 != 0 {
  1369  			i -= 8
  1370  			binary.LittleEndian.PutUint64(dAtA[i:], uint64(x.FIXED64))
  1371  			i--
  1372  			dAtA[i] = 0x69
  1373  		}
  1374  		if x.SFIXED64 != 0 {
  1375  			i -= 8
  1376  			binary.LittleEndian.PutUint64(dAtA[i:], uint64(x.SFIXED64))
  1377  			i--
  1378  			dAtA[i] = 0x61
  1379  		}
  1380  		if x.FLOAT != 0 || math.Signbit(float64(x.FLOAT)) {
  1381  			i -= 4
  1382  			binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(x.FLOAT))))
  1383  			i--
  1384  			dAtA[i] = 0x5d
  1385  		}
  1386  		if x.FIXED32 != 0 {
  1387  			i -= 4
  1388  			binary.LittleEndian.PutUint32(dAtA[i:], uint32(x.FIXED32))
  1389  			i--
  1390  			dAtA[i] = 0x55
  1391  		}
  1392  		if x.SFIXED32 != 0 {
  1393  			i -= 4
  1394  			binary.LittleEndian.PutUint32(dAtA[i:], uint32(x.SFIXED32))
  1395  			i--
  1396  			dAtA[i] = 0x4d
  1397  		}
  1398  		if x.UINT64 != 0 {
  1399  			i = runtime.EncodeVarint(dAtA, i, uint64(x.UINT64))
  1400  			i--
  1401  			dAtA[i] = 0x40
  1402  		}
  1403  		if x.SING64 != 0 {
  1404  			i = runtime.EncodeVarint(dAtA, i, uint64((uint64(x.SING64)<<1)^uint64((x.SING64>>63))))
  1405  			i--
  1406  			dAtA[i] = 0x38
  1407  		}
  1408  		if x.INT64 != 0 {
  1409  			i = runtime.EncodeVarint(dAtA, i, uint64(x.INT64))
  1410  			i--
  1411  			dAtA[i] = 0x30
  1412  		}
  1413  		if x.UINT32 != 0 {
  1414  			i = runtime.EncodeVarint(dAtA, i, uint64(x.UINT32))
  1415  			i--
  1416  			dAtA[i] = 0x28
  1417  		}
  1418  		if x.SINT32 != 0 {
  1419  			i = runtime.EncodeVarint(dAtA, i, uint64((uint32(x.SINT32)<<1)^uint32((x.SINT32>>31))))
  1420  			i--
  1421  			dAtA[i] = 0x20
  1422  		}
  1423  		if x.INT32 != 0 {
  1424  			i = runtime.EncodeVarint(dAtA, i, uint64(x.INT32))
  1425  			i--
  1426  			dAtA[i] = 0x18
  1427  		}
  1428  		if x.SomeBoolean {
  1429  			i--
  1430  			if x.SomeBoolean {
  1431  				dAtA[i] = 1
  1432  			} else {
  1433  				dAtA[i] = 0
  1434  			}
  1435  			i--
  1436  			dAtA[i] = 0x10
  1437  		}
  1438  		if x.Enum != 0 {
  1439  			i = runtime.EncodeVarint(dAtA, i, uint64(x.Enum))
  1440  			i--
  1441  			dAtA[i] = 0x8
  1442  		}
  1443  		if input.Buf != nil {
  1444  			input.Buf = append(input.Buf, dAtA...)
  1445  		} else {
  1446  			input.Buf = dAtA
  1447  		}
  1448  		return protoiface.MarshalOutput{
  1449  			NoUnkeyedLiterals: input.NoUnkeyedLiterals,
  1450  			Buf:               input.Buf,
  1451  		}, nil
  1452  	}
  1453  	unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) {
  1454  		x := input.Message.Interface().(*A)
  1455  		if x == nil {
  1456  			return protoiface.UnmarshalOutput{
  1457  				NoUnkeyedLiterals: input.NoUnkeyedLiterals,
  1458  				Flags:             input.Flags,
  1459  			}, nil
  1460  		}
  1461  		options := runtime.UnmarshalInputToOptions(input)
  1462  		_ = options
  1463  		dAtA := input.Buf
  1464  		l := len(dAtA)
  1465  		iNdEx := 0
  1466  		for iNdEx < l {
  1467  			preIndex := iNdEx
  1468  			var wire uint64
  1469  			for shift := uint(0); ; shift += 7 {
  1470  				if shift >= 64 {
  1471  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  1472  				}
  1473  				if iNdEx >= l {
  1474  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1475  				}
  1476  				b := dAtA[iNdEx]
  1477  				iNdEx++
  1478  				wire |= uint64(b&0x7F) << shift
  1479  				if b < 0x80 {
  1480  					break
  1481  				}
  1482  			}
  1483  			fieldNum := int32(wire >> 3)
  1484  			wireType := int(wire & 0x7)
  1485  			if wireType == 4 {
  1486  				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: A: wiretype end group for non-group")
  1487  			}
  1488  			if fieldNum <= 0 {
  1489  				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: A: illegal tag %d (wire type %d)", fieldNum, wire)
  1490  			}
  1491  			switch fieldNum {
  1492  			case 1:
  1493  				if wireType != 0 {
  1494  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Enum", wireType)
  1495  				}
  1496  				x.Enum = 0
  1497  				for shift := uint(0); ; shift += 7 {
  1498  					if shift >= 64 {
  1499  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  1500  					}
  1501  					if iNdEx >= l {
  1502  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1503  					}
  1504  					b := dAtA[iNdEx]
  1505  					iNdEx++
  1506  					x.Enum |= Enumeration(b&0x7F) << shift
  1507  					if b < 0x80 {
  1508  						break
  1509  					}
  1510  				}
  1511  			case 2:
  1512  				if wireType != 0 {
  1513  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field SomeBoolean", wireType)
  1514  				}
  1515  				var v int
  1516  				for shift := uint(0); ; shift += 7 {
  1517  					if shift >= 64 {
  1518  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  1519  					}
  1520  					if iNdEx >= l {
  1521  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1522  					}
  1523  					b := dAtA[iNdEx]
  1524  					iNdEx++
  1525  					v |= int(b&0x7F) << shift
  1526  					if b < 0x80 {
  1527  						break
  1528  					}
  1529  				}
  1530  				x.SomeBoolean = bool(v != 0)
  1531  			case 3:
  1532  				if wireType != 0 {
  1533  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field INT32", wireType)
  1534  				}
  1535  				x.INT32 = 0
  1536  				for shift := uint(0); ; shift += 7 {
  1537  					if shift >= 64 {
  1538  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  1539  					}
  1540  					if iNdEx >= l {
  1541  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1542  					}
  1543  					b := dAtA[iNdEx]
  1544  					iNdEx++
  1545  					x.INT32 |= int32(b&0x7F) << shift
  1546  					if b < 0x80 {
  1547  						break
  1548  					}
  1549  				}
  1550  			case 4:
  1551  				if wireType != 0 {
  1552  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field SINT32", wireType)
  1553  				}
  1554  				var v int32
  1555  				for shift := uint(0); ; shift += 7 {
  1556  					if shift >= 64 {
  1557  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  1558  					}
  1559  					if iNdEx >= l {
  1560  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1561  					}
  1562  					b := dAtA[iNdEx]
  1563  					iNdEx++
  1564  					v |= int32(b&0x7F) << shift
  1565  					if b < 0x80 {
  1566  						break
  1567  					}
  1568  				}
  1569  				v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
  1570  				x.SINT32 = v
  1571  			case 5:
  1572  				if wireType != 0 {
  1573  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field UINT32", wireType)
  1574  				}
  1575  				x.UINT32 = 0
  1576  				for shift := uint(0); ; shift += 7 {
  1577  					if shift >= 64 {
  1578  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  1579  					}
  1580  					if iNdEx >= l {
  1581  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1582  					}
  1583  					b := dAtA[iNdEx]
  1584  					iNdEx++
  1585  					x.UINT32 |= uint32(b&0x7F) << shift
  1586  					if b < 0x80 {
  1587  						break
  1588  					}
  1589  				}
  1590  			case 6:
  1591  				if wireType != 0 {
  1592  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field INT64", wireType)
  1593  				}
  1594  				x.INT64 = 0
  1595  				for shift := uint(0); ; shift += 7 {
  1596  					if shift >= 64 {
  1597  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  1598  					}
  1599  					if iNdEx >= l {
  1600  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1601  					}
  1602  					b := dAtA[iNdEx]
  1603  					iNdEx++
  1604  					x.INT64 |= int64(b&0x7F) << shift
  1605  					if b < 0x80 {
  1606  						break
  1607  					}
  1608  				}
  1609  			case 7:
  1610  				if wireType != 0 {
  1611  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field SING64", wireType)
  1612  				}
  1613  				var v uint64
  1614  				for shift := uint(0); ; shift += 7 {
  1615  					if shift >= 64 {
  1616  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  1617  					}
  1618  					if iNdEx >= l {
  1619  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1620  					}
  1621  					b := dAtA[iNdEx]
  1622  					iNdEx++
  1623  					v |= uint64(b&0x7F) << shift
  1624  					if b < 0x80 {
  1625  						break
  1626  					}
  1627  				}
  1628  				v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
  1629  				x.SING64 = int64(v)
  1630  			case 8:
  1631  				if wireType != 0 {
  1632  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field UINT64", wireType)
  1633  				}
  1634  				x.UINT64 = 0
  1635  				for shift := uint(0); ; shift += 7 {
  1636  					if shift >= 64 {
  1637  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  1638  					}
  1639  					if iNdEx >= l {
  1640  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1641  					}
  1642  					b := dAtA[iNdEx]
  1643  					iNdEx++
  1644  					x.UINT64 |= uint64(b&0x7F) << shift
  1645  					if b < 0x80 {
  1646  						break
  1647  					}
  1648  				}
  1649  			case 9:
  1650  				if wireType != 5 {
  1651  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field SFIXED32", wireType)
  1652  				}
  1653  				x.SFIXED32 = 0
  1654  				if (iNdEx + 4) > l {
  1655  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1656  				}
  1657  				x.SFIXED32 = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
  1658  				iNdEx += 4
  1659  			case 10:
  1660  				if wireType != 5 {
  1661  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field FIXED32", wireType)
  1662  				}
  1663  				x.FIXED32 = 0
  1664  				if (iNdEx + 4) > l {
  1665  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1666  				}
  1667  				x.FIXED32 = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
  1668  				iNdEx += 4
  1669  			case 11:
  1670  				if wireType != 5 {
  1671  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field FLOAT", wireType)
  1672  				}
  1673  				var v uint32
  1674  				if (iNdEx + 4) > l {
  1675  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1676  				}
  1677  				v = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:]))
  1678  				iNdEx += 4
  1679  				x.FLOAT = float32(math.Float32frombits(v))
  1680  			case 12:
  1681  				if wireType != 1 {
  1682  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field SFIXED64", wireType)
  1683  				}
  1684  				x.SFIXED64 = 0
  1685  				if (iNdEx + 8) > l {
  1686  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1687  				}
  1688  				x.SFIXED64 = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  1689  				iNdEx += 8
  1690  			case 13:
  1691  				if wireType != 1 {
  1692  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field FIXED64", wireType)
  1693  				}
  1694  				x.FIXED64 = 0
  1695  				if (iNdEx + 8) > l {
  1696  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1697  				}
  1698  				x.FIXED64 = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  1699  				iNdEx += 8
  1700  			case 14:
  1701  				if wireType != 1 {
  1702  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field DOUBLE", wireType)
  1703  				}
  1704  				var v uint64
  1705  				if (iNdEx + 8) > l {
  1706  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1707  				}
  1708  				v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  1709  				iNdEx += 8
  1710  				x.DOUBLE = float64(math.Float64frombits(v))
  1711  			case 15:
  1712  				if wireType != 2 {
  1713  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field STRING", wireType)
  1714  				}
  1715  				var stringLen uint64
  1716  				for shift := uint(0); ; shift += 7 {
  1717  					if shift >= 64 {
  1718  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  1719  					}
  1720  					if iNdEx >= l {
  1721  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1722  					}
  1723  					b := dAtA[iNdEx]
  1724  					iNdEx++
  1725  					stringLen |= uint64(b&0x7F) << shift
  1726  					if b < 0x80 {
  1727  						break
  1728  					}
  1729  				}
  1730  				intStringLen := int(stringLen)
  1731  				if intStringLen < 0 {
  1732  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  1733  				}
  1734  				postIndex := iNdEx + intStringLen
  1735  				if postIndex < 0 {
  1736  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  1737  				}
  1738  				if postIndex > l {
  1739  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1740  				}
  1741  				x.STRING = string(dAtA[iNdEx:postIndex])
  1742  				iNdEx = postIndex
  1743  			case 16:
  1744  				if wireType != 2 {
  1745  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BYTES", wireType)
  1746  				}
  1747  				var byteLen int
  1748  				for shift := uint(0); ; shift += 7 {
  1749  					if shift >= 64 {
  1750  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  1751  					}
  1752  					if iNdEx >= l {
  1753  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1754  					}
  1755  					b := dAtA[iNdEx]
  1756  					iNdEx++
  1757  					byteLen |= int(b&0x7F) << shift
  1758  					if b < 0x80 {
  1759  						break
  1760  					}
  1761  				}
  1762  				if byteLen < 0 {
  1763  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  1764  				}
  1765  				postIndex := iNdEx + byteLen
  1766  				if postIndex < 0 {
  1767  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  1768  				}
  1769  				if postIndex > l {
  1770  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1771  				}
  1772  				x.BYTES = append(x.BYTES[:0], dAtA[iNdEx:postIndex]...)
  1773  				if x.BYTES == nil {
  1774  					x.BYTES = []byte{}
  1775  				}
  1776  				iNdEx = postIndex
  1777  			case 17:
  1778  				if wireType != 2 {
  1779  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MESSAGE", wireType)
  1780  				}
  1781  				var msglen int
  1782  				for shift := uint(0); ; shift += 7 {
  1783  					if shift >= 64 {
  1784  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  1785  					}
  1786  					if iNdEx >= l {
  1787  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1788  					}
  1789  					b := dAtA[iNdEx]
  1790  					iNdEx++
  1791  					msglen |= int(b&0x7F) << shift
  1792  					if b < 0x80 {
  1793  						break
  1794  					}
  1795  				}
  1796  				if msglen < 0 {
  1797  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  1798  				}
  1799  				postIndex := iNdEx + msglen
  1800  				if postIndex < 0 {
  1801  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  1802  				}
  1803  				if postIndex > l {
  1804  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1805  				}
  1806  				if x.MESSAGE == nil {
  1807  					x.MESSAGE = &B{}
  1808  				}
  1809  				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.MESSAGE); err != nil {
  1810  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
  1811  				}
  1812  				iNdEx = postIndex
  1813  			case 18:
  1814  				if wireType != 2 {
  1815  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MAP", wireType)
  1816  				}
  1817  				var msglen int
  1818  				for shift := uint(0); ; shift += 7 {
  1819  					if shift >= 64 {
  1820  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  1821  					}
  1822  					if iNdEx >= l {
  1823  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1824  					}
  1825  					b := dAtA[iNdEx]
  1826  					iNdEx++
  1827  					msglen |= int(b&0x7F) << shift
  1828  					if b < 0x80 {
  1829  						break
  1830  					}
  1831  				}
  1832  				if msglen < 0 {
  1833  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  1834  				}
  1835  				postIndex := iNdEx + msglen
  1836  				if postIndex < 0 {
  1837  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  1838  				}
  1839  				if postIndex > l {
  1840  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1841  				}
  1842  				if x.MAP == nil {
  1843  					x.MAP = make(map[string]*B)
  1844  				}
  1845  				var mapkey string
  1846  				var mapvalue *B
  1847  				for iNdEx < postIndex {
  1848  					entryPreIndex := iNdEx
  1849  					var wire uint64
  1850  					for shift := uint(0); ; shift += 7 {
  1851  						if shift >= 64 {
  1852  							return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  1853  						}
  1854  						if iNdEx >= l {
  1855  							return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1856  						}
  1857  						b := dAtA[iNdEx]
  1858  						iNdEx++
  1859  						wire |= uint64(b&0x7F) << shift
  1860  						if b < 0x80 {
  1861  							break
  1862  						}
  1863  					}
  1864  					fieldNum := int32(wire >> 3)
  1865  					if fieldNum == 1 {
  1866  						var stringLenmapkey uint64
  1867  						for shift := uint(0); ; shift += 7 {
  1868  							if shift >= 64 {
  1869  								return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  1870  							}
  1871  							if iNdEx >= l {
  1872  								return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1873  							}
  1874  							b := dAtA[iNdEx]
  1875  							iNdEx++
  1876  							stringLenmapkey |= uint64(b&0x7F) << shift
  1877  							if b < 0x80 {
  1878  								break
  1879  							}
  1880  						}
  1881  						intStringLenmapkey := int(stringLenmapkey)
  1882  						if intStringLenmapkey < 0 {
  1883  							return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  1884  						}
  1885  						postStringIndexmapkey := iNdEx + intStringLenmapkey
  1886  						if postStringIndexmapkey < 0 {
  1887  							return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  1888  						}
  1889  						if postStringIndexmapkey > l {
  1890  							return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1891  						}
  1892  						mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
  1893  						iNdEx = postStringIndexmapkey
  1894  					} else if fieldNum == 2 {
  1895  						var mapmsglen int
  1896  						for shift := uint(0); ; shift += 7 {
  1897  							if shift >= 64 {
  1898  								return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  1899  							}
  1900  							if iNdEx >= l {
  1901  								return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1902  							}
  1903  							b := dAtA[iNdEx]
  1904  							iNdEx++
  1905  							mapmsglen |= int(b&0x7F) << shift
  1906  							if b < 0x80 {
  1907  								break
  1908  							}
  1909  						}
  1910  						if mapmsglen < 0 {
  1911  							return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  1912  						}
  1913  						postmsgIndex := iNdEx + mapmsglen
  1914  						if postmsgIndex < 0 {
  1915  							return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  1916  						}
  1917  						if postmsgIndex > l {
  1918  							return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1919  						}
  1920  						mapvalue = &B{}
  1921  						if err := options.Unmarshal(dAtA[iNdEx:postmsgIndex], mapvalue); err != nil {
  1922  							return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
  1923  						}
  1924  						iNdEx = postmsgIndex
  1925  					} else {
  1926  						iNdEx = entryPreIndex
  1927  						skippy, err := runtime.Skip(dAtA[iNdEx:])
  1928  						if err != nil {
  1929  							return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
  1930  						}
  1931  						if (skippy < 0) || (iNdEx+skippy) < 0 {
  1932  							return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  1933  						}
  1934  						if (iNdEx + skippy) > postIndex {
  1935  							return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1936  						}
  1937  						iNdEx += skippy
  1938  					}
  1939  				}
  1940  				x.MAP[mapkey] = mapvalue
  1941  				iNdEx = postIndex
  1942  			case 19:
  1943  				if wireType != 2 {
  1944  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field LIST", wireType)
  1945  				}
  1946  				var msglen int
  1947  				for shift := uint(0); ; shift += 7 {
  1948  					if shift >= 64 {
  1949  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  1950  					}
  1951  					if iNdEx >= l {
  1952  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1953  					}
  1954  					b := dAtA[iNdEx]
  1955  					iNdEx++
  1956  					msglen |= int(b&0x7F) << shift
  1957  					if b < 0x80 {
  1958  						break
  1959  					}
  1960  				}
  1961  				if msglen < 0 {
  1962  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  1963  				}
  1964  				postIndex := iNdEx + msglen
  1965  				if postIndex < 0 {
  1966  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  1967  				}
  1968  				if postIndex > l {
  1969  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1970  				}
  1971  				x.LIST = append(x.LIST, &B{})
  1972  				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.LIST[len(x.LIST)-1]); err != nil {
  1973  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
  1974  				}
  1975  				iNdEx = postIndex
  1976  			case 20:
  1977  				if wireType != 2 {
  1978  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ONEOF_B", wireType)
  1979  				}
  1980  				var msglen int
  1981  				for shift := uint(0); ; shift += 7 {
  1982  					if shift >= 64 {
  1983  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  1984  					}
  1985  					if iNdEx >= l {
  1986  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  1987  					}
  1988  					b := dAtA[iNdEx]
  1989  					iNdEx++
  1990  					msglen |= int(b&0x7F) << shift
  1991  					if b < 0x80 {
  1992  						break
  1993  					}
  1994  				}
  1995  				if msglen < 0 {
  1996  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  1997  				}
  1998  				postIndex := iNdEx + msglen
  1999  				if postIndex < 0 {
  2000  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  2001  				}
  2002  				if postIndex > l {
  2003  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  2004  				}
  2005  				v := &B{}
  2006  				if err := options.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil {
  2007  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
  2008  				}
  2009  				x.ONEOF = &A_ONEOF_B{v}
  2010  				iNdEx = postIndex
  2011  			case 21:
  2012  				if wireType != 2 {
  2013  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ONEOF_STRING", wireType)
  2014  				}
  2015  				var stringLen uint64
  2016  				for shift := uint(0); ; shift += 7 {
  2017  					if shift >= 64 {
  2018  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  2019  					}
  2020  					if iNdEx >= l {
  2021  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  2022  					}
  2023  					b := dAtA[iNdEx]
  2024  					iNdEx++
  2025  					stringLen |= uint64(b&0x7F) << shift
  2026  					if b < 0x80 {
  2027  						break
  2028  					}
  2029  				}
  2030  				intStringLen := int(stringLen)
  2031  				if intStringLen < 0 {
  2032  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  2033  				}
  2034  				postIndex := iNdEx + intStringLen
  2035  				if postIndex < 0 {
  2036  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  2037  				}
  2038  				if postIndex > l {
  2039  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  2040  				}
  2041  				x.ONEOF = &A_ONEOF_STRING{string(dAtA[iNdEx:postIndex])}
  2042  				iNdEx = postIndex
  2043  			case 22:
  2044  				if wireType == 0 {
  2045  					var v Enumeration
  2046  					for shift := uint(0); ; shift += 7 {
  2047  						if shift >= 64 {
  2048  							return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  2049  						}
  2050  						if iNdEx >= l {
  2051  							return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  2052  						}
  2053  						b := dAtA[iNdEx]
  2054  						iNdEx++
  2055  						v |= Enumeration(b&0x7F) << shift
  2056  						if b < 0x80 {
  2057  							break
  2058  						}
  2059  					}
  2060  					x.LIST_ENUM = append(x.LIST_ENUM, v)
  2061  				} else if wireType == 2 {
  2062  					var packedLen int
  2063  					for shift := uint(0); ; shift += 7 {
  2064  						if shift >= 64 {
  2065  							return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  2066  						}
  2067  						if iNdEx >= l {
  2068  							return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  2069  						}
  2070  						b := dAtA[iNdEx]
  2071  						iNdEx++
  2072  						packedLen |= int(b&0x7F) << shift
  2073  						if b < 0x80 {
  2074  							break
  2075  						}
  2076  					}
  2077  					if packedLen < 0 {
  2078  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  2079  					}
  2080  					postIndex := iNdEx + packedLen
  2081  					if postIndex < 0 {
  2082  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  2083  					}
  2084  					if postIndex > l {
  2085  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  2086  					}
  2087  					var elementCount int
  2088  					if elementCount != 0 && len(x.LIST_ENUM) == 0 {
  2089  						x.LIST_ENUM = make([]Enumeration, 0, elementCount)
  2090  					}
  2091  					for iNdEx < postIndex {
  2092  						var v Enumeration
  2093  						for shift := uint(0); ; shift += 7 {
  2094  							if shift >= 64 {
  2095  								return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  2096  							}
  2097  							if iNdEx >= l {
  2098  								return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  2099  							}
  2100  							b := dAtA[iNdEx]
  2101  							iNdEx++
  2102  							v |= Enumeration(b&0x7F) << shift
  2103  							if b < 0x80 {
  2104  								break
  2105  							}
  2106  						}
  2107  						x.LIST_ENUM = append(x.LIST_ENUM, v)
  2108  					}
  2109  				} else {
  2110  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field LIST_ENUM", wireType)
  2111  				}
  2112  			case 23:
  2113  				if wireType != 2 {
  2114  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Imported", wireType)
  2115  				}
  2116  				var msglen int
  2117  				for shift := uint(0); ; shift += 7 {
  2118  					if shift >= 64 {
  2119  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  2120  					}
  2121  					if iNdEx >= l {
  2122  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  2123  					}
  2124  					b := dAtA[iNdEx]
  2125  					iNdEx++
  2126  					msglen |= int(b&0x7F) << shift
  2127  					if b < 0x80 {
  2128  						break
  2129  					}
  2130  				}
  2131  				if msglen < 0 {
  2132  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  2133  				}
  2134  				postIndex := iNdEx + msglen
  2135  				if postIndex < 0 {
  2136  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  2137  				}
  2138  				if postIndex > l {
  2139  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  2140  				}
  2141  				if x.Imported == nil {
  2142  					x.Imported = &ImportedMessage{}
  2143  				}
  2144  				if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Imported); err != nil {
  2145  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
  2146  				}
  2147  				iNdEx = postIndex
  2148  			case 24:
  2149  				if wireType != 2 {
  2150  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Type_", wireType)
  2151  				}
  2152  				var stringLen uint64
  2153  				for shift := uint(0); ; shift += 7 {
  2154  					if shift >= 64 {
  2155  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  2156  					}
  2157  					if iNdEx >= l {
  2158  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  2159  					}
  2160  					b := dAtA[iNdEx]
  2161  					iNdEx++
  2162  					stringLen |= uint64(b&0x7F) << shift
  2163  					if b < 0x80 {
  2164  						break
  2165  					}
  2166  				}
  2167  				intStringLen := int(stringLen)
  2168  				if intStringLen < 0 {
  2169  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  2170  				}
  2171  				postIndex := iNdEx + intStringLen
  2172  				if postIndex < 0 {
  2173  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  2174  				}
  2175  				if postIndex > l {
  2176  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  2177  				}
  2178  				x.Type_ = string(dAtA[iNdEx:postIndex])
  2179  				iNdEx = postIndex
  2180  			default:
  2181  				iNdEx = preIndex
  2182  				skippy, err := runtime.Skip(dAtA[iNdEx:])
  2183  				if err != nil {
  2184  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
  2185  				}
  2186  				if (skippy < 0) || (iNdEx+skippy) < 0 {
  2187  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  2188  				}
  2189  				if (iNdEx + skippy) > l {
  2190  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  2191  				}
  2192  				if !options.DiscardUnknown {
  2193  					x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  2194  				}
  2195  				iNdEx += skippy
  2196  			}
  2197  		}
  2198  
  2199  		if iNdEx > l {
  2200  			return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  2201  		}
  2202  		return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
  2203  	}
  2204  	return &protoiface.Methods{
  2205  		NoUnkeyedLiterals: struct{}{},
  2206  		Flags:             protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
  2207  		Size:              size,
  2208  		Marshal:           marshal,
  2209  		Unmarshal:         unmarshal,
  2210  		Merge:             nil,
  2211  		CheckInitialized:  nil,
  2212  	}
  2213  }
  2214  
  2215  var (
  2216  	md_B   protoreflect.MessageDescriptor
  2217  	fd_B_x protoreflect.FieldDescriptor
  2218  )
  2219  
  2220  func init() {
  2221  	file_testpb_1_proto_init()
  2222  	md_B = File_testpb_1_proto.Messages().ByName("B")
  2223  	fd_B_x = md_B.Fields().ByName("x")
  2224  }
  2225  
  2226  var _ protoreflect.Message = (*fastReflection_B)(nil)
  2227  
  2228  type fastReflection_B B
  2229  
  2230  func (x *B) ProtoReflect() protoreflect.Message {
  2231  	return (*fastReflection_B)(x)
  2232  }
  2233  
  2234  func (x *B) slowProtoReflect() protoreflect.Message {
  2235  	mi := &file_testpb_1_proto_msgTypes[1]
  2236  	if protoimpl.UnsafeEnabled && x != nil {
  2237  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2238  		if ms.LoadMessageInfo() == nil {
  2239  			ms.StoreMessageInfo(mi)
  2240  		}
  2241  		return ms
  2242  	}
  2243  	return mi.MessageOf(x)
  2244  }
  2245  
  2246  var _fastReflection_B_messageType fastReflection_B_messageType
  2247  var _ protoreflect.MessageType = fastReflection_B_messageType{}
  2248  
  2249  type fastReflection_B_messageType struct{}
  2250  
  2251  func (x fastReflection_B_messageType) Zero() protoreflect.Message {
  2252  	return (*fastReflection_B)(nil)
  2253  }
  2254  func (x fastReflection_B_messageType) New() protoreflect.Message {
  2255  	return new(fastReflection_B)
  2256  }
  2257  func (x fastReflection_B_messageType) Descriptor() protoreflect.MessageDescriptor {
  2258  	return md_B
  2259  }
  2260  
  2261  // Descriptor returns message descriptor, which contains only the protobuf
  2262  // type information for the message.
  2263  func (x *fastReflection_B) Descriptor() protoreflect.MessageDescriptor {
  2264  	return md_B
  2265  }
  2266  
  2267  // Type returns the message type, which encapsulates both Go and protobuf
  2268  // type information. If the Go type information is not needed,
  2269  // it is recommended that the message descriptor be used instead.
  2270  func (x *fastReflection_B) Type() protoreflect.MessageType {
  2271  	return _fastReflection_B_messageType
  2272  }
  2273  
  2274  // New returns a newly allocated and mutable empty message.
  2275  func (x *fastReflection_B) New() protoreflect.Message {
  2276  	return new(fastReflection_B)
  2277  }
  2278  
  2279  // Interface unwraps the message reflection interface and
  2280  // returns the underlying ProtoMessage interface.
  2281  func (x *fastReflection_B) Interface() protoreflect.ProtoMessage {
  2282  	return (*B)(x)
  2283  }
  2284  
  2285  // Range iterates over every populated field in an undefined order,
  2286  // calling f for each field descriptor and value encountered.
  2287  // Range returns immediately if f returns false.
  2288  // While iterating, mutating operations may only be performed
  2289  // on the current field descriptor.
  2290  func (x *fastReflection_B) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
  2291  	if x.X != "" {
  2292  		value := protoreflect.ValueOfString(x.X)
  2293  		if !f(fd_B_x, value) {
  2294  			return
  2295  		}
  2296  	}
  2297  }
  2298  
  2299  // Has reports whether a field is populated.
  2300  //
  2301  // Some fields have the property of nullability where it is possible to
  2302  // distinguish between the default value of a field and whether the field
  2303  // was explicitly populated with the default value. Singular message fields,
  2304  // member fields of a oneof, and proto2 scalar fields are nullable. Such
  2305  // fields are populated only if explicitly set.
  2306  //
  2307  // In other cases (aside from the nullable cases above),
  2308  // a proto3 scalar field is populated if it contains a non-zero value, and
  2309  // a repeated field is populated if it is non-empty.
  2310  func (x *fastReflection_B) Has(fd protoreflect.FieldDescriptor) bool {
  2311  	switch fd.FullName() {
  2312  	case "B.x":
  2313  		return x.X != ""
  2314  	default:
  2315  		if fd.IsExtension() {
  2316  			panic(fmt.Errorf("proto3 declared messages do not support extensions: B"))
  2317  		}
  2318  		panic(fmt.Errorf("message B does not contain field %s", fd.FullName()))
  2319  	}
  2320  }
  2321  
  2322  // Clear clears the field such that a subsequent Has call reports false.
  2323  //
  2324  // Clearing an extension field clears both the extension type and value
  2325  // associated with the given field number.
  2326  //
  2327  // Clear is a mutating operation and unsafe for concurrent use.
  2328  func (x *fastReflection_B) Clear(fd protoreflect.FieldDescriptor) {
  2329  	switch fd.FullName() {
  2330  	case "B.x":
  2331  		x.X = ""
  2332  	default:
  2333  		if fd.IsExtension() {
  2334  			panic(fmt.Errorf("proto3 declared messages do not support extensions: B"))
  2335  		}
  2336  		panic(fmt.Errorf("message B does not contain field %s", fd.FullName()))
  2337  	}
  2338  }
  2339  
  2340  // Get retrieves the value for a field.
  2341  //
  2342  // For unpopulated scalars, it returns the default value, where
  2343  // the default value of a bytes scalar is guaranteed to be a copy.
  2344  // For unpopulated composite types, it returns an empty, read-only view
  2345  // of the value; to obtain a mutable reference, use Mutable.
  2346  func (x *fastReflection_B) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
  2347  	switch descriptor.FullName() {
  2348  	case "B.x":
  2349  		value := x.X
  2350  		return protoreflect.ValueOfString(value)
  2351  	default:
  2352  		if descriptor.IsExtension() {
  2353  			panic(fmt.Errorf("proto3 declared messages do not support extensions: B"))
  2354  		}
  2355  		panic(fmt.Errorf("message B does not contain field %s", descriptor.FullName()))
  2356  	}
  2357  }
  2358  
  2359  // Set stores the value for a field.
  2360  //
  2361  // For a field belonging to a oneof, it implicitly clears any other field
  2362  // that may be currently set within the same oneof.
  2363  // For extension fields, it implicitly stores the provided ExtensionType.
  2364  // When setting a composite type, it is unspecified whether the stored value
  2365  // aliases the source's memory in any way. If the composite value is an
  2366  // empty, read-only value, then it panics.
  2367  //
  2368  // Set is a mutating operation and unsafe for concurrent use.
  2369  func (x *fastReflection_B) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
  2370  	switch fd.FullName() {
  2371  	case "B.x":
  2372  		x.X = value.Interface().(string)
  2373  	default:
  2374  		if fd.IsExtension() {
  2375  			panic(fmt.Errorf("proto3 declared messages do not support extensions: B"))
  2376  		}
  2377  		panic(fmt.Errorf("message B does not contain field %s", fd.FullName()))
  2378  	}
  2379  }
  2380  
  2381  // Mutable returns a mutable reference to a composite type.
  2382  //
  2383  // If the field is unpopulated, it may allocate a composite value.
  2384  // For a field belonging to a oneof, it implicitly clears any other field
  2385  // that may be currently set within the same oneof.
  2386  // For extension fields, it implicitly stores the provided ExtensionType
  2387  // if not already stored.
  2388  // It panics if the field does not contain a composite type.
  2389  //
  2390  // Mutable is a mutating operation and unsafe for concurrent use.
  2391  func (x *fastReflection_B) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
  2392  	switch fd.FullName() {
  2393  	case "B.x":
  2394  		panic(fmt.Errorf("field x of message B is not mutable"))
  2395  	default:
  2396  		if fd.IsExtension() {
  2397  			panic(fmt.Errorf("proto3 declared messages do not support extensions: B"))
  2398  		}
  2399  		panic(fmt.Errorf("message B does not contain field %s", fd.FullName()))
  2400  	}
  2401  }
  2402  
  2403  // NewField returns a new value that is assignable to the field
  2404  // for the given descriptor. For scalars, this returns the default value.
  2405  // For lists, maps, and messages, this returns a new, empty, mutable value.
  2406  func (x *fastReflection_B) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
  2407  	switch fd.FullName() {
  2408  	case "B.x":
  2409  		return protoreflect.ValueOfString("")
  2410  	default:
  2411  		if fd.IsExtension() {
  2412  			panic(fmt.Errorf("proto3 declared messages do not support extensions: B"))
  2413  		}
  2414  		panic(fmt.Errorf("message B does not contain field %s", fd.FullName()))
  2415  	}
  2416  }
  2417  
  2418  // WhichOneof reports which field within the oneof is populated,
  2419  // returning nil if none are populated.
  2420  // It panics if the oneof descriptor does not belong to this message.
  2421  func (x *fastReflection_B) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
  2422  	switch d.FullName() {
  2423  	default:
  2424  		panic(fmt.Errorf("%s is not a oneof field in B", d.FullName()))
  2425  	}
  2426  	panic("unreachable")
  2427  }
  2428  
  2429  // GetUnknown retrieves the entire list of unknown fields.
  2430  // The caller may only mutate the contents of the RawFields
  2431  // if the mutated bytes are stored back into the message with SetUnknown.
  2432  func (x *fastReflection_B) GetUnknown() protoreflect.RawFields {
  2433  	return x.unknownFields
  2434  }
  2435  
  2436  // SetUnknown stores an entire list of unknown fields.
  2437  // The raw fields must be syntactically valid according to the wire format.
  2438  // An implementation may panic if this is not the case.
  2439  // Once stored, the caller must not mutate the content of the RawFields.
  2440  // An empty RawFields may be passed to clear the fields.
  2441  //
  2442  // SetUnknown is a mutating operation and unsafe for concurrent use.
  2443  func (x *fastReflection_B) SetUnknown(fields protoreflect.RawFields) {
  2444  	x.unknownFields = fields
  2445  }
  2446  
  2447  // IsValid reports whether the message is valid.
  2448  //
  2449  // An invalid message is an empty, read-only value.
  2450  //
  2451  // An invalid message often corresponds to a nil pointer of the concrete
  2452  // message type, but the details are implementation dependent.
  2453  // Validity is not part of the protobuf data model, and may not
  2454  // be preserved in marshaling or other operations.
  2455  func (x *fastReflection_B) IsValid() bool {
  2456  	return x != nil
  2457  }
  2458  
  2459  // ProtoMethods returns optional fastReflectionFeature-path implementations of various operations.
  2460  // This method may return nil.
  2461  //
  2462  // The returned methods type is identical to
  2463  // "google.golang.org/protobuf/runtime/protoiface".Methods.
  2464  // Consult the protoiface package documentation for details.
  2465  func (x *fastReflection_B) ProtoMethods() *protoiface.Methods {
  2466  	size := func(input protoiface.SizeInput) protoiface.SizeOutput {
  2467  		x := input.Message.Interface().(*B)
  2468  		if x == nil {
  2469  			return protoiface.SizeOutput{
  2470  				NoUnkeyedLiterals: input.NoUnkeyedLiterals,
  2471  				Size:              0,
  2472  			}
  2473  		}
  2474  		options := runtime.SizeInputToOptions(input)
  2475  		_ = options
  2476  		var n int
  2477  		var l int
  2478  		_ = l
  2479  		l = len(x.X)
  2480  		if l > 0 {
  2481  			n += 1 + l + runtime.Sov(uint64(l))
  2482  		}
  2483  		if x.unknownFields != nil {
  2484  			n += len(x.unknownFields)
  2485  		}
  2486  		return protoiface.SizeOutput{
  2487  			NoUnkeyedLiterals: input.NoUnkeyedLiterals,
  2488  			Size:              n,
  2489  		}
  2490  	}
  2491  
  2492  	marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) {
  2493  		x := input.Message.Interface().(*B)
  2494  		if x == nil {
  2495  			return protoiface.MarshalOutput{
  2496  				NoUnkeyedLiterals: input.NoUnkeyedLiterals,
  2497  				Buf:               input.Buf,
  2498  			}, nil
  2499  		}
  2500  		options := runtime.MarshalInputToOptions(input)
  2501  		_ = options
  2502  		size := options.Size(x)
  2503  		dAtA := make([]byte, size)
  2504  		i := len(dAtA)
  2505  		_ = i
  2506  		var l int
  2507  		_ = l
  2508  		if x.unknownFields != nil {
  2509  			i -= len(x.unknownFields)
  2510  			copy(dAtA[i:], x.unknownFields)
  2511  		}
  2512  		if len(x.X) > 0 {
  2513  			i -= len(x.X)
  2514  			copy(dAtA[i:], x.X)
  2515  			i = runtime.EncodeVarint(dAtA, i, uint64(len(x.X)))
  2516  			i--
  2517  			dAtA[i] = 0xa
  2518  		}
  2519  		if input.Buf != nil {
  2520  			input.Buf = append(input.Buf, dAtA...)
  2521  		} else {
  2522  			input.Buf = dAtA
  2523  		}
  2524  		return protoiface.MarshalOutput{
  2525  			NoUnkeyedLiterals: input.NoUnkeyedLiterals,
  2526  			Buf:               input.Buf,
  2527  		}, nil
  2528  	}
  2529  	unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) {
  2530  		x := input.Message.Interface().(*B)
  2531  		if x == nil {
  2532  			return protoiface.UnmarshalOutput{
  2533  				NoUnkeyedLiterals: input.NoUnkeyedLiterals,
  2534  				Flags:             input.Flags,
  2535  			}, nil
  2536  		}
  2537  		options := runtime.UnmarshalInputToOptions(input)
  2538  		_ = options
  2539  		dAtA := input.Buf
  2540  		l := len(dAtA)
  2541  		iNdEx := 0
  2542  		for iNdEx < l {
  2543  			preIndex := iNdEx
  2544  			var wire uint64
  2545  			for shift := uint(0); ; shift += 7 {
  2546  				if shift >= 64 {
  2547  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  2548  				}
  2549  				if iNdEx >= l {
  2550  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  2551  				}
  2552  				b := dAtA[iNdEx]
  2553  				iNdEx++
  2554  				wire |= uint64(b&0x7F) << shift
  2555  				if b < 0x80 {
  2556  					break
  2557  				}
  2558  			}
  2559  			fieldNum := int32(wire >> 3)
  2560  			wireType := int(wire & 0x7)
  2561  			if wireType == 4 {
  2562  				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: B: wiretype end group for non-group")
  2563  			}
  2564  			if fieldNum <= 0 {
  2565  				return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: B: illegal tag %d (wire type %d)", fieldNum, wire)
  2566  			}
  2567  			switch fieldNum {
  2568  			case 1:
  2569  				if wireType != 2 {
  2570  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field X", wireType)
  2571  				}
  2572  				var stringLen uint64
  2573  				for shift := uint(0); ; shift += 7 {
  2574  					if shift >= 64 {
  2575  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
  2576  					}
  2577  					if iNdEx >= l {
  2578  						return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  2579  					}
  2580  					b := dAtA[iNdEx]
  2581  					iNdEx++
  2582  					stringLen |= uint64(b&0x7F) << shift
  2583  					if b < 0x80 {
  2584  						break
  2585  					}
  2586  				}
  2587  				intStringLen := int(stringLen)
  2588  				if intStringLen < 0 {
  2589  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  2590  				}
  2591  				postIndex := iNdEx + intStringLen
  2592  				if postIndex < 0 {
  2593  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  2594  				}
  2595  				if postIndex > l {
  2596  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  2597  				}
  2598  				x.X = string(dAtA[iNdEx:postIndex])
  2599  				iNdEx = postIndex
  2600  			default:
  2601  				iNdEx = preIndex
  2602  				skippy, err := runtime.Skip(dAtA[iNdEx:])
  2603  				if err != nil {
  2604  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
  2605  				}
  2606  				if (skippy < 0) || (iNdEx+skippy) < 0 {
  2607  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
  2608  				}
  2609  				if (iNdEx + skippy) > l {
  2610  					return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  2611  				}
  2612  				if !options.DiscardUnknown {
  2613  					x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
  2614  				}
  2615  				iNdEx += skippy
  2616  			}
  2617  		}
  2618  
  2619  		if iNdEx > l {
  2620  			return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
  2621  		}
  2622  		return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
  2623  	}
  2624  	return &protoiface.Methods{
  2625  		NoUnkeyedLiterals: struct{}{},
  2626  		Flags:             protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
  2627  		Size:              size,
  2628  		Marshal:           marshal,
  2629  		Unmarshal:         unmarshal,
  2630  		Merge:             nil,
  2631  		CheckInitialized:  nil,
  2632  	}
  2633  }
  2634  
  2635  // Code generated by protoc-gen-go. DO NOT EDIT.
  2636  // versions:
  2637  // 	protoc-gen-go v1.27.0
  2638  // 	protoc        v3.18.1
  2639  // source: testpb/1.proto
  2640  
  2641  const (
  2642  	// Verify that this generated code is sufficiently up-to-date.
  2643  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
  2644  	// Verify that runtime/protoimpl is sufficiently up-to-date.
  2645  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
  2646  )
  2647  
  2648  type Enumeration int32
  2649  
  2650  const (
  2651  	Enumeration_One Enumeration = 0
  2652  	Enumeration_Two Enumeration = 1
  2653  )
  2654  
  2655  // Enum value maps for Enumeration.
  2656  var (
  2657  	Enumeration_name = map[int32]string{
  2658  		0: "One",
  2659  		1: "Two",
  2660  	}
  2661  	Enumeration_value = map[string]int32{
  2662  		"One": 0,
  2663  		"Two": 1,
  2664  	}
  2665  )
  2666  
  2667  func (x Enumeration) Enum() *Enumeration {
  2668  	p := new(Enumeration)
  2669  	*p = x
  2670  	return p
  2671  }
  2672  
  2673  func (x Enumeration) String() string {
  2674  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
  2675  }
  2676  
  2677  func (Enumeration) Descriptor() protoreflect.EnumDescriptor {
  2678  	return file_testpb_1_proto_enumTypes[0].Descriptor()
  2679  }
  2680  
  2681  func (Enumeration) Type() protoreflect.EnumType {
  2682  	return &file_testpb_1_proto_enumTypes[0]
  2683  }
  2684  
  2685  func (x Enumeration) Number() protoreflect.EnumNumber {
  2686  	return protoreflect.EnumNumber(x)
  2687  }
  2688  
  2689  // Deprecated: Use Enumeration.Descriptor instead.
  2690  func (Enumeration) EnumDescriptor() ([]byte, []int) {
  2691  	return file_testpb_1_proto_rawDescGZIP(), []int{0}
  2692  }
  2693  
  2694  type A struct {
  2695  	state         protoimpl.MessageState
  2696  	sizeCache     protoimpl.SizeCache
  2697  	unknownFields protoimpl.UnknownFields
  2698  
  2699  	Enum        Enumeration   `protobuf:"varint,1,opt,name=enum,proto3,enum=Enumeration" json:"enum,omitempty"`
  2700  	SomeBoolean bool          `protobuf:"varint,2,opt,name=some_boolean,json=someBoolean,proto3" json:"some_boolean,omitempty"`
  2701  	INT32       int32         `protobuf:"varint,3,opt,name=INT32,proto3" json:"INT32,omitempty"`
  2702  	SINT32      int32         `protobuf:"zigzag32,4,opt,name=SINT32,proto3" json:"SINT32,omitempty"`
  2703  	UINT32      uint32        `protobuf:"varint,5,opt,name=UINT32,proto3" json:"UINT32,omitempty"`
  2704  	INT64       int64         `protobuf:"varint,6,opt,name=INT64,proto3" json:"INT64,omitempty"`
  2705  	SING64      int64         `protobuf:"zigzag64,7,opt,name=SING64,proto3" json:"SING64,omitempty"`
  2706  	UINT64      uint64        `protobuf:"varint,8,opt,name=UINT64,proto3" json:"UINT64,omitempty"`
  2707  	SFIXED32    int32         `protobuf:"fixed32,9,opt,name=SFIXED32,proto3" json:"SFIXED32,omitempty"`
  2708  	FIXED32     uint32        `protobuf:"fixed32,10,opt,name=FIXED32,proto3" json:"FIXED32,omitempty"`
  2709  	FLOAT       float32       `protobuf:"fixed32,11,opt,name=FLOAT,proto3" json:"FLOAT,omitempty"`
  2710  	SFIXED64    int64         `protobuf:"fixed64,12,opt,name=SFIXED64,proto3" json:"SFIXED64,omitempty"`
  2711  	FIXED64     uint64        `protobuf:"fixed64,13,opt,name=FIXED64,proto3" json:"FIXED64,omitempty"`
  2712  	DOUBLE      float64       `protobuf:"fixed64,14,opt,name=DOUBLE,proto3" json:"DOUBLE,omitempty"`
  2713  	STRING      string        `protobuf:"bytes,15,opt,name=STRING,proto3" json:"STRING,omitempty"`
  2714  	BYTES       []byte        `protobuf:"bytes,16,opt,name=BYTES,proto3" json:"BYTES,omitempty"`
  2715  	MESSAGE     *B            `protobuf:"bytes,17,opt,name=MESSAGE,proto3" json:"MESSAGE,omitempty"`
  2716  	MAP         map[string]*B `protobuf:"bytes,18,rep,name=MAP,proto3" json:"MAP,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
  2717  	LIST        []*B          `protobuf:"bytes,19,rep,name=LIST,proto3" json:"LIST,omitempty"`
  2718  	// Types that are assignable to ONEOF:
  2719  	//	*A_ONEOF_B
  2720  	//	*A_ONEOF_STRING
  2721  	ONEOF     isA_ONEOF        `protobuf_oneof:"ONEOF"`
  2722  	LIST_ENUM []Enumeration    `protobuf:"varint,22,rep,packed,name=LIST_ENUM,json=LISTENUM,proto3,enum=Enumeration" json:"LIST_ENUM,omitempty"`
  2723  	Imported  *ImportedMessage `protobuf:"bytes,23,opt,name=imported,proto3" json:"imported,omitempty"`
  2724  	Type_     string           `protobuf:"bytes,24,opt,name=type,proto3" json:"type,omitempty"`
  2725  }
  2726  
  2727  func (x *A) Reset() {
  2728  	*x = A{}
  2729  	if protoimpl.UnsafeEnabled {
  2730  		mi := &file_testpb_1_proto_msgTypes[0]
  2731  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2732  		ms.StoreMessageInfo(mi)
  2733  	}
  2734  }
  2735  
  2736  func (x *A) String() string {
  2737  	return protoimpl.X.MessageStringOf(x)
  2738  }
  2739  
  2740  func (*A) ProtoMessage() {}
  2741  
  2742  // Deprecated: Use A.ProtoReflect.Descriptor instead.
  2743  func (*A) Descriptor() ([]byte, []int) {
  2744  	return file_testpb_1_proto_rawDescGZIP(), []int{0}
  2745  }
  2746  
  2747  func (x *A) GetEnum() Enumeration {
  2748  	if x != nil {
  2749  		return x.Enum
  2750  	}
  2751  	return Enumeration_One
  2752  }
  2753  
  2754  func (x *A) GetSomeBoolean() bool {
  2755  	if x != nil {
  2756  		return x.SomeBoolean
  2757  	}
  2758  	return false
  2759  }
  2760  
  2761  func (x *A) GetINT32() int32 {
  2762  	if x != nil {
  2763  		return x.INT32
  2764  	}
  2765  	return 0
  2766  }
  2767  
  2768  func (x *A) GetSINT32() int32 {
  2769  	if x != nil {
  2770  		return x.SINT32
  2771  	}
  2772  	return 0
  2773  }
  2774  
  2775  func (x *A) GetUINT32() uint32 {
  2776  	if x != nil {
  2777  		return x.UINT32
  2778  	}
  2779  	return 0
  2780  }
  2781  
  2782  func (x *A) GetINT64() int64 {
  2783  	if x != nil {
  2784  		return x.INT64
  2785  	}
  2786  	return 0
  2787  }
  2788  
  2789  func (x *A) GetSING64() int64 {
  2790  	if x != nil {
  2791  		return x.SING64
  2792  	}
  2793  	return 0
  2794  }
  2795  
  2796  func (x *A) GetUINT64() uint64 {
  2797  	if x != nil {
  2798  		return x.UINT64
  2799  	}
  2800  	return 0
  2801  }
  2802  
  2803  func (x *A) GetSFIXED32() int32 {
  2804  	if x != nil {
  2805  		return x.SFIXED32
  2806  	}
  2807  	return 0
  2808  }
  2809  
  2810  func (x *A) GetFIXED32() uint32 {
  2811  	if x != nil {
  2812  		return x.FIXED32
  2813  	}
  2814  	return 0
  2815  }
  2816  
  2817  func (x *A) GetFLOAT() float32 {
  2818  	if x != nil {
  2819  		return x.FLOAT
  2820  	}
  2821  	return 0
  2822  }
  2823  
  2824  func (x *A) GetSFIXED64() int64 {
  2825  	if x != nil {
  2826  		return x.SFIXED64
  2827  	}
  2828  	return 0
  2829  }
  2830  
  2831  func (x *A) GetFIXED64() uint64 {
  2832  	if x != nil {
  2833  		return x.FIXED64
  2834  	}
  2835  	return 0
  2836  }
  2837  
  2838  func (x *A) GetDOUBLE() float64 {
  2839  	if x != nil {
  2840  		return x.DOUBLE
  2841  	}
  2842  	return 0
  2843  }
  2844  
  2845  func (x *A) GetSTRING() string {
  2846  	if x != nil {
  2847  		return x.STRING
  2848  	}
  2849  	return ""
  2850  }
  2851  
  2852  func (x *A) GetBYTES() []byte {
  2853  	if x != nil {
  2854  		return x.BYTES
  2855  	}
  2856  	return nil
  2857  }
  2858  
  2859  func (x *A) GetMESSAGE() *B {
  2860  	if x != nil {
  2861  		return x.MESSAGE
  2862  	}
  2863  	return nil
  2864  }
  2865  
  2866  func (x *A) GetMAP() map[string]*B {
  2867  	if x != nil {
  2868  		return x.MAP
  2869  	}
  2870  	return nil
  2871  }
  2872  
  2873  func (x *A) GetLIST() []*B {
  2874  	if x != nil {
  2875  		return x.LIST
  2876  	}
  2877  	return nil
  2878  }
  2879  
  2880  func (x *A) GetONEOF() isA_ONEOF {
  2881  	if x != nil {
  2882  		return x.ONEOF
  2883  	}
  2884  	return nil
  2885  }
  2886  
  2887  func (x *A) GetONEOF_B() *B {
  2888  	if x, ok := x.GetONEOF().(*A_ONEOF_B); ok {
  2889  		return x.ONEOF_B
  2890  	}
  2891  	return nil
  2892  }
  2893  
  2894  func (x *A) GetONEOF_STRING() string {
  2895  	if x, ok := x.GetONEOF().(*A_ONEOF_STRING); ok {
  2896  		return x.ONEOF_STRING
  2897  	}
  2898  	return ""
  2899  }
  2900  
  2901  func (x *A) GetLIST_ENUM() []Enumeration {
  2902  	if x != nil {
  2903  		return x.LIST_ENUM
  2904  	}
  2905  	return nil
  2906  }
  2907  
  2908  func (x *A) GetImported() *ImportedMessage {
  2909  	if x != nil {
  2910  		return x.Imported
  2911  	}
  2912  	return nil
  2913  }
  2914  
  2915  func (x *A) GetType_() string {
  2916  	if x != nil {
  2917  		return x.Type_
  2918  	}
  2919  	return ""
  2920  }
  2921  
  2922  type isA_ONEOF interface {
  2923  	isA_ONEOF()
  2924  }
  2925  
  2926  type A_ONEOF_B struct {
  2927  	ONEOF_B *B `protobuf:"bytes,20,opt,name=ONEOF_B,json=ONEOFB,proto3,oneof"`
  2928  }
  2929  
  2930  type A_ONEOF_STRING struct {
  2931  	ONEOF_STRING string `protobuf:"bytes,21,opt,name=ONEOF_STRING,json=ONEOFSTRING,proto3,oneof"`
  2932  }
  2933  
  2934  func (*A_ONEOF_B) isA_ONEOF() {}
  2935  
  2936  func (*A_ONEOF_STRING) isA_ONEOF() {}
  2937  
  2938  type B struct {
  2939  	state         protoimpl.MessageState
  2940  	sizeCache     protoimpl.SizeCache
  2941  	unknownFields protoimpl.UnknownFields
  2942  
  2943  	X string `protobuf:"bytes,1,opt,name=x,proto3" json:"x,omitempty"`
  2944  }
  2945  
  2946  func (x *B) Reset() {
  2947  	*x = B{}
  2948  	if protoimpl.UnsafeEnabled {
  2949  		mi := &file_testpb_1_proto_msgTypes[1]
  2950  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2951  		ms.StoreMessageInfo(mi)
  2952  	}
  2953  }
  2954  
  2955  func (x *B) String() string {
  2956  	return protoimpl.X.MessageStringOf(x)
  2957  }
  2958  
  2959  func (*B) ProtoMessage() {}
  2960  
  2961  // Deprecated: Use B.ProtoReflect.Descriptor instead.
  2962  func (*B) Descriptor() ([]byte, []int) {
  2963  	return file_testpb_1_proto_rawDescGZIP(), []int{1}
  2964  }
  2965  
  2966  func (x *B) GetX() string {
  2967  	if x != nil {
  2968  		return x.X
  2969  	}
  2970  	return ""
  2971  }
  2972  
  2973  var File_testpb_1_proto protoreflect.FileDescriptor
  2974  
  2975  var file_testpb_1_proto_rawDesc = []byte{
  2976  	0x0a, 0x0e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2f, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  2977  	0x1a, 0x0e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2f, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  2978  	0x22, 0xe7, 0x05, 0x0a, 0x01, 0x41, 0x12, 0x20, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01,
  2979  	0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69,
  2980  	0x6f, 0x6e, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x6f, 0x6d, 0x65,
  2981  	0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,
  2982  	0x73, 0x6f, 0x6d, 0x65, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x49,
  2983  	0x4e, 0x54, 0x33, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x4e, 0x54, 0x33,
  2984  	0x32, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28,
  2985  	0x11, 0x52, 0x06, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x49, 0x4e,
  2986  	0x54, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x49, 0x4e, 0x54, 0x33,
  2987  	0x32, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03,
  2988  	0x52, 0x05, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x49, 0x4e, 0x47, 0x36,
  2989  	0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x53, 0x49, 0x4e, 0x47, 0x36, 0x34, 0x12,
  2990  	0x16, 0x0a, 0x06, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52,
  2991  	0x06, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x46, 0x49, 0x58, 0x45,
  2992  	0x44, 0x33, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x08, 0x53, 0x46, 0x49, 0x58, 0x45,
  2993  	0x44, 0x33, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x18, 0x0a,
  2994  	0x20, 0x01, 0x28, 0x07, 0x52, 0x07, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x12, 0x14, 0x0a,
  2995  	0x05, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x46, 0x4c,
  2996  	0x4f, 0x41, 0x54, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x18,
  2997  	0x0c, 0x20, 0x01, 0x28, 0x10, 0x52, 0x08, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x12,
  2998  	0x18, 0x0a, 0x07, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x06,
  2999  	0x52, 0x07, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x4f, 0x55,
  3000  	0x42, 0x4c, 0x45, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x44, 0x4f, 0x55, 0x42, 0x4c,
  3001  	0x45, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x18, 0x0f, 0x20, 0x01, 0x28,
  3002  	0x09, 0x52, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x12, 0x14, 0x0a, 0x05, 0x42, 0x59, 0x54,
  3003  	0x45, 0x53, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x42, 0x59, 0x54, 0x45, 0x53, 0x12,
  3004  	0x1c, 0x0a, 0x07, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b,
  3005  	0x32, 0x02, 0x2e, 0x42, 0x52, 0x07, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x1d, 0x0a,
  3006  	0x03, 0x4d, 0x41, 0x50, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x41, 0x2e, 0x4d,
  3007  	0x41, 0x50, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x4d, 0x41, 0x50, 0x12, 0x16, 0x0a, 0x04,
  3008  	0x4c, 0x49, 0x53, 0x54, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x02, 0x2e, 0x42, 0x52, 0x04,
  3009  	0x4c, 0x49, 0x53, 0x54, 0x12, 0x1d, 0x0a, 0x07, 0x4f, 0x4e, 0x45, 0x4f, 0x46, 0x5f, 0x42, 0x18,
  3010  	0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x02, 0x2e, 0x42, 0x48, 0x00, 0x52, 0x06, 0x4f, 0x4e, 0x45,
  3011  	0x4f, 0x46, 0x42, 0x12, 0x23, 0x0a, 0x0c, 0x4f, 0x4e, 0x45, 0x4f, 0x46, 0x5f, 0x53, 0x54, 0x52,
  3012  	0x49, 0x4e, 0x47, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x4f, 0x4e, 0x45,
  3013  	0x4f, 0x46, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x12, 0x29, 0x0a, 0x09, 0x4c, 0x49, 0x53, 0x54,
  3014  	0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x45, 0x6e,
  3015  	0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x4c, 0x49, 0x53, 0x54, 0x45,
  3016  	0x4e, 0x55, 0x4d, 0x12, 0x2c, 0x0a, 0x08, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18,
  3017  	0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64,
  3018  	0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65,
  3019  	0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52,
  3020  	0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x3a, 0x0a, 0x08, 0x4d, 0x41, 0x50, 0x45, 0x6e, 0x74, 0x72,
  3021  	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
  3022  	0x6b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
  3023  	0x28, 0x0b, 0x32, 0x02, 0x2e, 0x42, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
  3024  	0x01, 0x42, 0x07, 0x0a, 0x05, 0x4f, 0x4e, 0x45, 0x4f, 0x46, 0x22, 0x11, 0x0a, 0x01, 0x42, 0x12,
  3025  	0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x78, 0x2a, 0x1f, 0x0a,
  3026  	0x0b, 0x45, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x07, 0x0a, 0x03,
  3027  	0x4f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x77, 0x6f, 0x10, 0x01, 0x42, 0x27,
  3028  	0x5a, 0x25, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73,
  3029  	0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  3030  	0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
  3031  }
  3032  
  3033  var (
  3034  	file_testpb_1_proto_rawDescOnce sync.Once
  3035  	file_testpb_1_proto_rawDescData = file_testpb_1_proto_rawDesc
  3036  )
  3037  
  3038  func file_testpb_1_proto_rawDescGZIP() []byte {
  3039  	file_testpb_1_proto_rawDescOnce.Do(func() {
  3040  		file_testpb_1_proto_rawDescData = protoimpl.X.CompressGZIP(file_testpb_1_proto_rawDescData)
  3041  	})
  3042  	return file_testpb_1_proto_rawDescData
  3043  }
  3044  
  3045  var file_testpb_1_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
  3046  var file_testpb_1_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
  3047  var file_testpb_1_proto_goTypes = []interface{}{
  3048  	(Enumeration)(0),        // 0: Enumeration
  3049  	(*A)(nil),               // 1: A
  3050  	(*B)(nil),               // 2: B
  3051  	nil,                     // 3: A.MAPEntry
  3052  	(*ImportedMessage)(nil), // 4: ImportedMessage
  3053  }
  3054  var file_testpb_1_proto_depIdxs = []int32{
  3055  	0, // 0: A.enum:type_name -> Enumeration
  3056  	2, // 1: A.MESSAGE:type_name -> B
  3057  	3, // 2: A.MAP:type_name -> A.MAPEntry
  3058  	2, // 3: A.LIST:type_name -> B
  3059  	2, // 4: A.ONEOF_B:type_name -> B
  3060  	0, // 5: A.LIST_ENUM:type_name -> Enumeration
  3061  	4, // 6: A.imported:type_name -> ImportedMessage
  3062  	2, // 7: A.MAPEntry.value:type_name -> B
  3063  	8, // [8:8] is the sub-list for method output_type
  3064  	8, // [8:8] is the sub-list for method input_type
  3065  	8, // [8:8] is the sub-list for extension type_name
  3066  	8, // [8:8] is the sub-list for extension extendee
  3067  	0, // [0:8] is the sub-list for field type_name
  3068  }
  3069  
  3070  func init() { file_testpb_1_proto_init() }
  3071  func file_testpb_1_proto_init() {
  3072  	if File_testpb_1_proto != nil {
  3073  		return
  3074  	}
  3075  	file_testpb_2_proto_init()
  3076  	if !protoimpl.UnsafeEnabled {
  3077  		file_testpb_1_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  3078  			switch v := v.(*A); i {
  3079  			case 0:
  3080  				return &v.state
  3081  			case 1:
  3082  				return &v.sizeCache
  3083  			case 2:
  3084  				return &v.unknownFields
  3085  			default:
  3086  				return nil
  3087  			}
  3088  		}
  3089  		file_testpb_1_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  3090  			switch v := v.(*B); i {
  3091  			case 0:
  3092  				return &v.state
  3093  			case 1:
  3094  				return &v.sizeCache
  3095  			case 2:
  3096  				return &v.unknownFields
  3097  			default:
  3098  				return nil
  3099  			}
  3100  		}
  3101  	}
  3102  	file_testpb_1_proto_msgTypes[0].OneofWrappers = []interface{}{
  3103  		(*A_ONEOF_B)(nil),
  3104  		(*A_ONEOF_STRING)(nil),
  3105  	}
  3106  	type x struct{}
  3107  	out := protoimpl.TypeBuilder{
  3108  		File: protoimpl.DescBuilder{
  3109  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  3110  			RawDescriptor: file_testpb_1_proto_rawDesc,
  3111  			NumEnums:      1,
  3112  			NumMessages:   3,
  3113  			NumExtensions: 0,
  3114  			NumServices:   0,
  3115  		},
  3116  		GoTypes:           file_testpb_1_proto_goTypes,
  3117  		DependencyIndexes: file_testpb_1_proto_depIdxs,
  3118  		EnumInfos:         file_testpb_1_proto_enumTypes,
  3119  		MessageInfos:      file_testpb_1_proto_msgTypes,
  3120  	}.Build()
  3121  	File_testpb_1_proto = out.File
  3122  	file_testpb_1_proto_rawDesc = nil
  3123  	file_testpb_1_proto_goTypes = nil
  3124  	file_testpb_1_proto_depIdxs = nil
  3125  }