// Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
// for details. 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 a0.a1.a232;
import "f1.proto";
message A220 {
  optional A221 a233 = 7;
  optional string a234 = 1;
  optional bytes a235 = 5;
  optional string a236 = 8;
  optional string a237 = 6;
  optional string a238 = 2;
  optional int32 a239 = 3;
  optional int32 a240 = 4;
  extensions 192367380;
}
enum A221 {
  A222 = 0;
  A223 = 1;
}
enum A224 {
  A225 = 0;
  A226 = 1;
  A227 = 2;
  A228 = 3;
  A229 = 4;
};
