class S1 {
  int s;
  S1([int x = 0]) : s = x - 1;
}

class C1 extends S1 {
  int c;
  C1([super.x]) : c = x + 1;
}

class S2 {
  int s;
  S2({int x = 0}) : s = x - 1;
}

class C2 extends S2 {
  int c;
  C2({super.x}) : c = x + 1;
}

class S3 {
  int s;
  S3([int x = 0]) : s = x - 1;
}

class C3 extends S3 {
  int c;
  C3([super.x = 42]) : c = x + 1;
}

class S4 {
  int s;
  S4({int x = 0}) : s = x - 1;
}

class C4 extends S4 {
  int c;
  C4({super.x = 42}) : c = x + 1;
}

class S5 {
  num a;
  S5([num x = 3.14]) : a = x - 1;
}

class C5 extends S5 {
  C5([int super.x]);
}

class S6 {
  num? a;
  S6([num? x = 3.14]) : a = x;
}

class C6 extends S6 {
  int? b;
  C6([int? super.x]);
}

class D6 extends C6 {
  D6([int super.x]);
}

class S7 {
  int s;
  S7([int x = 0]) : s = x - 1;
}

class C7 extends S7 {
  int c;
  C7([super.x]) : c = x + 1;
}

class CC7 extends C7 {
  int cc;
  CC7([super.x]) : cc = x * 1;
}

class S8 {
  int s;
  S8([int x = 0]) : s = x - 1;
}

class CC8 extends C8 {
  int cc;
  CC8([super.x]) : cc = x * 1;
}

class C8 extends S8 {
  int c;
  C8([super.x]) : c = x + 1;
}

class CC9 extends C9 {
  int cc;
  CC9([super.x]) : cc = x * 1;
}

class C9 extends S9 {
  int c;
  C9([super.x]) : c = x + 1;
}

class S9 {
  int s;
  S9([int x = 0]) : s = x - 1;
}

class Ap {
  Ap([num x = 3.14]);
}

class Bp extends Ap {
  Bp([int super.x]);
  Bp.req(int super.x);
}

class An {
  An({num x = 3.14});
}

class Bn extends An {
  Bn({int super.x});
  Bn.req({required int super.x});
}

main() {}
