/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.apache.jdo.tck.pc.fieldtypes;

import java.io.Serializable;

public class FieldsOfSimpleInterface {
  public int identifier;
  private SimpleInterface SimpleInterface0;
  private SimpleInterface SimpleInterface1;
  private SimpleInterface SimpleInterface2;
  private SimpleInterface SimpleInterface3;
  private SimpleInterface SimpleInterface4;
  private SimpleInterface SimpleInterface5;
  private SimpleInterface SimpleInterface6;
  private SimpleInterface SimpleInterface7;
  private static SimpleInterface SimpleInterface8;
  private transient SimpleInterface SimpleInterface9;
  private transient SimpleInterface SimpleInterface10;
  private transient SimpleInterface SimpleInterface11;
  private transient SimpleInterface SimpleInterface12;
  private transient SimpleInterface SimpleInterface13;
  private transient SimpleInterface SimpleInterface14;
  private final SimpleInterface SimpleInterface15 = new SimpleClass();
  private volatile SimpleInterface SimpleInterface16;
  private volatile SimpleInterface SimpleInterface17;
  private volatile SimpleInterface SimpleInterface18;
  private volatile SimpleInterface SimpleInterface19;
  private volatile SimpleInterface SimpleInterface20;
  private volatile SimpleInterface SimpleInterface21;
  private volatile SimpleInterface SimpleInterface22;
  private volatile SimpleInterface SimpleInterface23;
  private static transient SimpleInterface SimpleInterface24;
  private static final SimpleInterface SimpleInterface25 = new SimpleClass();
  private static volatile SimpleInterface SimpleInterface26;
  private final transient SimpleInterface SimpleInterface27 = new SimpleClass();
  private transient volatile SimpleInterface SimpleInterface28;
  private transient volatile SimpleInterface SimpleInterface29;
  private transient volatile SimpleInterface SimpleInterface30;
  private transient volatile SimpleInterface SimpleInterface31;
  private transient volatile SimpleInterface SimpleInterface32;
  private transient volatile SimpleInterface SimpleInterface33;
  private static final transient SimpleInterface SimpleInterface34 = new SimpleClass();
  private static transient volatile SimpleInterface SimpleInterface35;
  public SimpleInterface SimpleInterface36;
  public SimpleInterface SimpleInterface37;
  public SimpleInterface SimpleInterface38;
  public SimpleInterface SimpleInterface39;
  public SimpleInterface SimpleInterface40;
  public SimpleInterface SimpleInterface41;
  public SimpleInterface SimpleInterface42;
  public SimpleInterface SimpleInterface43;
  public static SimpleInterface SimpleInterface44;
  public transient SimpleInterface SimpleInterface45;
  public transient SimpleInterface SimpleInterface46;
  public transient SimpleInterface SimpleInterface47;
  public transient SimpleInterface SimpleInterface48;
  public transient SimpleInterface SimpleInterface49;
  public transient SimpleInterface SimpleInterface50;
  public final SimpleInterface SimpleInterface51 = new SimpleClass();
  public volatile SimpleInterface SimpleInterface52;
  public volatile SimpleInterface SimpleInterface53;
  public volatile SimpleInterface SimpleInterface54;
  public volatile SimpleInterface SimpleInterface55;
  public volatile SimpleInterface SimpleInterface56;
  public volatile SimpleInterface SimpleInterface57;
  public volatile SimpleInterface SimpleInterface58;
  public volatile SimpleInterface SimpleInterface59;
  public static transient SimpleInterface SimpleInterface60;
  public static final SimpleInterface SimpleInterface61 = new SimpleClass();
  public static volatile SimpleInterface SimpleInterface62;
  public final transient SimpleInterface SimpleInterface63 = new SimpleClass();
  public transient volatile SimpleInterface SimpleInterface64;
  public transient volatile SimpleInterface SimpleInterface65;
  public transient volatile SimpleInterface SimpleInterface66;
  public transient volatile SimpleInterface SimpleInterface67;
  public transient volatile SimpleInterface SimpleInterface68;
  public transient volatile SimpleInterface SimpleInterface69;
  public static final transient SimpleInterface SimpleInterface70 = new SimpleClass();
  public static transient volatile SimpleInterface SimpleInterface71;
  protected SimpleInterface SimpleInterface72;
  protected SimpleInterface SimpleInterface73;
  protected SimpleInterface SimpleInterface74;
  protected SimpleInterface SimpleInterface75;
  protected SimpleInterface SimpleInterface76;
  protected SimpleInterface SimpleInterface77;
  protected SimpleInterface SimpleInterface78;
  protected SimpleInterface SimpleInterface79;
  protected static SimpleInterface SimpleInterface80;
  protected transient SimpleInterface SimpleInterface81;
  protected transient SimpleInterface SimpleInterface82;
  protected transient SimpleInterface SimpleInterface83;
  protected transient SimpleInterface SimpleInterface84;
  protected transient SimpleInterface SimpleInterface85;
  protected transient SimpleInterface SimpleInterface86;
  protected final SimpleInterface SimpleInterface87 = new SimpleClass();
  protected volatile SimpleInterface SimpleInterface88;
  protected volatile SimpleInterface SimpleInterface89;
  protected volatile SimpleInterface SimpleInterface90;
  protected volatile SimpleInterface SimpleInterface91;
  protected volatile SimpleInterface SimpleInterface92;
  protected volatile SimpleInterface SimpleInterface93;
  protected volatile SimpleInterface SimpleInterface94;
  protected volatile SimpleInterface SimpleInterface95;
  protected static transient SimpleInterface SimpleInterface96;
  protected static final SimpleInterface SimpleInterface97 = new SimpleClass();
  protected static volatile SimpleInterface SimpleInterface98;
  protected final transient SimpleInterface SimpleInterface99 = new SimpleClass();
  protected transient volatile SimpleInterface SimpleInterface100;
  protected transient volatile SimpleInterface SimpleInterface101;
  protected transient volatile SimpleInterface SimpleInterface102;
  protected transient volatile SimpleInterface SimpleInterface103;
  protected transient volatile SimpleInterface SimpleInterface104;
  protected transient volatile SimpleInterface SimpleInterface105;
  protected static final transient SimpleInterface SimpleInterface106 = new SimpleClass();
  protected static transient volatile SimpleInterface SimpleInterface107;
  SimpleInterface SimpleInterface108;
  SimpleInterface SimpleInterface109;
  SimpleInterface SimpleInterface110;
  SimpleInterface SimpleInterface111;
  SimpleInterface SimpleInterface112;
  SimpleInterface SimpleInterface113;
  SimpleInterface SimpleInterface114;
  SimpleInterface SimpleInterface115;
  static SimpleInterface SimpleInterface116;
  transient SimpleInterface SimpleInterface117;
  transient SimpleInterface SimpleInterface118;
  transient SimpleInterface SimpleInterface119;
  transient SimpleInterface SimpleInterface120;
  transient SimpleInterface SimpleInterface121;
  transient SimpleInterface SimpleInterface122;
  final SimpleInterface SimpleInterface123 = new SimpleClass();
  volatile SimpleInterface SimpleInterface124;
  volatile SimpleInterface SimpleInterface125;
  volatile SimpleInterface SimpleInterface126;
  volatile SimpleInterface SimpleInterface127;
  volatile SimpleInterface SimpleInterface128;
  volatile SimpleInterface SimpleInterface129;
  volatile SimpleInterface SimpleInterface130;
  volatile SimpleInterface SimpleInterface131;
  static transient SimpleInterface SimpleInterface132;
  static final SimpleInterface SimpleInterface133 = new SimpleClass();
  static volatile SimpleInterface SimpleInterface134;
  final transient SimpleInterface SimpleInterface135 = new SimpleClass();
  transient volatile SimpleInterface SimpleInterface136;
  transient volatile SimpleInterface SimpleInterface137;
  transient volatile SimpleInterface SimpleInterface138;
  transient volatile SimpleInterface SimpleInterface139;
  transient volatile SimpleInterface SimpleInterface140;
  transient volatile SimpleInterface SimpleInterface141;
  static final transient SimpleInterface SimpleInterface142 = new SimpleClass();
  static transient volatile SimpleInterface SimpleInterface143;

