ooooo ooo .o. .oooo. oooo oooo
`888' `8' .888. .dP""Y88b `888 `888
888 8 .8"888. ]8P' .ooooo. 888 888 oooo
888 8 .8' `888. .d8P' d88' `88b 888 888 .8P'
888 8 .88ooo8888. .dP' 888ooo888 888 888888.
`88. .8' .8' `888. .oP .o 888 .o 888 888 `88b.
`YbodP' o88o o8888o 8888888888 `Y8bod8P' o888o o888o o888o