__######__######__#######__######__#######_######__##____##
_##_______##___##_##______##_______##___##_##___##__##__##_
_##__###__##___##_#####___##__###__##___##_##___##___####__
_##____##_######__##______##____##_##___##_######_____##___
_##____##_##___##_##______##____##_##___##_##___##___##____
__######__##___##_#######__######__#######_##___##__##_____