  public static final boolean[] isPersistent = {
    false, true, true, false, true, true, true, false, false, false,
    false, true, true, true, false, false, false, true, true, false,
    true, true, true, false, false, false, false, false, false, false,
    true, true, true, false, false, false, false, true, true, false,
    true, true, true, false, false, false, false, true, true, true,
    false, false, false, true, true, false, true, true, true, false,
    false, false, false, false, false, false, true, true, true, false,
    false, false, false, true, true, false, true, true, true, false,
    false, false, false, true, true, true, false, false, false, true,
    true, false, true, true, true, false, false, false, false, false,
    false, false, true, true, true, false, false, false, false, true,
    true, false, true, true, true, false, false, false, false, true,
    true, true, false, false, false, true, true, false, true, true,
    true, false, false, false, false, false, false, false, true, true,
    true, false, false, false
  };

  public static final boolean[] isStatic = {
    false, false, false, false, false, false, false, false, true, false,
    false, false, false, false, false, false, false, false, false, false,
    false, false, false, false, true, true, true, false, false, false,
    false, false, false, false, true, true, false, false, false, false,
    false, false, false, false, true, false, false, false, false, false,
    false, false, false, false, false, false, false, false, false, false,
    true, true, true, false, false, false, false, false, false, false,
    true, true, false, false, false, false, false, false, false, false,
    true, false, false, false, false, false, false, false, false, false,
    false, false, false, false, false, false, true, true, true, false,
    false, false, false, false, false, false, true, true, false, false,
    false, false, false, false, false, false, true, false, false, false,
    false, false, false, false, false, false, false, false, false, false,
    false, false, true, true, true, false, false, false, false, false,
    false, false, true, true
  };

