Problem Display
PID: 5705 (2B3q1/2Np1ppN/1r3P2/r3PkpP/6Rb/2PR1PBK/b3p1P1/1Q6 w - - 0 1)

Keller, Michael

1st Prize, Schach-Aktiv, 1985

2B3q1/2Np1ppN/1r3P2/r3PkpP/6Rb/2PR1PBK/b3p1P1/1Q6

#3

14 + 11


3748 FIDE Album (1983-1985) 1992
4655 Michael Keller Ein Meister der Schachkomposition 1994

SOLUTION


  • SOUND
  • Sets
    • 1...Qxh7
      • 2.Rxd7+
        • 2...Rxb1
          • 3.Rd5#
        • 2...Bxb1
          • 3.Rd6#
    • 1...Ra3
      • 2.Rd5+
        • 2...Rxb1
          • 3.Bxd7#
        • 2...Bxb1
          • 3.e6#
    • 1...Ra4
      • 2.Rd5+
        • 2...Re4
          • 3.Qxe4#
          • 3.fxe4#
        • 2...Rxb1
          • 3.Bxd7#
        • 2...Bxb1
          • 3.e6#
    • 1...Rd5
      • 2.Rxd5+
        • 2...Rxb1
          • 3.Bxd7#
        • 2...Bxb1
          • 3.e6#
    • 1...Rxe5
      • 2.Re3+
        • 2...Re4
          • 3.Qxe4#
          • 3.fxe4#
        • 2...Rxb1
          • 3.Rxe5#
        • 2...Bxb1
          • 3.Rxe5#
      • 2.Rd5+
        • 2...Rxb1
          • 3.Bxd7#
          • 3.Rxe5#
        • 2...Bxb1
          • 3.Rxe5#
    • 1...Ra7
      • 2.Rd5+
        • 2...Rxb1
          • 3.Bxd7#
        • 2...Bxb1
          • 3.e6#
    • 1...Ra8
      • 2.Rd5+
        • 2...Rxb1
          • 3.Bxd7#
        • 2...Bxb1
          • 3.e6#
    • 1...Rb2
      • 2.Rd5+
        • 2...Rxb1
          • 3.Bxd7#
        • 2...Rc2
          • 3.Bxd7#
          • 3.Qxc2#
        • 2...Bxb1
          • 3.Bxd7#
    • 1...Rb3
      • 2.Bxd7#
    • 1...Rb4
      • 2.Rd5+
        • 2...Rxb1
          • 3.Bxd7#
        • 2...Re4
          • 3.Bxd7#
          • 3.Qxe4#
          • 3.fxe4#
        • 2...Bxb1
          • 3.Bxd7#
    • 1...Rb5
      • 2.Rd5+
        • 2...Rxb1
          • 3.Bxd7#
        • 2...Bxb1
          • 3.Bxd7#
    • 1...Ra6
      • 2.Rd6+
        • 2...Bxb1
          • 3.Bxd7#
    • 1...Rc6
      • 2.Rd6+
        • 2...Bxb1
          • 3.Bxd7#
    • 1...Rd6
      • 2.Rxd6+
        • 2...Bxb1
          • 3.Bxd7#
    • 1...Rb7
      • 2.Rd5+
        • 2...Rxb1
          • 3.Bxd7#
        • 2...Bxb1
          • 3.Bxd7#
    • 1...Rb8
      • 2.Rd5+
        • 2...Rxb1
          • 3.Bxd7#
        • 2...Bxb1
          • 3.Bxd7#
    • 1...Bb3
      • 2.Rd1+
        • 2...Bc2
          • 3.Qxc2#
      • 2.Rd2+
        • 2...Bc2
          • 3.Qxc2#
      • 2.Re3+
        • 2...Bc2
          • 3.Qxc2#
      • 2.Rdd4+
        • 2...Bc2
          • 3.Qxc2#
      • 2.Rd5+
        • 2...Bc2
          • 3.Qxc2#
      • 2.Rd6+
        • 2...Bc2
          • 3.Bxd7#
          • 3.Qxc2#
      • 2.Rxd7+
        • 2...Bc2
          • 3.Qxc2#
    • 1...Bc4
      • 2.Rd5+
        • 2...Rxb1
          • 3.Bxd7#
        • 2...Bd3
          • 3.Qxd3#
    • 1...Bd5
      • 2.Rxd5+
        • 2...Rxb1
          • 3.Bxd7#
    • 1...Bxg3
      • 2.Rdd4+
        • 2...Kxe5
          • 3.Rxg5#
          • 3.Qe4#
        • 2...Rxb1
          • 3.Rxg5#
        • 2...Bxb1
          • 3.Rxg5#
      • 2.Rxg5+
        • 2...Kf4
          • 3.Qc1#
    • 1...gxf6
      • 2.Rd6+
        • 2...Rxb1
          • 3.Rxf6#
        • 2...Bxb1
          • 3.Bxd7#
  • Tries
    • 1.Sb5?
      • threat
        • 2.Sd4#
      • 1...Rbxb5
        • 2.Rd5+
          • 2...Ke6
            • 3.Rd6#
          • 2...Rxb1
            • 3.Bxd7#
          • 2...Bxb1
            • 3.Bxd7#
      • 1...Bxg3
        • 2.Re3+
          • 2...Ke6
            • 3.Sc7#
          • 2...Bxb1
            • 3.Sd4#
        • 2.Rd5+
          • 2...Ke6
            • 3.Sc7#
          • 2...Bxb1
            • 3.Sd4#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Qc1#
          • 2...Ke6
            • 3.Sc7#
            • 3.Bxd7#
      • 1...Ra4
        • 2.Bxd7+
          • 2...Re6
            • 3.Sd6#
          • 2...Be6
            • 3.Rdd4#
        • 2.Rd6+
          • 2...Re4
            • 3.Sd4#
            • 3.Qxe4#
            • 3.fxe4#
          • 2...Bxb1
            • 3.Bxd7#
      • 1...Rd6
        • 2.Rd5+
          • 2...Ke6
            • 3.Sc7#
            • 3.Rxd6#
          • 2...Bxb1
            • 3.Sd4#
        • 2.Rxd6+
          • 2...Bxb1
            • 3.Sd4#
            • 3.Bxd7#
      • 1...Raxb5!
    • 1.Bxh4?
      • threat
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Bg3#
            • 3.Rxg5#
            • 3.Qe4#
          • 2...Rxb1
            • 3.Rxg5#
          • 2...Bxb1
            • 3.Rxg5#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.Qc1#
            • 3.g3#
      • 1...Kxe5
        • 2.Bg3+
          • 2...Kf5
            • 3.Rd5#
            • 3.Rxg5#
        • 2.Re3+
          • 2...Kd6
            • 3.Qxb6#
        • 2.Rd5+
          • 2...Rxd5
            • 3.Bg3#
          • 2...Bxd5
            • 3.Bg3#
        • 2.Re4+
          • 2...Kf5
            • 3.g4#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.Qc1#
            • 3.g3#
      • 1...Qxh7
        • 2.Rxg5+
          • 2...Kf4
            • 3.Qc1#
            • 3.g3#
      • 1...Rxe5
        • 2.Rdd4+
          • 2...Re4
            • 3.Qxe4#
          • 2...Rxb1
            • 3.Rxg5#
          • 2...Bxb1
            • 3.Rxg5#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.g3#
      • 1...Rxb1
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.g3#
      • 1...Rxf6
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Qe4#
          • 2...Bxb1
            • 3.Rxg5#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.Qc1#
            • 3.g3#
      • 1...Bxb1
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.g3#
      • 1...gxh4
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Rg5#
            • 3.Qe4#
            • 3.f4#
          • 2...Rxb1
            • 3.Rg5#
          • 2...Bxb1
            • 3.Rg5#
        • 2.Rg5+
          • 2...Kf4
            • 3.Qc1#
      • 1...e1Q
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Rxg5#
          • 2...Qxb1
            • 3.Rxg5#
          • 2...Qe4
            • 3.Qxe4#
          • 2...Rxb1
            • 3.Rxg5#
          • 2...Bxb1
            • 3.Rxg5#
      • 1...e1S
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Bg3#
            • 3.Rxg5#
            • 3.Qe4#
          • 2...Rxb1
            • 3.Rxg5#
          • 2...Bxb1
            • 3.Rxg5#
          • 2...Sc2
            • 3.Rxg5#
          • 2...Sd3
            • 3.Rxg5#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.Qc1#
            • 3.g3#
      • 1...e1B
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Rxg5#
            • 3.Qe4#
          • 2...Rxb1
            • 3.Rxg5#
          • 2...Bxb1
            • 3.Rxg5#
      • 1...e1R
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Bg3#
            • 3.Rxg5#
          • 2...Rexb1
            • 3.Rxg5#
          • 2...Re4
            • 3.Qxe4#
          • 2...Rbxb1
            • 3.Rxg5#
          • 2...Bxb1
            • 3.Rxg5#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.g3#
      • 1...Rab5
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Bg3#
            • 3.Rxg5#
            • 3.Qe4#
          • 2...Rxb1
            • 3.Rxg5#
          • 2...Bxb1
            • 3.Rxg5#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.Qc1#
            • 3.g3#
      • 1...Rd5
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Bg3#
          • 2...Rxb1
            • 3.Rxg5#
          • 2...Bxb1
            • 3.Rxg5#
        • 2.Rxd5+
          • 2...Rxb1
            • 3.Bxd7#
          • 2...Bxb1
            • 3.e6#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.Qc1#
            • 3.g3#
      • 1...Rb2
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Bg3#
            • 3.Rxg5#
            • 3.Qe4#
          • 2...Rxb1
            • 3.Rxg5#
          • 2...Rc2
            • 3.Rxg5#
          • 2...Bxb1
            • 3.Rxg5#
        • 2.Rd5+
          • 2...Rxb1
            • 3.Bxd7#
          • 2...Rc2
            • 3.Bxd7#
            • 3.Qxc2#
          • 2...Bxb1
            • 3.Bxd7#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.g3#
      • 1...Rb3
        • 2.Bg3
          • threat
            • 3.Bxd7#
            • 3.Rxg5#
        • 2.Bxd7+
          • 2...Kxe5
            • 3.Bg3#
            • 3.Re4#
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Bg3#
            • 3.Rxg5#
            • 3.Qe4#
          • 2...Rxb1
            • 3.Rxg5#
          • 2...Bxb1
            • 3.Rxg5#
        • 2.Rd5+
          • 2...Rxb1
            • 3.Bxd7#
          • 2...Bxb1
            • 3.Bxd7#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.Qc1#
            • 3.g3#
      • 1...Rb4
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Bg3#
            • 3.Rxg5#
            • 3.Qe4#
          • 2...Rxb1
            • 3.Rxg5#
          • 2...Bxb1
            • 3.Rxg5#
        • 2.Rd5+
          • 2...Rxb1
            • 3.Bxd7#
          • 2...Re4
            • 3.Bxd7#
            • 3.Qxe4#
            • 3.fxe4#
          • 2...Bxb1
            • 3.Bxd7#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.Qc1#
            • 3.g3#
      • 1...Rbb5
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Bg3#
            • 3.Rxg5#
            • 3.Qe4#
          • 2...Rxb1
            • 3.Rxg5#
          • 2...Bxb1
            • 3.Rxg5#
        • 2.Rd5+
          • 2...Rxb1
            • 3.Bxd7#
          • 2...Bxb1
            • 3.Bxd7#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.Qc1#
            • 3.g3#
      • 1...Rba6
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Bg3#
            • 3.Rxg5#
            • 3.Qe4#
          • 2...Bxb1
            • 3.Rxg5#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.Qc1#
            • 3.g3#
      • 1...Rc6
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Bg3#
            • 3.Rxg5#
            • 3.Qe4#
          • 2...Bxb1
            • 3.Rxg5#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.Qc1#
            • 3.g3#
      • 1...Rd6
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Bg3#
            • 3.Rxg5#
            • 3.Qe4#
          • 2...Bxb1
            • 3.Rxg5#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.Qc1#
            • 3.g3#
      • 1...Re6
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Bg3#
            • 3.Rxg5#
            • 3.Qe4#
          • 2...Bxb1
            • 3.Rxg5#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.Qc1#
            • 3.g3#
      • 1...Rb7
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Bg3#
            • 3.Rxg5#
            • 3.Qe4#
          • 2...Rxb1
            • 3.Rxg5#
          • 2...Bxb1
            • 3.Rxg5#
        • 2.Rd5+
          • 2...Rxb1
            • 3.Bxd7#
          • 2...Bxb1
            • 3.Bxd7#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.Qc1#
            • 3.g3#
      • 1...Rb8
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Bg3#
            • 3.Rxg5#
            • 3.Qe4#
          • 2...Rxb1
            • 3.Rxg5#
          • 2...Bxb1
            • 3.Rxg5#
        • 2.Rd5+
          • 2...Rxb1
            • 3.Bxd7#
          • 2...Bxb1
            • 3.Bxd7#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.Qc1#
            • 3.g3#
      • 1...Bb3
        • 2.Re3+
          • 2...Bc2
            • 3.Qxc2#
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Bg3#
            • 3.Rxg5#
            • 3.Qe4#
          • 2...Bc2
            • 3.Rxg5#
        • 2.Rd5+
          • 2...Bc2
            • 3.Qxc2#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.Qc1#
            • 3.g3#
      • 1...Bc4
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Bg3#
            • 3.Rxg5#
            • 3.Qe4#
          • 2...Rxb1
            • 3.Rxg5#
          • 2...Bd3
            • 3.Rxg5#
        • 2.Rd5+
          • 2...Rxb1
            • 3.Bxd7#
          • 2...Bd3
            • 3.Qxd3#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.Qc1#
            • 3.g3#
      • 1...Bd5
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Bg3#
          • 2...Rxb1
            • 3.Rxg5#
          • 2...Be4
            • 3.Qxe4#
        • 2.Rxd5+
          • 2...Rxb1
            • 3.Bxd7#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bg3#
            • 3.Qc1#
            • 3.g3#
      • 1...Be6
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Bg3#
            • 3.Qe4#
          • 2...Rxb1
            • 3.Rxg5#
      • 1...gxf6!
    • 1.Rd5+?
      • 1...Rxb1
        • 2.Bxd7#
      • 1...Bxb1!
    • 1.Rd6+?
      • 1...Bxb1
        • 2.Bxd7#
      • 1...Rxb1!
    • 1.Rf4+?
      • 1...Kxe5
        • 2.Kg4
          • threat
            • 3.Re4#
            • 3.Rf5#
          • 2...gxf4
            • 3.Bxf4#
        • 2.Re3+
          • 2...Kd6
            • 3.Qxb6#
        • 2.Rd5+
          • 2...Rxd5
            • 3.Rxh4#
            • 3.Rf5#
          • 2...Bxd5
            • 3.Rxh4#
            • 3.Rf5#
        • 2.Rxh4+
          • 2...Kf5
            • 3.Rd5#
        • 2.Rf5+
          • 2...Kxf5
            • 3.Rd5#
      • 1...gxf4!
    • 1.Qc2?
      • threat
        • 2.Rd1#
        • 2.Rd2#
        • 2.Re3#
        • 2.Rdd4#
        • 2.Rd5#
        • 2.Rd6#
        • 2.Rxd7#
      • 1...Rb2
        • 2.Rd5+
          • 2...Rxc2
            • 3.Bxd7#
      • 1...Bb1
        • 2.Rd6+
          • 2...Bxc2
            • 3.Bxd7#
      • 1...Bb3
        • 2.Rd6+
          • 2...Bxc2
            • 3.Bxd7#
      • 1...Bc4
        • 2.Rd1+
          • 2...Bd3
            • 3.Qxd3#
        • 2.Rd2+
          • 2...Bd3
            • 3.Qxd3#
        • 2.Re3+
          • 2...Bd3
            • 3.Qxd3#
        • 2.Rdd4+
          • 2...Bd3
            • 3.Qxd3#
        • 2.Rd5+
          • 2...Bd3
            • 3.Qxd3#
        • 2.Rd6+
          • 2...Bd3
            • 3.Bxd7#
            • 3.Qxd3#
        • 2.Rxd7+
          • 2...Bd3
            • 3.Qxd3#
      • 1...e1S!
    • 1.Qc1?
      • threat
        • 2.Rf4+
          • 2...Kxe5
            • 3.Qe3#
          • 2...gxf4
            • 3.Qxf4#
        • 2.Rxg5+
          • 2...Bxg5
            • 3.Qxg5#
        • 2.Qxg5+
          • 2...Bxg5
            • 3.Rxg5#
      • 1...Rxe5
        • 2.Rf4+
          • 2...gxf4
            • 3.Qxf4#
        • 2.Rxg5+
          • 2...Bxg5
            • 3.Qxg5#
        • 2.Qf4+
          • 2...gxf4
            • 3.Rxf4#
        • 2.Qxg5+
          • 2...Bxg5
            • 3.Rxg5#
      • 1...gxf6
        • 2.Rf4+
          • 2...Kxe5
            • 3.Qe3#
          • 2...gxf4
            • 3.Qxf4#
      • 1...e1Q
        • 2.Rf4+
          • 2...Kxe5
            • 3.Qxe1#
          • 2...gxf4
            • 3.Qxf4#
        • 2.Rxg5+
          • 2...Bxg5
            • 3.Qxg5#
        • 2.Qxg5+
          • 2...Bxg5
            • 3.Rxg5#
      • 1...e1S
        • 2.Rf4+
          • 2...Kxe5
            • 3.Qe3#
            • 3.Qxe1#
          • 2...gxf4
            • 3.Qxf4#
        • 2.Rxg5+
          • 2...Bxg5
            • 3.Qxg5#
        • 2.Qxg5+
          • 2...Bxg5
            • 3.Rxg5#
      • 1...e1B
        • 2.Rf4+
          • 2...Kxe5
            • 3.Qe3#
            • 3.Qxe1#
          • 2...gxf4
            • 3.Qxf4#
        • 2.Rxg5+
          • 2...Bxg5
            • 3.Qxg5#
        • 2.Qxg5+
          • 2...Bxg5
            • 3.Rxg5#
      • 1...e1R
        • 2.Rf4+
          • 2...Kxe5
            • 3.Qxe1#
          • 2...gxf4
            • 3.Qxf4#
        • 2.Rxg5+
          • 2...Bxg5
            • 3.Qxg5#
        • 2.Qxg5+
          • 2...Bxg5
            • 3.Rxg5#
      • 1...Ra4
        • 2.Rxg5+
          • 2...Bxg5
            • 3.Qxg5#
        • 2.Qxg5+
          • 2...Bxg5
            • 3.Rxg5#
      • 1...Rd5
        • 2.Rxg5+
          • 2...Bxg5
            • 3.Qxg5#
        • 2.Qxg5+
          • 2...Bxg5
            • 3.Rxg5#
      • 1...Rb4
        • 2.Rxg5+
          • 2...Bxg5
            • 3.Qxg5#
        • 2.Qxg5+
          • 2...Bxg5
            • 3.Rxg5#
      • 1...Rd6
        • 2.Rf4+
          • 2...Kxe5
            • 3.Re3#
            • 3.Qe3#
          • 2...gxf4
            • 3.Qxf4#
        • 2.Rxg5+
          • 2...Bxg5
            • 3.Qxg5#
        • 2.Qxg5+
          • 2...Bxg5
            • 3.Rxg5#
      • 1...Bd5
        • 2.Rxg5+
          • 2...Bxg5
            • 3.Qxg5#
        • 2.Qxg5+
          • 2...Bxg5
            • 3.Rxg5#
      • 1...Be6
        • 2.Rxg5+
          • 2...Bxg5
            • 3.Qxg5#
        • 2.Qxg5+
          • 2...Bxg5
            • 3.Rxg5#
      • 1...Qxh7!
  • Keys
    • 1.Bh2!
      • threat
        • 2.Rxg5+
          • 2...Bxg5
            • 3.g4#
      • 1...Qxh7
        • 2.Rxd7+
          • 2...Rxb1
            • 3.Rd5#
          • 2...Bxb1
            • 3.Rd6#
      • 1...gxf6
        • 2.Rd6+
          • 2...Rxb1
            • 3.Rxf6#
          • 2...Bxb1
            • 3.Bxd7#
      • 1...Bg3
        • 2.Rdd4+
          • 2...Kxe5
            • 3.Bxg3#
            • 3.Rxg5#
            • 3.Qe4#
          • 2...Rxb1
            • 3.Rxg5#
          • 2...Bxb1
            • 3.Rxg5#
        • 2.Rxg5+
          • 2...Kf4
            • 3.Bxg3#
            • 3.Qc1#
      • 1...Ra4
        • 2.Rd5+
          • 2...Re4
            • 3.Qxe4#
            • 3.fxe4#
          • 2...Rxb1
            • 3.Bxd7#
          • 2...Bxb1
            • 3.e6#
      • 1...Rb4
        • 2.Rd5+
          • 2...Rxb1
            • 3.Bxd7#
          • 2...Re4
            • 3.Bxd7#
            • 3.Qxe4#
            • 3.fxe4#
          • 2...Bxb1
            • 3.Bxd7#

FEATURES


NOT CLASSIFIED


Developed and maintained by Brian Stephenson.
Implemented with HTML5, MySQL, Perl (with, inter alia, CGI::Simple, HTML::Template & XML::LibXML) & CSS/Javascript (jQuery, Bootstrap & DataTables).