oooooooooooo               ooooo      ooo    .oooooo.                  oooooooo 
d'""""""d888' `888b. `8' d8P' `Y8b dP"""""""
.888P oooo ooo 8 `88b. 8 888 .oooooooo d88888b.
d888' `88b..8P' 8 `88b. 8 888 888' `88b `Y88b
.888P Y888' 8 `88b.8 888 888 888 ]88
d888' .P .o8"'88b 8 `888 `88b ooo `88bod8P' o. .88P
.8888888888P o88' 888o o8o `8 `Y8bood8P' `8oooooo. `8bd88P'
d" YD
"Y88888P'