oooooooooooo oooooo oooo oooooo oooooo oooo oooooo oooo .o. .oooooo.
d'""""""d888' `888. .8' `888. `888. .8' `888. .8' .888. d8P' `Y8b
.888P `888. .8' `888. .8888. .8' `888. .8' .8"888. 888
d888' `888.8' `888 .8'`888. .8' `888. .8' .8' `888. 888
.888P `888' `888.8' `888.8' `888.8' .88ooo8888. 888
d888' .P 888 `888' `888' `888' .8' `888. `88b ooo
.8888888888P o888o `8' `8' `8' o88o o8888o `Y8bood8P'