// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc.  All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
//     * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//     * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
//     * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

// LINT: ALLOW_GROUPS
syntax = "proto2";

package protobuf.experimental;

option java_package = "com.google.protobuf.testing";
option java_outer_classname = "Proto2Testing";

message Proto2SpecialFieldName {
  optional double regular_name = 1;
  optional int32 cached_size = 2;
  optional int64 serialized_size = 3;
  optional string class = 4;
}

message Proto2Message {

  enum TestEnum {
    ZERO = 0;
    ONE = 1;
    TWO = 2;
  }

  optional double field_double_1 = 1;
  optional float field_float_2 = 2;
  optional int64 field_int64_3 = 3;
  optional uint64 field_uint64_4 = 4;
  optional int32 field_int32_5 = 5;
  optional fixed64 field_fixed64_6 = 6;
  optional fixed32 field_fixed32_7 = 7;
  optional bool field_bool_8 = 8;
  optional string field_string_9 = 9;
  optional Proto2Message field_message_10 = 10;
  optional bytes field_bytes_11 = 11;
  optional uint32 field_uint32_12 = 12;
  optional TestEnum field_enum_13 = 13;
  optional sfixed32 field_sfixed32_14 = 14;
  optional sfixed64 field_sfixed64_15 = 15;
  optional sint32 field_sint32_16 = 16;
  optional sint64 field_sint64_17 = 17;
  repeated double field_double_list_18 = 18 [packed = false];
  repeated float field_float_list_19 = 19 [packed = false];
  repeated int64 field_int64_list_20 = 20 [packed = false];
  repeated uint64 field_uint64_list_21 = 21 [packed = false];
  repeated int32 field_int32_list_22 = 22 [packed = false];
  repeated fixed64 field_fixed64_list_23 = 23 [packed = false];
  repeated fixed32 field_fixed32_list_24 = 24 [packed = false];
  repeated bool field_bool_list_25 = 25 [packed = false];
  repeated string field_string_list_26 = 26 [packed = false];
  repeated Proto2Message field_message_list_27 = 27 [packed = false];
  repeated bytes field_bytes_list_28 = 28 [packed = false];
  repeated uint32 field_uint32_list_29 = 29 [packed = false];
  repeated TestEnum field_enum_list_30 = 30 [packed = false];
  repeated sfixed32 field_sfixed32_list_31 = 31 [packed = false];
  repeated sfixed64 field_sfixed64_list_32 = 32 [packed = false];
  repeated sint32 field_sint32_list_33 = 33 [packed = false];
  repeated sint64 field_sint64_list_34 = 34 [packed = false];
  repeated double field_double_list_packed_35 = 35 [packed = true];
  repeated float field_float_list_packed_36 = 36 [packed = true];
  repeated int64 field_int64_list_packed_37 = 37 [packed = true];
  repeated uint64 field_uint64_list_packed_38 = 38 [packed = true];
  repeated int32 field_int32_list_packed_39 = 39 [packed = true];
  repeated fixed64 field_fixed64_list_packed_40 = 40 [packed = true];
  repeated fixed32 field_fixed32_list_packed_41 = 41 [packed = true];
  repeated bool field_bool_list_packed_42 = 42 [packed = true];
  repeated uint32 field_uint32_list_packed_43 = 43 [packed = true];
  repeated TestEnum field_enum_list_packed_44 = 44 [packed = true];
  repeated sfixed32 field_sfixed32_list_packed_45 = 45 [packed = true];
  repeated sfixed64 field_sfixed64_list_packed_46 = 46 [packed = true];
  repeated sint32 field_sint32_list_packed_47 = 47 [packed = true];
  repeated sint64 field_sint64_list_packed_48 = 48 [packed = true];
  optional group FieldGroup49 = 49 {
    optional int32 field_int32_50 = 50;
  }
  repeated group FieldGroupList51 = 51 {
    optional int32 field_int32_52 = 52;
  }
  oneof test_oneof {
    double field_double_53 = 53;
    float field_float_54 = 54;
    int64 field_int64_55 = 55;
    uint64 field_uint64_56 = 56;
    int32 field_int32_57 = 57;
    fixed64 field_fixed64_58 = 58;
    fixed32 field_fixed32_59 = 59;
    bool field_bool_60 = 60;
    string field_string_61 = 61;
    Proto2Message field_message_62 = 62;
    bytes field_bytes_63 = 63;
    uint32 field_uint32_64 = 64;
    sfixed32 field_sfixed32_65 = 65;
    sfixed64 field_sfixed64_66 = 66;
    sint32 field_sint32_67 = 67;
    sint64 field_sint64_68 = 68;
    group FieldGroup69 = 69 {
      optional int32 field_int32_70 = 70;
    }
  }

  message RequiredNestedMessage {
    optional int32 value = 1;
  }

  required double field_required_double_71 = 71;
  required float field_required_float_72 = 72;
  required int64 field_required_int64_73 = 73;
  required uint64 field_required_uint64_74 = 74;
  required int32 field_required_int32_75 = 75;
  required fixed64 field_required_fixed64_76 = 76;
  required fixed32 field_required_fixed32_77 = 77;
  required bool field_required_bool_78 = 78;
  required string field_required_string_79 = 79;
  required RequiredNestedMessage field_required_message_80 = 80;
  required bytes field_required_bytes_81 = 81;
  required uint32 field_required_uint32_82 = 82;
  required TestEnum field_required_enum_83 = 83;
  required sfixed32 field_required_sfixed32_84 = 84;
  required sfixed64 field_required_sfixed64_85 = 85;
  required sint32 field_required_sint32_86 = 86;
  required sint64 field_required_sint64_87 = 87;
  required group FieldRequiredGroup88 = 88 {
    optional int32 field_int32_89 = 89;
  }
}