  public static final boolean[] isFinal = {
    false, false, false, false, false, false, false, false, false, false,
    false, false, false, false, false, true, false, false, false, false,
    false, false, false, false, false, true, false, true, false, false,
    false, false, false, false, true, false, false, false, false, false,
    false, false, false, false, false, false, false, false, false, false,
    false, true, false, false, false, false, false, false, false, false,
    false, true, false, true, false, false, false, false, false, false,
    true, false, false, false, false, false, false, false, false, false,
    false, false, false, false, false, false, false, true, false, false,
    false, false, false, false, false, false, false, true, false, true,
    false, false, false, false, false, false, true, false, false, false,
    false, false, false, false, false, false, false, false, false, false,
    false, false, false, true, false, false, false, false, false, false,
    false, false, false, true, false, true, false, false, false, false,
    false, false, true, false
  };

  public static final String[] fieldSpecs = {
    "private SimpleInterface SimpleInterface0",
    "serialized= true   private SimpleInterface SimpleInterface1",
    "embedded= false   private SimpleInterface SimpleInterface2",
    "persistence-modifier= none    private SimpleInterface SimpleInterface3",
    "persistence-modifier= persistent    private SimpleInterface SimpleInterface4",
    "persistence-modifier= persistent  serialized= true   private SimpleInterface SimpleInterface5",
    "persistence-modifier= persistent  embedded= false   private SimpleInterface SimpleInterface6",
    "persistence-modifier= transactional    private SimpleInterface SimpleInterface7",
    "private static SimpleInterface SimpleInterface8",
    "private transient SimpleInterface SimpleInterface9",
    "persistence-modifier= none    private transient SimpleInterface SimpleInterface10",
    "persistence-modifier= persistent    private transient SimpleInterface SimpleInterface11",
    "persistence-modifier= persistent  serialized= true   private transient SimpleInterface SimpleInterface12",
    "persistence-modifier= persistent  embedded= false   private transient SimpleInterface SimpleInterface13",
    "persistence-modifier= transactional    private transient SimpleInterface SimpleInterface14",
    "private final SimpleInterface SimpleInterface15",
    "private volatile SimpleInterface SimpleInterface16",
    "serialized= true   private volatile SimpleInterface SimpleInterface17",
    "embedded= false   private volatile SimpleInterface SimpleInterface18",
    "persistence-modifier= none    private volatile SimpleInterface SimpleInterface19",
    "persistence-modifier= persistent    private volatile SimpleInterface SimpleInterface20",
    "persistence-modifier= persistent  serialized= true   private volatile SimpleInterface SimpleInterface21",
    "persistence-modifier= persistent  embedded= false   private volatile SimpleInterface SimpleInterface22",
    "persistence-modifier= transactional    private volatile SimpleInterface SimpleInterface23",
    "private static transient SimpleInterface SimpleInterface24",
    "private static final SimpleInterface SimpleInterface25",
    "private static volatile SimpleInterface SimpleInterface26",
    "private transient final SimpleInterface SimpleInterface27",
    "private transient volatile SimpleInterface SimpleInterface28",
    "persistence-modifier= none    private transient volatile SimpleInterface SimpleInterface29",
    "persistence-modifier= persistent    private transient volatile SimpleInterface SimpleInterface30",
    "persistence-modifier= persistent  serialized= true   private transient volatile SimpleInterface SimpleInterface31",
    "persistence-modifier= persistent  embedded= false   private transient volatile SimpleInterface SimpleInterface32",
    "persistence-modifier= transactional    private transient volatile SimpleInterface SimpleInterface33",
    "private static transient final SimpleInterface SimpleInterface34",
    "private static transient volatile SimpleInterface SimpleInterface35",
    "public SimpleInterface SimpleInterface36",
    "serialized= true   public SimpleInterface SimpleInterface37",
    "embedded= false   public SimpleInterface SimpleInterface38",
    "persistence-modifier= none    public SimpleInterface SimpleInterface39",
    "persistence-modifier= persistent    public SimpleInterface SimpleInterface40",
    "persistence-modifier= persistent  serialized= true   public SimpleInterface SimpleInterface41",
    "persistence-modifier= persistent  embedded= false   public SimpleInterface SimpleInterface42",
    "persistence-modifier= transactional    public SimpleInterface SimpleInterface43",
    "public static SimpleInterface SimpleInterface44",
    "public transient SimpleInterface SimpleInterface45",
    "persistence-modifier= none    public transient SimpleInterface SimpleInterface46",
    "persistence-modifier= persistent    public transient SimpleInterface SimpleInterface47",
    "persistence-modifier= persistent  serialized= true   public transient SimpleInterface SimpleInterface48",
    "persistence-modifier= persistent  embedded= false   public transient SimpleInterface SimpleInterface49",
    "persistence-modifier= transactional    public transient SimpleInterface SimpleInterface50",
    "public final SimpleInterface SimpleInterface51",
    "public volatile SimpleInterface SimpleInterface52",
    "serialized= true   public volatile SimpleInterface SimpleInterface53",
    "embedded= false   public volatile SimpleInterface SimpleInterface54",
    "persistence-modifier= none    public volatile SimpleInterface SimpleInterface55",
    "persistence-modifier= persistent    public volatile SimpleInterface SimpleInterface56",
    "persistence-modifier= persistent  serialized= true   public volatile SimpleInterface SimpleInterface57",
    "persistence-modifier= persistent  embedded= false   public volatile SimpleInterface SimpleInterface58",
    "persistence-modifier= transactional    public volatile SimpleInterface SimpleInterface59",
    "public static transient SimpleInterface SimpleInterface60",
    "public static final SimpleInterface SimpleInterface61",
    "public static volatile SimpleInterface SimpleInterface62",
    "public transient final SimpleInterface SimpleInterface63",
    "public transient volatile SimpleInterface SimpleInterface64",
    "persistence-modifier= none    public transient volatile SimpleInterface SimpleInterface65",
    "persistence-modifier= persistent    public transient volatile SimpleInterface SimpleInterface66",
    "persistence-modifier= persistent  serialized= true   public transient volatile SimpleInterface SimpleInterface67",
    "persistence-modifier= persistent  embedded= false   public transient volatile SimpleInterface SimpleInterface68",
    "persistence-modifier= transactional    public transient volatile SimpleInterface SimpleInterface69",
    "public static transient final SimpleInterface SimpleInterface70",
    "public static transient volatile SimpleInterface SimpleInterface71",
    "protected SimpleInterface SimpleInterface72",
    "serialized= true   protected SimpleInterface SimpleInterface73",
    "embedded= false   protected SimpleInterface SimpleInterface74",
    "persistence-modifier= none    protected SimpleInterface SimpleInterface75",
    "persistence-modifier= persistent    protected SimpleInterface SimpleInterface76",
    "persistence-modifier= persistent  serialized= true   protected SimpleInterface SimpleInterface77",
    "persistence-modifier= persistent  embedded= false   protected SimpleInterface SimpleInterface78",
    "persistence-modifier= transactional    protected SimpleInterface SimpleInterface79",
    "protected static SimpleInterface SimpleInterface80",
    "protected transient SimpleInterface SimpleInterface81",
    "persistence-modifier= none    protected transient SimpleInterface SimpleInterface82",
    "persistence-modifier= persistent    protected transient SimpleInterface SimpleInterface83",
    "persistence-modifier= persistent  serialized= true   protected transient SimpleInterface SimpleInterface84",
    "persistence-modifier= persistent  embedded= false   protected transient SimpleInterface SimpleInterface85",
    "persistence-modifier= transactional    protected transient SimpleInterface SimpleInterface86",
    "protected final SimpleInterface SimpleInterface87",
    "protected volatile SimpleInterface SimpleInterface88",
    "serialized= true   protected volatile SimpleInterface SimpleInterface89",
    "embedded= false   protected volatile SimpleInterface SimpleInterface90",
    "persistence-modifier= none    protected volatile SimpleInterface SimpleInterface91",
    "persistence-modifier= persistent    protected volatile SimpleInterface SimpleInterface92",
    "persistence-modifier= persistent  serialized= true   protected volatile SimpleInterface SimpleInterface93",
    "persistence-modifier= persistent  embedded= false   protected volatile SimpleInterface SimpleInterface94",
    "persistence-modifier= transactional    protected volatile SimpleInterface SimpleInterface95",
    "protected static transient SimpleInterface SimpleInterface96",
    "protected static final SimpleInterface SimpleInterface97",
    "protected static volatile SimpleInterface SimpleInterface98",
    "protected transient final SimpleInterface SimpleInterface99",
    "protected transient volatile SimpleInterface SimpleInterface100",
    "persistence-modifier= none    protected transient volatile SimpleInterface SimpleInterface101",
    "persistence-modifier= persistent    protected transient volatile SimpleInterface SimpleInterface102",
    "persistence-modifier= persistent  serialized= true   protected transient volatile SimpleInterface SimpleInterface103",
    "persistence-modifier= persistent  embedded= false   protected transient volatile SimpleInterface SimpleInterface104",
    "persistence-modifier= transactional    protected transient volatile SimpleInterface SimpleInterface105",
    "protected static transient final SimpleInterface SimpleInterface106",
    "protected static transient volatile SimpleInterface SimpleInterface107",
    "SimpleInterface SimpleInterface108",
    "serialized= true   SimpleInterface SimpleInterface109",
    "embedded= false   SimpleInterface SimpleInterface110",
    "persistence-modifier= none    SimpleInterface SimpleInterface111",
    "persistence-modifier= persistent    SimpleInterface SimpleInterface112",
    "persistence-modifier= persistent  serialized= true   SimpleInterface SimpleInterface113",
    "persistence-modifier= persistent  embedded= false   SimpleInterface SimpleInterface114",
    "persistence-modifier= transactional    SimpleInterface SimpleInterface115",
    "static SimpleInterface SimpleInterface116",
    "transient SimpleInterface SimpleInterface117",
    "persistence-modifier= none    transient SimpleInterface SimpleInterface118",
    "persistence-modifier= persistent    transient SimpleInterface SimpleInterface119",
    "persistence-modifier= persistent  serialized= true   transient SimpleInterface SimpleInterface120",
    "persistence-modifier= persistent  embedded= false   transient SimpleInterface SimpleInterface121",
    "persistence-modifier= transactional    transient SimpleInterface SimpleInterface122",
    "final SimpleInterface SimpleInterface123",
    "volatile SimpleInterface SimpleInterface124",
    "serialized= true   volatile SimpleInterface SimpleInterface125",
    "embedded= false   volatile SimpleInterface SimpleInterface126",
    "persistence-modifier= none    volatile SimpleInterface SimpleInterface127",
    "persistence-modifier= persistent    volatile SimpleInterface SimpleInterface128",
    "persistence-modifier= persistent  serialized= true   volatile SimpleInterface SimpleInterface129",
    "persistence-modifier= persistent  embedded= false   volatile SimpleInterface SimpleInterface130",
    "persistence-modifier= transactional    volatile SimpleInterface SimpleInterface131",
    "static transient SimpleInterface SimpleInterface132",
    "static final SimpleInterface SimpleInterface133",
    "static volatile SimpleInterface SimpleInterface134",
    "transient final SimpleInterface SimpleInterface135",
    "transient volatile SimpleInterface SimpleInterface136",
    "persistence-modifier= none    transient volatile SimpleInterface SimpleInterface137",
    "persistence-modifier= persistent    transient volatile SimpleInterface SimpleInterface138",
    "persistence-modifier= persistent  serialized= true   transient volatile SimpleInterface SimpleInterface139",
    "persistence-modifier= persistent  embedded= false   transient volatile SimpleInterface SimpleInterface140",
    "persistence-modifier= transactional    transient volatile SimpleInterface SimpleInterface141",
    "static transient final SimpleInterface SimpleInterface142",
    "static transient volatile SimpleInterface SimpleInterface143"
  };

