syntax = "proto3";

package a;

enum Two {
  reserved 100 to 250;
  reserved 300;
  reserved "foo";
  TWO_UNSPECIFIED = 0;
  TWO_ONE = 1;
  TWO_TWO = 2;
}

message Three {
  message Four {
    enum Five {
      reserved 100 to 250;
      reserved 300;
      reserved "foo";
      FIVE_UNSPECIFIED = 0;
      FIVE_ONE = 1;
      FIVE_TWO = 2;
    }
    enum Six {
      reserved 3 to 5, 100 to 250;
      reserved 300, 301, 1000 to max;
      reserved "foo", "bar";
      reserved "baz";
      SIX_UNSPECIFIED = 0;
      SIX_ONE = 1;
      SIX_TWO = 2;
    }
  }
  enum Seven {
    reserved 100 to 200;
    reserved 300;
    reserved "foo";
    SEVEN_UNSPECIFIED = 0;
    SEVEN_ONE = 1;
    SEVEN_TWO = 2;
  }
  enum Eight {
    reserved 3 to 5, 100 to 250;
    reserved 300, 301, 1000 to max;
    reserved "foo", "bar";
    reserved "baz";
    EIGHT_UNSPECIFIED = 0;
    EIGHT_ONE = 1;
    EIGHT_TWO = 2;
  }
}

enum Ten {
  reserved 1 to 1000;
  reserved 2000 to 5000, 10000 to 50000;
  reserved 100000 to max;
  TEN_UNSPECIFIED = 0;
}
