###########################################################********************#
###########################################################************##******#
#######################################*++==++*############*********+***********
####**#################***########**===-::::::::-++*#######*******++++***+*****#
**+++**############*******######*+-::...::::::::...:=*#####*******++++***+**+***
++++++*******#####********####*=-:.::....:.......    .*####*****++++++*+++**+***
+++++=+++++=++***************=:.:............  ..     .####****+++++++*+++**+***
+++==========+++***###****++=:..::::::....             -###****++++=+++++++*+***
+++=+=========++**####****+=::::----==-:...            .###****+++==++++++******
++++++++======++**********+-..-===+++++-...            .###****+++==+++++*****##
****+**+++=====+++++++++**+-..=**+****+=:.     ..      .*##***++++=++++******###
*********++======++++++****-:=*******+++==::....        +##***+++++++++********#
**********++==-===++++*****+=#*+===+*****++==-::.       =##****+++==++++********
**********++++====+++*****#*+#*++--++**+=-::-::::..    .+##****+++=-===++++*+***
######*******++++++++****##**#***==+**+=----:::::::    =###****+++=====+++******
###########****+++++****###*####****#*+==++=--:--:: .-:+###*****+++=+=++****####
##############**+++*****#########*###*+==++++===-:..:-=######***+++=++**********
##############**********########****#*+==+++++==-:.:--*######****+++++*********#
###############**###***########**#***+---=+*++=--::-=*########****+++*********##
*******########################******+=====+==----#############***++*********###
*+++++*########################****+++==--===---=*##############*************###
+==-=+*#########################*#**++=---=----=*###############*************###
==---=*##########################****++=---:::-=################***************#
-----=+*****++**********######+*****++==--::..  -*##############***+++*********#
-----=+++**++=-===++++**#####*.+***+=--:..       -**############**++++**++*****#
-:--==++*****++++++*****#####+:=*+=-:.           .-*############**+++++**+*****#
:::-==++**####************++=:..::....          ...-*##########***+++++*++**+**#
:::-==++**#####******++====-..::......    .....:..:.:=+########**+++++++++**+**#
-::-===+++*******++==---=-: :::.       ..::::::..::::::-+####***+++++++*****+***
=--===========+===-----=-. .:.    .  ..:::::...:::::::::::-+***++++++++*++**+**#
+++===+==========-----=-. .::.  .... .:::::. .::::::::::::::---==++=+++*+++*+*+*
***+++++++***====-=--=-: .:::   ....::::--. :::::::::::::::... :====+++++++*****
##*******###*======-=-: .::::  ....:-----..:-------:::::::.... :====++++++******
###*########*=====---: .::-:.  ..:-----:.:-----------::::..... .===--====+++++**
############*=====-=: ..::::.  .:-----::-=====----:-::::::...  .==-:---====+++**
############++=====-....:::.  .:-----=+********=:-::::::::.... .-==::-----====+*
############=+====-. ..::::.  :----::----------:::::::::::.... .-==:::---=-===++
###########*=+====:  ..::::  :----::-----:-----::::::::::::... .-==::-----====++
###########+=====-. ...:::. :----::------::----::.:::::::::...  -==----====++=++
#####******+====-:  ...:::.:----:-------::::--::..:::::::::...  -======+++++++++
#####**++**===---.  ..:::::----:------:::::::::: .:::::::::...  -==+++++********
######****+-==--:   ..::::---:.----:::::::::-::. ::::::::::..   -==+++++********
##########+-==--.   .::::---:.:---::::::::::::.  :::::::::...   -==+++++********
##########=-==--   .::::---:.:----::::::::::::. .::-::::::....  -==++++++*******