ここから上のコードブロック、改行が一個もなくて見にくいです。

適度に空行を入れて意味のあるコード片にすると読みやすくなります。