  public int getLength() {
    return fieldSpecs.length;
  }

  public SimpleInterface get(int index) {
    switch (index) {
      case (0):
        return SimpleInterface0;
      case (1):
        return SimpleInterface1;
      case (2):
        return SimpleInterface2;
      case (3):
        return SimpleInterface3;
      case (4):
        return SimpleInterface4;
      case (5):
        return SimpleInterface5;
      case (6):
        return SimpleInterface6;
      case (7):
        return SimpleInterface7;
      case (8):
        return SimpleInterface8;
      case (9):
        return SimpleInterface9;
      case (10):
        return SimpleInterface10;
      case (11):
        return SimpleInterface11;
      case (12):
        return SimpleInterface12;
      case (13):
        return SimpleInterface13;
      case (14):
        return SimpleInterface14;
      case (15):
        return SimpleInterface15;
      case (16):
        return SimpleInterface16;
      case (17):
        return SimpleInterface17;
      case (18):
        return SimpleInterface18;
      case (19):
        return SimpleInterface19;
      case (20):
        return SimpleInterface20;
      case (21):
        return SimpleInterface21;
      case (22):
        return SimpleInterface22;
      case (23):
        return SimpleInterface23;
      case (24):
        return SimpleInterface24;
      case (25):
        return SimpleInterface25;
      case (26):
        return SimpleInterface26;
      case (27):
        return SimpleInterface27;
      case (28):
        return SimpleInterface28;
      case (29):
        return SimpleInterface29;
      case (30):
        return SimpleInterface30;
      case (31):
        return SimpleInterface31;
      case (32):
        return SimpleInterface32;
      case (33):
        return SimpleInterface33;
      case (34):
        return SimpleInterface34;
      case (35):
        return SimpleInterface35;
      case (36):
        return SimpleInterface36;
      case (37):
        return SimpleInterface37;
      case (38):
        return SimpleInterface38;
      case (39):
        return SimpleInterface39;
      case (40):
        return SimpleInterface40;
      case (41):
        return SimpleInterface41;
      case (42):
        return SimpleInterface42;
      case (43):
        return SimpleInterface43;
      case (44):
        return SimpleInterface44;
      case (45):
        return SimpleInterface45;
      case (46):
        return SimpleInterface46;
      case (47):
        return SimpleInterface47;
      case (48):
        return SimpleInterface48;
      case (49):
        return SimpleInterface49;
      case (50):
        return SimpleInterface50;
      case (51):
        return SimpleInterface51;
      case (52):
        return SimpleInterface52;
      case (53):
        return SimpleInterface53;
      case (54):
        return SimpleInterface54;
      case (55):
        return SimpleInterface55;
      case (56):
        return SimpleInterface56;
      case (57):
        return SimpleInterface57;
      case (58):
        return SimpleInterface58;
      case (59):
        return SimpleInterface59;
      case (60):
        return SimpleInterface60;
      case (61):
        return SimpleInterface61;
      case (62):
        return SimpleInterface62;
      case (63):
        return SimpleInterface63;
      case (64):
        return SimpleInterface64;
      case (65):
        return SimpleInterface65;
      case (66):
        return SimpleInterface66;
      case (67):
        return SimpleInterface67;
      case (68):
        return SimpleInterface68;
      case (69):
        return SimpleInterface69;
      case (70):
        return SimpleInterface70;
      case (71):
        return SimpleInterface71;
      case (72):
        return SimpleInterface72;
      case (73):
        return SimpleInterface73;
      case (74):
        return SimpleInterface74;
      case (75):
        return SimpleInterface75;
      case (76):
        return SimpleInterface76;
      case (77):
        return SimpleInterface77;
      case (78):
        return SimpleInterface78;
      case (79):
        return SimpleInterface79;
      case (80):
        return SimpleInterface80;
      case (81):
        return SimpleInterface81;
      case (82):
        return SimpleInterface82;
      case (83):
        return SimpleInterface83;
      case (84):
        return SimpleInterface84;
      case (85):
        return SimpleInterface85;
      case (86):
        return SimpleInterface86;
      case (87):
        return SimpleInterface87;
      case (88):
        return SimpleInterface88;
      case (89):
        return SimpleInterface89;
      case (90):
        return SimpleInterface90;
      case (91):
        return SimpleInterface91;
      case (92):
        return SimpleInterface92;
      case (93):
        return SimpleInterface93;
      case (94):
        return SimpleInterface94;
      case (95):
        return SimpleInterface95;
      case (96):
        return SimpleInterface96;
      case (97):
        return SimpleInterface97;
      case (98):
        return SimpleInterface98;
      case (99):
        return SimpleInterface99;
      case (100):
        return SimpleInterface100;
      case (101):
        return SimpleInterface101;
      case (102):
        return SimpleInterface102;
      case (103):
        return SimpleInterface103;
      case (104):
        return SimpleInterface104;
      case (105):
        return SimpleInterface105;
      case (106):
        return SimpleInterface106;
      case (107):
        return SimpleInterface107;
      case (108):
        return SimpleInterface108;
      case (109):
        return SimpleInterface109;
      case (110):
        return SimpleInterface110;
      case (111):
        return SimpleInterface111;
      case (112):
        return SimpleInterface112;
      case (113):
        return SimpleInterface113;
      case (114):
        return SimpleInterface114;
      case (115):
        return SimpleInterface115;
      case (116):
        return SimpleInterface116;
      case (117):
        return SimpleInterface117;
      case (118):
        return SimpleInterface118;
      case (119):
        return SimpleInterface119;
      case (120):
        return SimpleInterface120;
      case (121):
        return SimpleInterface121;
      case (122):
        return SimpleInterface122;
      case (123):
        return SimpleInterface123;
      case (124):
        return SimpleInterface124;
      case (125):
        return SimpleInterface125;
      case (126):
        return SimpleInterface126;
      case (127):
        return SimpleInterface127;
      case (128):
        return SimpleInterface128;
      case (129):
        return SimpleInterface129;
      case (130):
        return SimpleInterface130;
      case (131):
        return SimpleInterface131;
      case (132):
        return SimpleInterface132;
      case (133):
        return SimpleInterface133;
      case (134):
        return SimpleInterface134;
      case (135):
        return SimpleInterface135;
      case (136):
        return SimpleInterface136;
      case (137):
        return SimpleInterface137;
      case (138):
        return SimpleInterface138;
      case (139):
        return SimpleInterface139;
      case (140):
        return SimpleInterface140;
      case (141):
        return SimpleInterface141;
      case (142):
        return SimpleInterface142;
      case (143):
        return SimpleInterface143;
      default:
        throw new IndexOutOfBoundsException();
    }
  }

