|  | // Copyright 2018 The Go Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style | 
|  | // license that can be found in the LICENSE file. | 
|  |  | 
|  | syntax = "proto2"; | 
|  |  | 
|  | package google.golang.org.proto2_20181126; | 
|  | option go_package = "google.golang.org/protobuf/internal/testprotos/legacy/proto2.v1.2.1-20181126-8d0c54c1"; | 
|  |  | 
|  | enum SiblingEnum { | 
|  | ALPHA   = 0; | 
|  | BRAVO   = 10; | 
|  | CHARLIE = 200; | 
|  | } | 
|  |  | 
|  | message SiblingMessage { | 
|  | optional string  f1 = 1; | 
|  | required string  f2 = 2; | 
|  | repeated string  f3 = 3; | 
|  | optional Message f4 = 4; | 
|  | } | 
|  |  | 
|  | message Message { | 
|  | enum ChildEnum { | 
|  | ALPHA   = 0; | 
|  | BRAVO   = 1; | 
|  | CHARLIE = 2; | 
|  | } | 
|  | message ChildMessage { | 
|  | optional string  f1 = 1; | 
|  | required string  f2 = 2; | 
|  | repeated string  f3 = 3; | 
|  | optional Message f4 = 4; | 
|  | } | 
|  | optional group NamedGroup = 1 { | 
|  | optional string  f1 = 1; | 
|  | required string  f2 = 2; | 
|  | repeated string  f3 = 3; | 
|  | optional Message f4 = 4; | 
|  | } | 
|  |  | 
|  | // Optional fields. | 
|  | optional bool     optional_bool     = 100; | 
|  | optional int32    optional_int32    = 101; | 
|  | optional sint32   optional_sint32   = 102; | 
|  | optional uint32   optional_uint32   = 103; | 
|  | optional int64    optional_int64    = 104; | 
|  | optional sint64   optional_sint64   = 105; | 
|  | optional uint64   optional_uint64   = 106; | 
|  | optional fixed32  optional_fixed32  = 107; | 
|  | optional sfixed32 optional_sfixed32 = 108; | 
|  | optional float    optional_float    = 109; | 
|  | optional fixed64  optional_fixed64  = 110; | 
|  | optional sfixed64 optional_sfixed64 = 111; | 
|  | optional double   optional_double   = 112; | 
|  | optional string   optional_string   = 113; | 
|  | optional bytes    optional_bytes    = 114; | 
|  |  | 
|  | optional ChildEnum      optional_child_enum      = 115; | 
|  | optional ChildMessage   optional_child_message   = 116; | 
|  | optional NamedGroup     optional_named_group     = 117; | 
|  | optional SiblingEnum    optional_sibling_enum    = 118; | 
|  | optional SiblingMessage optional_sibling_message = 119; | 
|  | optional group OptionalGroup = 120 { | 
|  | optional string f1 = 1; | 
|  | required string f2 = 2; | 
|  | repeated string f3 = 3; | 
|  | } | 
|  |  | 
|  | // Optional default fields. | 
|  | optional bool      defaulted_bool     = 200 [default = true]; | 
|  | optional int32     defaulted_int32    = 201 [default = -12345]; | 
|  | optional sint32    defaulted_sint32   = 202 [default = -3200]; | 
|  | optional uint32    defaulted_uint32   = 203 [default = 3200]; | 
|  | optional int64     defaulted_int64    = 204 [default = -123456789]; | 
|  | optional sint64    defaulted_sint64   = 205 [default = -6400]; | 
|  | optional uint64    defaulted_uint64   = 206 [default = 6400]; | 
|  | optional fixed32   defaulted_fixed32  = 207 [default = 320000]; | 
|  | optional sfixed32  defaulted_sfixed32 = 208 [default = -320000]; | 
|  | optional float     defaulted_float    = 209 [default = 3.14159]; | 
|  | optional fixed64   defaulted_fixed64  = 210 [default = 640000]; | 
|  | optional sfixed64  defaulted_sfixed64 = 211 [default = -640000]; | 
|  | optional double    defaulted_double   = 212 [default = 3.14159265359]; | 
|  | optional string    defaulted_string   = 213 [default = "hello, \"world!\"\n"]; | 
|  | optional bytes     defaulted_bytes    = 214 [default = "dead\xde\xad\xbe\xefbeef"]; | 
|  |  | 
|  | optional ChildEnum   defaulted_child_enum   = 215 [default = ALPHA]; | 
|  | optional SiblingEnum defaulted_sibling_enum = 216 [default = ALPHA]; | 
|  |  | 
|  | // Required fields. | 
|  | required bool     required_bool     = 300; | 
|  | required int32    required_int32    = 301; | 
|  | required sint32   required_sint32   = 302; | 
|  | required uint32   required_uint32   = 303; | 
|  | required int64    required_int64    = 304; | 
|  | required sint64   required_sint64   = 305; | 
|  | required uint64   required_uint64   = 306; | 
|  | required fixed32  required_fixed32  = 307; | 
|  | required sfixed32 required_sfixed32 = 308; | 
|  | required float    required_float    = 309; | 
|  | required fixed64  required_fixed64  = 310; | 
|  | required sfixed64 required_sfixed64 = 311; | 
|  | required double   required_double   = 312; | 
|  | required string   required_string   = 313; | 
|  | required bytes    required_bytes    = 314; | 
|  |  | 
|  | required ChildEnum      required_child_enum      = 315; | 
|  | required ChildMessage   required_child_message   = 316; | 
|  | required NamedGroup     required_named_group     = 317; | 
|  | required SiblingEnum    required_sibling_enum    = 318; | 
|  | required SiblingMessage required_sibling_message = 319; | 
|  | required group RequiredGroup = 320 { | 
|  | optional string f1 = 1; | 
|  | required string f2 = 2; | 
|  | repeated string f3 = 3; | 
|  | } | 
|  | // Required default fields. | 
|  | required bool      required_defaulted_bool     = 400 [default = true]; | 
|  | required int32     required_defaulted_int32    = 401 [default = -12345]; | 
|  | required sint32    required_defaulted_sint32   = 402 [default = -3200]; | 
|  | required uint32    required_defaulted_uint32   = 403 [default = 3200]; | 
|  | required int64     required_defaulted_int64    = 404 [default = -123456789]; | 
|  | required sint64    required_defaulted_sint64   = 405 [default = -6400]; | 
|  | required uint64    required_defaulted_uint64   = 406 [default = 6400]; | 
|  | required fixed32   required_defaulted_fixed32  = 407 [default = 320000]; | 
|  | required sfixed32  required_defaulted_sfixed32 = 408 [default = -320000]; | 
|  | required float     required_defaulted_float    = 409 [default = 3.14159]; | 
|  | required fixed64   required_defaulted_fixed64  = 410 [default = 640000]; | 
|  | required sfixed64  required_defaulted_sfixed64 = 411 [default = -640000]; | 
|  | required double    required_defaulted_double   = 412 [default = 3.14159265359]; | 
|  | required string    required_defaulted_string   = 413 [default = "hello, \"world!\"\n"]; | 
|  | required bytes     required_defaulted_bytes    = 414 [default = "dead\xde\xad\xbe\xefbeef"]; | 
|  |  | 
|  | required ChildEnum   required_defaulted_child_enum   = 415 [default = ALPHA]; | 
|  | required SiblingEnum required_defaulted_sibling_enum = 416 [default = ALPHA]; | 
|  |  | 
|  | // Repeated fields. | 
|  | repeated bool     repeated_bool     = 500; | 
|  | repeated int32    repeated_int32    = 501; | 
|  | repeated sint32   repeated_sint32   = 502; | 
|  | repeated uint32   repeated_uint32   = 503; | 
|  | repeated int64    repeated_int64    = 504; | 
|  | repeated sint64   repeated_sint64   = 505; | 
|  | repeated uint64   repeated_uint64   = 506; | 
|  | repeated fixed32  repeated_fixed32  = 507; | 
|  | repeated sfixed32 repeated_sfixed32 = 508; | 
|  | repeated float    repeated_float    = 509; | 
|  | repeated fixed64  repeated_fixed64  = 510; | 
|  | repeated sfixed64 repeated_sfixed64 = 511; | 
|  | repeated double   repeated_double   = 512; | 
|  | repeated string   repeated_string   = 513; | 
|  | repeated bytes    repeated_bytes    = 514; | 
|  |  | 
|  | repeated ChildEnum      repeated_child_enum      = 515; | 
|  | repeated ChildMessage   repeated_child_message   = 516; | 
|  | repeated NamedGroup     repeated_named_group     = 517; | 
|  | repeated SiblingEnum    repeated_sibling_enum    = 518; | 
|  | repeated SiblingMessage repeated_sibling_message = 519; | 
|  | repeated group RepeatedGroup = 520 { | 
|  | optional string f1 = 1; | 
|  | required string f2 = 2; | 
|  | repeated string f3 = 3; | 
|  | } | 
|  |  | 
|  | // Map fields. | 
|  | map<bool, bool>     map_bool_bool     = 600; | 
|  | map<bool, int32>    map_bool_int32    = 601; | 
|  | map<bool, sint32>   map_bool_sint32   = 602; | 
|  | map<bool, uint32>   map_bool_uint32   = 603; | 
|  | map<bool, int64>    map_bool_int64    = 604; | 
|  | map<bool, sint64>   map_bool_sint64   = 605; | 
|  | map<bool, uint64>   map_bool_uint64   = 606; | 
|  | map<bool, fixed32>  map_bool_fixed32  = 607; | 
|  | map<bool, sfixed32> map_bool_sfixed32 = 608; | 
|  | map<bool, float>    map_bool_float    = 609; | 
|  | map<bool, fixed64>  map_bool_fixed64  = 610; | 
|  | map<bool, sfixed64> map_bool_sfixed64 = 611; | 
|  | map<bool, double>   map_bool_double   = 612; | 
|  | map<bool, string>   map_bool_string   = 613; | 
|  | map<bool, bytes>    map_bool_bytes    = 614; | 
|  |  | 
|  | map<bool, ChildEnum>      map_bool_child_enum      = 615; | 
|  | map<bool, ChildMessage>   map_bool_child_message   = 616; | 
|  | map<bool, NamedGroup>     map_bool_named_group     = 617; | 
|  | map<bool, SiblingEnum>    map_bool_sibling_enum    = 618; | 
|  | map<bool, SiblingMessage> map_bool_sibling_message = 619; | 
|  |  | 
|  | map<int32, bool>   map_int32_bool   = 620; | 
|  | map<sint32, bool>  map_sint32_bool  = 621; | 
|  | map<uint32, bool>  map_uint32_bool  = 622; | 
|  | map<int64, bool>   map_int64_bool   = 623; | 
|  | map<sint64, bool>  map_sint64_bool  = 624; | 
|  | map<uint64, bool>  map_uint64_bool  = 625; | 
|  | map<fixed32, bool> map_fixed32_bool = 626; | 
|  | map<string, bool>  map_string_bool  = 627; | 
|  |  | 
|  | // Oneof fields. | 
|  | oneof oneof_union { | 
|  | bool     oneof_bool     = 700; | 
|  | int32    oneof_int32    = 701; | 
|  | sint32   oneof_sint32   = 702; | 
|  | uint32   oneof_uint32   = 703; | 
|  | int64    oneof_int64    = 704; | 
|  | sint64   oneof_sint64   = 705; | 
|  | uint64   oneof_uint64   = 706; | 
|  | fixed32  oneof_fixed32  = 707; | 
|  | sfixed32 oneof_sfixed32 = 708; | 
|  | float    oneof_float    = 709; | 
|  | fixed64  oneof_fixed64  = 710; | 
|  | sfixed64 oneof_sfixed64 = 711; | 
|  | double   oneof_double   = 712; | 
|  | string   oneof_string   = 713; | 
|  | bytes    oneof_bytes    = 714; | 
|  |  | 
|  | ChildEnum      oneof_child_enum      = 715; | 
|  | ChildMessage   oneof_child_message   = 716; | 
|  | NamedGroup     oneof_named_group     = 717; | 
|  | SiblingEnum    oneof_sibling_enum    = 718; | 
|  | SiblingMessage oneof_sibling_message = 719; | 
|  | group OneofGroup = 720 { | 
|  | optional string f1 = 1; | 
|  | required string f2 = 2; | 
|  | repeated string f3 = 3; | 
|  | } | 
|  |  | 
|  | string oneof_string1 = 721; | 
|  | string oneof_string2 = 722; | 
|  | string oneof_string3 = 723; | 
|  | } | 
|  |  | 
|  | // Oneof default fields. | 
|  | oneof oneof_defaulted_union { | 
|  | bool      oneof_defaulted_bool     = 800 [default = true]; | 
|  | int32     oneof_defaulted_int32    = 801 [default = -12345]; | 
|  | sint32    oneof_defaulted_sint32   = 802 [default = -3200]; | 
|  | uint32    oneof_defaulted_uint32   = 803 [default = 3200]; | 
|  | int64     oneof_defaulted_int64    = 804 [default = -123456789]; | 
|  | sint64    oneof_defaulted_sint64   = 805 [default = -6400]; | 
|  | uint64    oneof_defaulted_uint64   = 806 [default = 6400]; | 
|  | fixed32   oneof_defaulted_fixed32  = 807 [default = 320000]; | 
|  | sfixed32  oneof_defaulted_sfixed32 = 808 [default = -320000]; | 
|  | float     oneof_defaulted_float    = 809 [default = 3.14159]; | 
|  | fixed64   oneof_defaulted_fixed64  = 810 [default = 640000]; | 
|  | sfixed64  oneof_defaulted_sfixed64 = 811 [default = -640000]; | 
|  | double    oneof_defaulted_double   = 812 [default = 3.14159265359]; | 
|  | string    oneof_defaulted_string   = 813 [default = "hello, \"world!\"\n"]; | 
|  | bytes     oneof_defaulted_bytes    = 814 [default = "dead\xde\xad\xbe\xefbeef"]; | 
|  |  | 
|  | ChildEnum   oneof_defaulted_child_enum   = 815 [default = ALPHA]; | 
|  | SiblingEnum oneof_defaulted_sibling_enum = 816 [default = ALPHA]; | 
|  | } | 
|  |  | 
|  | // Extension fields. | 
|  | extend Message { | 
|  | // Optional fields. | 
|  | optional bool     extension_optional_bool     = 10000; | 
|  | optional int32    extension_optional_int32    = 10001; | 
|  | optional sint32   extension_optional_sint32   = 10002; | 
|  | optional uint32   extension_optional_uint32   = 10003; | 
|  | optional int64    extension_optional_int64    = 10004; | 
|  | optional sint64   extension_optional_sint64   = 10005; | 
|  | optional uint64   extension_optional_uint64   = 10006; | 
|  | optional fixed32  extension_optional_fixed32  = 10007; | 
|  | optional sfixed32 extension_optional_sfixed32 = 10008; | 
|  | optional float    extension_optional_float    = 10009; | 
|  | optional fixed64  extension_optional_fixed64  = 10010; | 
|  | optional sfixed64 extension_optional_sfixed64 = 10011; | 
|  | optional double   extension_optional_double   = 10012; | 
|  | optional string   extension_optional_string   = 10013; | 
|  | optional bytes    extension_optional_bytes    = 10014; | 
|  |  | 
|  | optional ChildEnum      extension_optional_child_enum      = 10015; | 
|  | optional ChildMessage   extension_optional_child_message   = 10016; | 
|  | optional NamedGroup     extension_optional_named_group     = 10017; | 
|  | optional SiblingEnum    extension_optional_sibling_enum    = 10018; | 
|  | optional SiblingMessage extension_optional_sibling_message = 10019; | 
|  | optional group ExtensionOptionalGroup = 10020 { | 
|  | optional string f1 = 1; | 
|  | required string f2 = 2; | 
|  | repeated string f3 = 3; | 
|  | } | 
|  |  | 
|  | // Optional default fields. | 
|  | optional bool      extension_defaulted_bool     = 20000 [default = true]; | 
|  | optional int32     extension_defaulted_int32    = 20001 [default = -12345]; | 
|  | optional sint32    extension_defaulted_sint32   = 20002 [default = -3200]; | 
|  | optional uint32    extension_defaulted_uint32   = 20003 [default = 3200]; | 
|  | optional int64     extension_defaulted_int64    = 20004 [default = -123456789]; | 
|  | optional sint64    extension_defaulted_sint64   = 20005 [default = -6400]; | 
|  | optional uint64    extension_defaulted_uint64   = 20006 [default = 6400]; | 
|  | optional fixed32   extension_defaulted_fixed32  = 20007 [default = 320000]; | 
|  | optional sfixed32  extension_defaulted_sfixed32 = 20008 [default = -320000]; | 
|  | optional float     extension_defaulted_float    = 20009 [default = 3.14159]; | 
|  | optional fixed64   extension_defaulted_fixed64  = 20010 [default = 640000]; | 
|  | optional sfixed64  extension_defaulted_sfixed64 = 20011 [default = -640000]; | 
|  | optional double    extension_defaulted_double   = 20012 [default = 3.14159265359]; | 
|  | optional string    extension_defaulted_string   = 20013 [default = "hello, \"world!\"\n"]; | 
|  | optional bytes     extension_defaulted_bytes    = 20014 [default = "dead\xde\xad\xbe\xefbeef"]; | 
|  |  | 
|  | optional ChildEnum   extension_defaulted_child_enum   = 20015 [default = ALPHA]; | 
|  | optional SiblingEnum extension_defaulted_sibling_enum = 20016 [default = ALPHA]; | 
|  |  | 
|  | // Repeated fields. | 
|  | repeated bool     extension_repeated_bool     = 30000; | 
|  | repeated int32    extension_repeated_int32    = 30001; | 
|  | repeated sint32   extension_repeated_sint32   = 30002; | 
|  | repeated uint32   extension_repeated_uint32   = 30003; | 
|  | repeated int64    extension_repeated_int64    = 30004; | 
|  | repeated sint64   extension_repeated_sint64   = 30005; | 
|  | repeated uint64   extension_repeated_uint64   = 30006; | 
|  | repeated fixed32  extension_repeated_fixed32  = 30007; | 
|  | repeated sfixed32 extension_repeated_sfixed32 = 30008; | 
|  | repeated float    extension_repeated_float    = 30009; | 
|  | repeated fixed64  extension_repeated_fixed64  = 30010; | 
|  | repeated sfixed64 extension_repeated_sfixed64 = 30011; | 
|  | repeated double   extension_repeated_double   = 30012; | 
|  | repeated string   extension_repeated_string   = 30013; | 
|  | repeated bytes    extension_repeated_bytes    = 30014; | 
|  |  | 
|  | repeated ChildEnum      extension_repeated_child_enum      = 30015; | 
|  | repeated ChildMessage   extension_repeated_child_message   = 30016; | 
|  | repeated NamedGroup     extension_repeated_named_group     = 30017; | 
|  | repeated SiblingEnum    extension_repeated_sibling_enum    = 30018; | 
|  | repeated SiblingMessage extension_repeated_sibling_message = 30019; | 
|  | repeated group ExtensionRepeatedGroup = 30020 { | 
|  | optional string f1 = 1; | 
|  | required string f2 = 2; | 
|  | repeated string f3 = 3; | 
|  | } | 
|  | } | 
|  |  | 
|  | extensions 10000 to max; | 
|  | } |