message Proto2Empty {}

message Proto2MessageWithExtensions {
  extensions 1 to 10000;
}

extend Proto2MessageWithExtensions {
  optional double field_double_1 = 1;
  optional float field_float_2 = 2;
  optional int64 field_int64_3 = 3;
  optional uint64 field_uint64_4 = 4;
  optional int32 field_int32_5 = 5;
  optional fixed64 field_fixed64_6 = 6;
  optional fixed32 field_fixed32_7 = 7;
  optional bool field_bool_8 = 8;
  optional string field_string_9 = 9;
  optional Proto2Message field_message_10 = 10;
  optional bytes field_bytes_11 = 11;
  optional uint32 field_uint32_12 = 12;
  optional Proto2Message.TestEnum field_enum_13 = 13;
  optional sfixed32 field_sfixed32_14 = 14;
  optional sfixed64 field_sfixed64_15 = 15;
  optional sint32 field_sint32_16 = 16;
  optional sint64 field_sint64_17 = 17;

  repeated double field_double_list_18 = 18 [packed = false];
  repeated float field_float_list_19 = 19 [packed = false];
  repeated int64 field_int64_list_20 = 20 [packed = false];
  repeated uint64 field_uint64_list_21 = 21 [packed = false];
  repeated int32 field_int32_list_22 = 22 [packed = false];
  repeated fixed64 field_fixed64_list_23 = 23 [packed = false];
  repeated fixed32 field_fixed32_list_24 = 24 [packed = false];
  repeated bool field_bool_list_25 = 25 [packed = false];
  repeated string field_string_list_26 = 26 [packed = false];
  repeated Proto2Message field_message_list_27 = 27 [packed = false];
  repeated bytes field_bytes_list_28 = 28 [packed = false];
  repeated uint32 field_uint32_list_29 = 29 [packed = false];
  repeated Proto2Message.TestEnum field_enum_list_30 = 30 [packed = false];
  repeated sfixed32 field_sfixed32_list_31 = 31 [packed = false];
  repeated sfixed64 field_sfixed64_list_32 = 32 [packed = false];
  repeated sint32 field_sint32_list_33 = 33 [packed = false];
  repeated sint64 field_sint64_list_34 = 34 [packed = false];

  repeated double field_double_list_packed_35 = 35 [packed = true];
  repeated float field_float_list_packed_36 = 36 [packed = true];
  repeated int64 field_int64_list_packed_37 = 37 [packed = true];
  repeated uint64 field_uint64_list_packed_38 = 38 [packed = true];
  repeated int32 field_int32_list_packed_39 = 39 [packed = true];
  repeated fixed64 field_fixed64_list_packed_40 = 40 [packed = true];
  repeated fixed32 field_fixed32_list_packed_41 = 41 [packed = true];
  repeated bool field_bool_list_packed_42 = 42 [packed = true];
  repeated uint32 field_uint32_list_packed_43 = 43 [packed = true];
  repeated Proto2Message.TestEnum field_enum_list_packed_44 = 44
      [packed = true];
  repeated sfixed32 field_sfixed32_list_packed_45 = 45 [packed = true];
  repeated sfixed64 field_sfixed64_list_packed_46 = 46 [packed = true];
  repeated sint32 field_sint32_list_packed_47 = 47 [packed = true];
  repeated sint64 field_sint64_list_packed_48 = 48 [packed = true];

  optional group FieldGroup49 = 49 {
    optional int32 field_int32_50 = 50;
  }

  repeated group FieldGroupList51 = 51 {
    optional int32 field_int32_52 = 52;
  }
}

