8888888b. 888 888 d8888 8888888 888 888
888 Y88b 888 888 d88888 888 888 888
888 888 888 888 d88P888 888 888 888
888 d88P 8888888888 d88P 888 888 Y88b d88P
8888888P" 888 888 d88P 888 888 Y88b d88P
888 888 888 d88P 888 888 Y88o88P
888 888 888 d8888888888 888 Y888P
888 888 888 d88P 888 8888888 Y8P