'########::'#######:::'#######::'##:::::::::'#######:::::'##:::
 ##.....::'##.... ##:'##.... ##: ##:::'##::'##.... ##::'####:::
 ##:::::::..::::: ##: ##:::: ##: ##::: ##:: ##:::: ##::.. ##:::
 #######:::'#######::: #######:: ##::: ##::: ########:::: ##:::
...... ##:'##::::::::'##.... ##: #########::...... ##:::: ##:::
'##::: ##: ##:::::::: ##:::: ##:...... ##::'##:::: ##:::: ##:::
. ######:: #########:. #######:::::::: ##::. #######:::'######:
:......:::.........:::.......:::::::::..::::.......::::......::