Всё, что помечено * я спёрла. Остальное написала сама.