__ __ _ _____ ____ _
| \/ | __ _ _ __ | |__ |_ _| _ __ _ _ __ | __ )| | ___ __ _
| |\/| |/ _` | '_ \| '_ \ | || | | |/ _` | '_ \ | _ \| |/ _ \ / _` |
| | | | (_| | | | | | | | | || |_| | (_| | | | | | |_) | | (_) | (_| |
|_| |_|\__,_|_| |_|_| |_| |_| \__,_|\__,_|_| |_| |____/|_|\___/ \__, |
|___/
'##::::'##::::'###::::'##::: ##:'##::::'##::::'########:'##::::'##::::'###::::'##::: ##::::'########::'##::::::::'#######:::'######:::
###::'###:::'## ##::: ###:: ##: ##:::: ##::::... ##..:: ##:::: ##:::'## ##::: ###:: ##:::: ##.... ##: ##:::::::'##.... ##:'##... ##::
####'####::'##:. ##:: ####: ##: ##:::: ##::::::: ##:::: ##:::: ##::'##:. ##:: ####: ##:::: ##:::: ##: ##::::::: ##:::: ##: ##:::..:::
## ### ##:'##:::. ##: ## ## ##: #########::::::: ##:::: ##:::: ##:'##:::. ##: ## ## ##:::: ########:: ##::::::: ##:::: ##: ##::'####:
##. #: ##: #########: ##. ####: ##.... ##::::::: ##:::: ##:::: ##: #########: ##. ####:::: ##.... ##: ##::::::: ##:::: ##: ##::: ##::
##:.:: ##: ##.... ##: ##:. ###: ##:::: ##::::::: ##:::: ##:::: ##: ##.... ##: ##:. ###:::: ##:::: ##: ##::::::: ##:::: ##: ##::: ##::
##:::: ##: ##:::: ##: ##::. ##: ##:::: ##::::::: ##::::. #######:: ##:::: ##: ##::. ##:::: ########:: ########:. #######::. ######:::
..:::::..::..:::::..::..::::..::..:::::..::::::::..::::::.......:::..:::::..::..::::..:::::........:::........:::.......::::......::::