message Proto2MessageWithMaps {
  map<bool, bool> field_map_bool_bool_1 = 1;
  map<bool, bytes> field_map_bool_bytes_2 = 2;
  map<bool, double> field_map_bool_double_3 = 3;
  map<bool, Proto2Message.TestEnum> field_map_bool_enum_4 = 4;
  map<bool, fixed32> field_map_bool_fixed32_5 = 5;
  map<bool, fixed64> field_map_bool_fixed64_6 = 6;
  map<bool, float> field_map_bool_float_7 = 7;
  map<bool, int32> field_map_bool_int32_8 = 8;
  map<bool, int64> field_map_bool_int64_9 = 9;
  map<bool, Proto2Message> field_map_bool_message_10 = 10;
  map<bool, sfixed32> field_map_bool_sfixed32_11 = 11;
  map<bool, sfixed64> field_map_bool_sfixed64_12 = 12;
  map<bool, sint32> field_map_bool_sint32_13 = 13;
  map<bool, sint64> field_map_bool_sint64_14 = 14;
  map<bool, string> field_map_bool_string_15 = 15;
  map<bool, uint32> field_map_bool_uint32_16 = 16;
  map<bool, uint64> field_map_bool_uint64_17 = 17;
  map<fixed32, bool> field_map_fixed32_bool_18 = 18;
  map<fixed32, bytes> field_map_fixed32_bytes_19 = 19;
  map<fixed32, double> field_map_fixed32_double_20 = 20;
  map<fixed32, Proto2Message.TestEnum> field_map_fixed32_enum_21 = 21;
  map<fixed32, fixed32> field_map_fixed32_fixed32_22 = 22;
  map<fixed32, fixed64> field_map_fixed32_fixed64_23 = 23;
  map<fixed32, float> field_map_fixed32_float_24 = 24;
  map<fixed32, int32> field_map_fixed32_int32_25 = 25;
  map<fixed32, int64> field_map_fixed32_int64_26 = 26;
  map<fixed32, Proto2Message> field_map_fixed32_message_27 = 27;
  map<fixed32, sfixed32> field_map_fixed32_sfixed32_28 = 28;
  map<fixed32, sfixed64> field_map_fixed32_sfixed64_29 = 29;
  map<fixed32, sint32> field_map_fixed32_sint32_30 = 30;
  map<fixed32, sint64> field_map_fixed32_sint64_31 = 31;
  map<fixed32, string> field_map_fixed32_string_32 = 32;
  map<fixed32, uint32> field_map_fixed32_uint32_33 = 33;
  map<fixed32, uint64> field_map_fixed32_uint64_34 = 34;
  map<fixed64, bool> field_map_fixed64_bool_35 = 35;
  map<fixed64, bytes> field_map_fixed64_bytes_36 = 36;
  map<fixed64, double> field_map_fixed64_double_37 = 37;
  map<fixed64, Proto2Message.TestEnum> field_map_fixed64_enum_38 = 38;
  map<fixed64, fixed32> field_map_fixed64_fixed32_39 = 39;
  map<fixed64, fixed64> field_map_fixed64_fixed64_40 = 40;
  map<fixed64, float> field_map_fixed64_float_41 = 41;
  map<fixed64, int32> field_map_fixed64_int32_42 = 42;
  map<fixed64, int64> field_map_fixed64_int64_43 = 43;
  map<fixed64, Proto2Message> field_map_fixed64_message_44 = 44;
  map<fixed64, sfixed32> field_map_fixed64_sfixed32_45 = 45;
  map<fixed64, sfixed64> field_map_fixed64_sfixed64_46 = 46;
  map<fixed64, sint32> field_map_fixed64_sint32_47 = 47;
  map<fixed64, sint64> field_map_fixed64_sint64_48 = 48;
  map<fixed64, string> field_map_fixed64_string_49 = 49;
  map<fixed64, uint32> field_map_fixed64_uint32_50 = 50;
  map<fixed64, uint64> field_map_fixed64_uint64_51 = 51;
  map<int32, bool> field_map_int32_bool_52 = 52;
  map<int32, bytes> field_map_int32_bytes_53 = 53;
  map<int32, double> field_map_int32_double_54 = 54;
  map<int32, Proto2Message.TestEnum> field_map_int32_enum_55 = 55;
  map<int32, fixed32> field_map_int32_fixed32_56 = 56;
  map<int32, fixed64> field_map_int32_fixed64_57 = 57;
  map<int32, float> field_map_int32_float_58 = 58;
  map<int32, int32> field_map_int32_int32_59 = 59;
  map<int32, int64> field_map_int32_int64_60 = 60;
  map<int32, Proto2Message> field_map_int32_message_61 = 61;
  map<int32, sfixed32> field_map_int32_sfixed32_62 = 62;
  map<int32, sfixed64> field_map_int32_sfixed64_63 = 63;
  map<int32, sint32> field_map_int32_sint32_64 = 64;
  map<int32, sint64> field_map_int32_sint64_65 = 65;
  map<int32, string> field_map_int32_string_66 = 66;
  map<int32, uint32> field_map_int32_uint32_67 = 67;
  map<int32, uint64> field_map_int32_uint64_68 = 68;
  map<int64, bool> field_map_int64_bool_69 = 69;
  map<int64, bytes> field_map_int64_bytes_70 = 70;
  map<int64, double> field_map_int64_double_71 = 71;
  map<int64, Proto2Message.TestEnum> field_map_int64_enum_72 = 72;
  map<int64, fixed32> field_map_int64_fixed32_73 = 73;
  map<int64, fixed64> field_map_int64_fixed64_74 = 74;
  map<int64, float> field_map_int64_float_75 = 75;
  map<int64, int32> field_map_int64_int32_76 = 76;
  map<int64, int64> field_map_int64_int64_77 = 77;
  map<int64, Proto2Message> field_map_int64_message_78 = 78;
  map<int64, sfixed32> field_map_int64_sfixed32_79 = 79;
  map<int64, sfixed64> field_map_int64_sfixed64_80 = 80;
  map<int64, sint32> field_map_int64_sint32_81 = 81;
  map<int64, sint64> field_map_int64_sint64_82 = 82;
  map<int64, string> field_map_int64_string_83 = 83;
  map<int64, uint32> field_map_int64_uint32_84 = 84;
  map<int64, uint64> field_map_int64_uint64_85 = 85;
  map<sfixed32, bool> field_map_sfixed32_bool_86 = 86;
  map<sfixed32, bytes> field_map_sfixed32_bytes_87 = 87;
  map<sfixed32, double> field_map_sfixed32_double_88 = 88;
  map<sfixed32, Proto2Message.TestEnum> field_map_sfixed32_enum_89 = 89;
  map<sfixed32, fixed32> field_map_sfixed32_fixed32_90 = 90;
  map<sfixed32, fixed64> field_map_sfixed32_fixed64_91 = 91;
  map<sfixed32, float> field_map_sfixed32_float_92 = 92;
  map<sfixed32, int32> field_map_sfixed32_int32_93 = 93;
  map<sfixed32, int64> field_map_sfixed32_int64_94 = 94;
  map<sfixed32, Proto2Message> field_map_sfixed32_message_95 = 95;
  map<sfixed32, sfixed32> field_map_sfixed32_sfixed32_96 = 96;
  map<sfixed32, sfixed64> field_map_sfixed32_sfixed64_97 = 97;
  map<sfixed32, sint32> field_map_sfixed32_sint32_98 = 98;
  map<sfixed32, sint64> field_map_sfixed32_sint64_99 = 99;
  map<sfixed32, string> field_map_sfixed32_string_100 = 100;
  map<sfixed32, uint32> field_map_sfixed32_uint32_101 = 101;
  map<sfixed32, uint64> field_map_sfixed32_uint64_102 = 102;
  map<sfixed64, bool> field_map_sfixed64_bool_103 = 103;
  map<sfixed64, bytes> field_map_sfixed64_bytes_104 = 104;
  map<sfixed64, double> field_map_sfixed64_double_105 = 105;
  map<sfixed64, Proto2Message.TestEnum> field_map_sfixed64_enum_106 = 106;
  map<sfixed64, fixed32> field_map_sfixed64_fixed32_107 = 107;
  map<sfixed64, fixed64> field_map_sfixed64_fixed64_108 = 108;
  map<sfixed64, float> field_map_sfixed64_float_109 = 109;
  map<sfixed64, int32> field_map_sfixed64_int32_110 = 110;
  map<sfixed64, int64> field_map_sfixed64_int64_111 = 111;
  map<sfixed64, Proto2Message> field_map_sfixed64_message_112 = 112;
  map<sfixed64, sfixed32> field_map_sfixed64_sfixed32_113 = 113;
  map<sfixed64, sfixed64> field_map_sfixed64_sfixed64_114 = 114;
  map<sfixed64, sint32> field_map_sfixed64_sint32_115 = 115;
  map<sfixed64, sint64> field_map_sfixed64_sint64_116 = 116;
  map<sfixed64, string> field_map_sfixed64_string_117 = 117;
  map<sfixed64, uint32> field_map_sfixed64_uint32_118 = 118;
  map<sfixed64, uint64> field_map_sfixed64_uint64_119 = 119;
  map<sint32, bool> field_map_sint32_bool_120 = 120;
  map<sint32, bytes> field_map_sint32_bytes_121 = 121;
  map<sint32, double> field_map_sint32_double_122 = 122;
  map<sint32, Proto2Message.TestEnum> field_map_sint32_enum_123 = 123;
  map<sint32, fixed32> field_map_sint32_fixed32_124 = 124;
  map<sint32, fixed64> field_map_sint32_fixed64_125 = 125;
  map<sint32, float> field_map_sint32_float_126 = 126;
  map<sint32, int32> field_map_sint32_int32_127 = 127;
  map<sint32, int64> field_map_sint32_int64_128 = 128;
  map<sint32, Proto2Message> field_map_sint32_message_129 = 129;
  map<sint32, sfixed32> field_map_sint32_sfixed32_130 = 130;
  map<sint32, sfixed64> field_map_sint32_sfixed64_131 = 131;
  map<sint32, sint32> field_map_sint32_sint32_132 = 132;
  map<sint32, sint64> field_map_sint32_sint64_133 = 133;
  map<sint32, string> field_map_sint32_string_134 = 134;
  map<sint32, uint32> field_map_sint32_uint32_135 = 135;
  map<sint32, uint64> field_map_sint32_uint64_136 = 136;
  map<sint64, bool> field_map_sint64_bool_137 = 137;
  map<sint64, bytes> field_map_sint64_bytes_138 = 138;
  map<sint64, double> field_map_sint64_double_139 = 139;
  map<sint64, Proto2Message.TestEnum> field_map_sint64_enum_140 = 140;
  map<sint64, fixed32> field_map_sint64_fixed32_141 = 141;
  map<sint64, fixed64> field_map_sint64_fixed64_142 = 142;
  map<sint64, float> field_map_sint64_float_143 = 143;
  map<sint64, int32> field_map_sint64_int32_144 = 144;
  map<sint64, int64> field_map_sint64_int64_145 = 145;
  map<sint64, Proto2Message> field_map_sint64_message_146 = 146;
  map<sint64, sfixed32> field_map_sint64_sfixed32_147 = 147;
  map<sint64, sfixed64> field_map_sint64_sfixed64_148 = 148;
  map<sint64, sint32> field_map_sint64_sint32_149 = 149;
  map<sint64, sint64> field_map_sint64_sint64_150 = 150;
  map<sint64, string> field_map_sint64_string_151 = 151;
  map<sint64, uint32> field_map_sint64_uint32_152 = 152;
  map<sint64, uint64> field_map_sint64_uint64_153 = 153;
  map<string, bool> field_map_string_bool_154 = 154;
  map<string, bytes> field_map_string_bytes_155 = 155;
  map<string, double> field_map_string_double_156 = 156;
  map<string, Proto2Message.TestEnum> field_map_string_enum_157 = 157;
  map<string, fixed32> field_map_string_fixed32_158 = 158;
  map<string, fixed64> field_map_string_fixed64_159 = 159;
  map<string, float> field_map_string_float_160 = 160;
  map<string, int32> field_map_string_int32_161 = 161;
  map<string, int64> field_map_string_int64_162 = 162;
  map<string, Proto2Message> field_map_string_message_163 = 163;
  map<string, sfixed32> field_map_string_sfixed32_164 = 164;
  map<string, sfixed64> field_map_string_sfixed64_165 = 165;
  map<string, sint32> field_map_string_sint32_166 = 166;
  map<string, sint64> field_map_string_sint64_167 = 167;
  map<string, string> field_map_string_string_168 = 168;
  map<string, uint32> field_map_string_uint32_169 = 169;
  map<string, uint64> field_map_string_uint64_170 = 170;
  map<uint32, bool> field_map_uint32_bool_171 = 171;
  map<uint32, bytes> field_map_uint32_bytes_172 = 172;
  map<uint32, double> field_map_uint32_double_173 = 173;
  map<uint32, Proto2Message.TestEnum> field_map_uint32_enum_174 = 174;
  map<uint32, fixed32> field_map_uint32_fixed32_175 = 175;
  map<uint32, fixed64> field_map_uint32_fixed64_176 = 176;
  map<uint32, float> field_map_uint32_float_177 = 177;
  map<uint32, int32> field_map_uint32_int32_178 = 178;
  map<uint32, int64> field_map_uint32_int64_179 = 179;
  map<uint32, Proto2Message> field_map_uint32_message_180 = 180;
  map<uint32, sfixed32> field_map_uint32_sfixed32_181 = 181;
  map<uint32, sfixed64> field_map_uint32_sfixed64_182 = 182;
  map<uint32, sint32> field_map_uint32_sint32_183 = 183;
  map<uint32, sint64> field_map_uint32_sint64_184 = 184;
  map<uint32, string> field_map_uint32_string_185 = 185;
  map<uint32, uint32> field_map_uint32_uint32_186 = 186;
  map<uint32, uint64> field_map_uint32_uint64_187 = 187;
  map<uint64, bool> field_map_uint64_bool_188 = 188;
  map<uint64, bytes> field_map_uint64_bytes_189 = 189;
  map<uint64, double> field_map_uint64_double_190 = 190;
  map<uint64, Proto2Message.TestEnum> field_map_uint64_enum_191 = 191;
  map<uint64, fixed32> field_map_uint64_fixed32_192 = 192;
  map<uint64, fixed64> field_map_uint64_fixed64_193 = 193;
  map<uint64, float> field_map_uint64_float_194 = 194;
  map<uint64, int32> field_map_uint64_int32_195 = 195;
  map<uint64, int64> field_map_uint64_int64_196 = 196;
  map<uint64, Proto2Message> field_map_uint64_message_197 = 197;
  map<uint64, sfixed32> field_map_uint64_sfixed32_198 = 198;
  map<uint64, sfixed64> field_map_uint64_sfixed64_199 = 199;
  map<uint64, sint32> field_map_uint64_sint32_200 = 200;
  map<uint64, sint64> field_map_uint64_sint64_201 = 201;
  map<uint64, string> field_map_uint64_string_202 = 202;
  map<uint64, uint32> field_map_uint64_uint32_203 = 203;
  map<uint64, uint64> field_map_uint64_uint64_204 = 204;
}
