Author: Pavel Ivanovich Lavrenko.