По большей части авторство этого не моё, просто собрал в одно место, чтобы самому удобней было