Оптимизирован код и исправлены некоторые ошибки.