abstract class A {
  int get property1;
  void set property1(int i);
  int get property2;
  void set property2(int? i);
  int? get property3;
  void set property3(int i);
  int property4;
  int? property5;
  covariant int property6;
  A(this.property4, this.property5, this.property6);
}

abstract class B1 {
  int get property1;
  int get property2;
  int? get property3;
  final int property4;
  final int property5;
  final int? property6;
  B1(this.property4, this.property5, this.property6);
}

abstract class B2 implements B1 {
  void set property1(int i);
  void set property2(int? i);
  void set property3(int i);
  void set property4(int i);
  void set property5(int? i);
  void set property6(int i);
}

abstract class C1 {
  void set property1(int i);
  void set property2(int? i);
  void set property3(int i);
  int property4;
  int? property5;
  int property6;
  C1(this.property4, this.property5, this.property6);
}

abstract class C2 implements C1 {
  int get property1;
  int get property2;
  int? get property3;
  int get property4;
  int get property5;
  int? get property6;
}

abstract class D1 {
  int get property1;
  int get property2;
  int? get property3;
}

abstract class D2 {
  void set property1(int i);
  void set property2(int? i);
  void set property3(int i);
}

abstract class D3 implements D1, D2 {}

abstract class D4 implements D3 {}

main() {}
