import org.jetbrains.annotations.*;

class Test {
  @Nullable String foo1() {
    return null;
  }

  @NotNull String foo2() {
    return "";
  }

  String foo3(String s) {
    return s;
  }

  @NotNull String foo4(@NotNull String s) {
    return s.substring(0);
  }

  @NotNull Integer foo5(Integer i) {
    return i++;
  }

  @NotNull Integer foo6(Integer i) {
    if (i == 0) return 1;
    return i * foo6(i--);
  }

  @Nullable Integer foo7(boolean flag) {
    return flag ? null : 1;
  }

  @Nullable Integer foo8(boolean flag) {
    if (flag) {
      return null;
    }
    else {
      return 1;
    }
  }

  @Nullable
  String bar9() {
    return foo3("");
  }

  @Nullable String foo9() {
    return bar9();
  }


  @Nullable
  String bar10() {
    return foo3("");
  }

  @NotNull
  String bar101() {
    return foo3("");
  }

  @Nullable String foo10(boolean flag) {
    return flag ? bar10() : bar101();
  }

  @NotNull String foo11() {
    class Foo{
      @Nullable String mess() {
        return null;
      }
    }
    return "";
  }
}