Исправлены некоторые логические ошибки.