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