  public boolean set(int index, SimpleInterface value) {
    if (fieldSpecs[index].indexOf("final") != -1) return false;
    switch (index) {
      case (0):
        SimpleInterface0 = value;
        break;
      case (1):
        SimpleInterface1 = value;
        break;
      case (2):
        SimpleInterface2 = value;
        break;
      case (3):
        SimpleInterface3 = value;
        break;
      case (4):
        SimpleInterface4 = value;
        break;
      case (5):
        SimpleInterface5 = value;
        break;
      case (6):
        SimpleInterface6 = value;
        break;
      case (7):
        SimpleInterface7 = value;
        break;
      case (8):
        SimpleInterface8 = value;
        break;
      case (9):
        SimpleInterface9 = value;
        break;
      case (10):
        SimpleInterface10 = value;
        break;
      case (11):
        SimpleInterface11 = value;
        break;
      case (12):
        SimpleInterface12 = value;
        break;
      case (13):
        SimpleInterface13 = value;
        break;
      case (14):
        SimpleInterface14 = value;
        break;
      case (16):
        SimpleInterface16 = value;
        break;
      case (17):
        SimpleInterface17 = value;
        break;
      case (18):
        SimpleInterface18 = value;
        break;
      case (19):
        SimpleInterface19 = value;
        break;
      case (20):
        SimpleInterface20 = value;
        break;
      case (21):
        SimpleInterface21 = value;
        break;
      case (22):
        SimpleInterface22 = value;
        break;
      case (23):
        SimpleInterface23 = value;
        break;
      case (24):
        SimpleInterface24 = value;
        break;
      case (26):
        SimpleInterface26 = value;
        break;
      case (28):
        SimpleInterface28 = value;
        break;
      case (29):
        SimpleInterface29 = value;
        break;
      case (30):
        SimpleInterface30 = value;
        break;
      case (31):
        SimpleInterface31 = value;
        break;
      case (32):
        SimpleInterface32 = value;
        break;
      case (33):
        SimpleInterface33 = value;
        break;
      case (35):
        SimpleInterface35 = value;
        break;
      case (36):
        SimpleInterface36 = value;
        break;
      case (37):
        SimpleInterface37 = value;
        break;
      case (38):
        SimpleInterface38 = value;
        break;
      case (39):
        SimpleInterface39 = value;
        break;
      case (40):
        SimpleInterface40 = value;
        break;
      case (41):
        SimpleInterface41 = value;
        break;
      case (42):
        SimpleInterface42 = value;
        break;
      case (43):
        SimpleInterface43 = value;
        break;
      case (44):
        SimpleInterface44 = value;
        break;
      case (45):
        SimpleInterface45 = value;
        break;
      case (46):
        SimpleInterface46 = value;
        break;
      case (47):
        SimpleInterface47 = value;
        break;
      case (48):
        SimpleInterface48 = value;
        break;
      case (49):
        SimpleInterface49 = value;
        break;
      case (50):
        SimpleInterface50 = value;
        break;
      case (52):
        SimpleInterface52 = value;
        break;
      case (53):
        SimpleInterface53 = value;
        break;
      case (54):
        SimpleInterface54 = value;
        break;
      case (55):
        SimpleInterface55 = value;
        break;
      case (56):
        SimpleInterface56 = value;
        break;
      case (57):
        SimpleInterface57 = value;
        break;
      case (58):
        SimpleInterface58 = value;
        break;
      case (59):
        SimpleInterface59 = value;
        break;
      case (60):
        SimpleInterface60 = value;
        break;
      case (62):
        SimpleInterface62 = value;
        break;
      case (64):
        SimpleInterface64 = value;
        break;
      case (65):
        SimpleInterface65 = value;
        break;
      case (66):
        SimpleInterface66 = value;
        break;
      case (67):
        SimpleInterface67 = value;
        break;
      case (68):
        SimpleInterface68 = value;
        break;
      case (69):
        SimpleInterface69 = value;
        break;
      case (71):
        SimpleInterface71 = value;
        break;
      case (72):
        SimpleInterface72 = value;
        break;
      case (73):
        SimpleInterface73 = value;
        break;
      case (74):
        SimpleInterface74 = value;
        break;
      case (75):
        SimpleInterface75 = value;
        break;
      case (76):
        SimpleInterface76 = value;
        break;
      case (77):
        SimpleInterface77 = value;
        break;
      case (78):
        SimpleInterface78 = value;
        break;
      case (79):
        SimpleInterface79 = value;
        break;
      case (80):
        SimpleInterface80 = value;
        break;
      case (81):
        SimpleInterface81 = value;
        break;
      case (82):
        SimpleInterface82 = value;
        break;
      case (83):
        SimpleInterface83 = value;
        break;
      case (84):
        SimpleInterface84 = value;
        break;
      case (85):
        SimpleInterface85 = value;
        break;
      case (86):
        SimpleInterface86 = value;
        break;
      case (88):
        SimpleInterface88 = value;
        break;
      case (89):
        SimpleInterface89 = value;
        break;
      case (90):
        SimpleInterface90 = value;
        break;
      case (91):
        SimpleInterface91 = value;
        break;
      case (92):
        SimpleInterface92 = value;
        break;
      case (93):
        SimpleInterface93 = value;
        break;
      case (94):
        SimpleInterface94 = value;
        break;
      case (95):
        SimpleInterface95 = value;
        break;
      case (96):
        SimpleInterface96 = value;
        break;
      case (98):
        SimpleInterface98 = value;
        break;
      case (100):
        SimpleInterface100 = value;
        break;
      case (101):
        SimpleInterface101 = value;
        break;
      case (102):
        SimpleInterface102 = value;
        break;
      case (103):
        SimpleInterface103 = value;
        break;
      case (104):
        SimpleInterface104 = value;
        break;
      case (105):
        SimpleInterface105 = value;
        break;
      case (107):
        SimpleInterface107 = value;
        break;
      case (108):
        SimpleInterface108 = value;
        break;
      case (109):
        SimpleInterface109 = value;
        break;
      case (110):
        SimpleInterface110 = value;
        break;
      case (111):
        SimpleInterface111 = value;
        break;
      case (112):
        SimpleInterface112 = value;
        break;
      case (113):
        SimpleInterface113 = value;
        break;
      case (114):
        SimpleInterface114 = value;
        break;
      case (115):
        SimpleInterface115 = value;
        break;
      case (116):
        SimpleInterface116 = value;
        break;
      case (117):
        SimpleInterface117 = value;
        break;
      case (118):
        SimpleInterface118 = value;
        break;
      case (119):
        SimpleInterface119 = value;
        break;
      case (120):
        SimpleInterface120 = value;
        break;
      case (121):
        SimpleInterface121 = value;
        break;
      case (122):
        SimpleInterface122 = value;
        break;
      case (124):
        SimpleInterface124 = value;
        break;
      case (125):
        SimpleInterface125 = value;
        break;
      case (126):
        SimpleInterface126 = value;
        break;
      case (127):
        SimpleInterface127 = value;
        break;
      case (128):
        SimpleInterface128 = value;
        break;
      case (129):
        SimpleInterface129 = value;
        break;
      case (130):
        SimpleInterface130 = value;
        break;
      case (131):
        SimpleInterface131 = value;
        break;
      case (132):
        SimpleInterface132 = value;
        break;
      case (134):
        SimpleInterface134 = value;
        break;
      case (136):
        SimpleInterface136 = value;
        break;
      case (137):
        SimpleInterface137 = value;
        break;
      case (138):
        SimpleInterface138 = value;
        break;
      case (139):
        SimpleInterface139 = value;
        break;
      case (140):
        SimpleInterface140 = value;
        break;
      case (141):
        SimpleInterface141 = value;
        break;
      case (143):
        SimpleInterface143 = value;
        break;
      default:
        throw new IndexOutOfBoundsException();
    }
    return true;
  }

  public static class Oid implements Serializable {

    private static final long serialVersionUID = 1L;

    public int identifier;

    public Oid() {}

    public Oid(String s) {
      identifier = Integer.parseInt(justTheId(s));
    }

    public String toString() {
      return this.getClass().getName() + ": " + identifier;
    }

    public int hashCode() {
      return identifier;
    }

    public boolean equals(Object other) {
      if (other != null && (other instanceof Oid)) {
        Oid k = (Oid) other;
        return k.identifier == this.identifier;
      }
      return false;
    }

    protected static String justTheId(String str) {
      return str.substring(str.indexOf(':') + 1);
    }
  }
}
