Revert "Revert 3802c9a..00d0ee5"

This reverts commit 6e1ff143a0f99bfb79f879f739c759c7996c0196.
Revert 2830317..ca2db04

This rolls back to commit 28303175d1e9e3bd3cdf05a244dc19b44c4312f9.
もろもろ復旧