                                                  ..:-=++*******++==--::::---=----=-----::::::::
                                                   .::-==+++****+===--::::--====--=--:::::::::::
                                                   ..::--==+++++====--::----=====----=.-#-:::...
....                                                ..:::--=========------====-----=*-=@@#:.....
..:-=+=-.-+*.                                        ...:::----======--======+*****%=*%-........
..    =@@@@@==+=-:                                    ...::::---========++++%@@@@@@@@%. ........
.... -@@@@@@@@@@@@=                                    ...:::::--======++++*@@@@@@@@@@*.........
.... :+-*@@@@@@@@@#                                     ...::::--=====++**+*@@@@@@@@@@@: .......
....    #@@@@@@@@@@#                                     ....::--====+++*+*%@@@@@@@@@@#      ...
.....   %@@@@@@@@@@=                                      ....::--=+++**+*%@@@@@@@@@@*.      ...
.....   +@@@@@@@@@@:                                       ...:::-=++***#@@@@@@@@@@*-         ..
....    -@@@@@@@@@@@#=                                       ..::-=+++*@@@@@@@@@@@=          ...
....    *@@@@@@@@@@@@@%:                  ...                ..::-=++#@@@@@@@@@@@%...        ...
...    +@@@@@@@@@@@@@@@@*-          ...........              ..::-==#@@@@@@@@@@@@@:           ..
.     +@@@@@@@@@@@@@@@@@@@*       ..............           ....::--#@@@@@@@@@@@@@@*:           .
     *@@@@@@@@@@@@@@@@@@@@-      ......:.::::....          ...::--*@#@@@@@@@@@@@@@%.           .
    +@@@@@@@@@@@@@@@@@@@@#      ......::::::::.....        ...:--=%*@@@@@@@@@@@@@@@-            
   :@@@@@@@@@@%#@@@@@@@@@#      .....::::::::::....        ...:--+**%@@@@@@@@@@%=@@#            
   -@@@@@@@@@@+*@@@@@@@@@%      ....::::::::::::...        ...:--=+**@@@@@@@@@@#:%@%            
   -@@@@@@@@@%:-+@@@@@@@@@-     ....:::------::::...        ..:--=+++%@@@@@@@@@@@@@@:           
   =@@@@@@@@@=  *@@@@@@@@@#     ....::-------::::....      ..::--==++%@@@@@@@@@@@@@@@*.         
   -@@@@+*%@#  +@@@@@@@@@@@=     ...::::----:::::....     ....:--===+@@@@@@@@@@@@@@@@@@=        
    +#== .%@@:-@@@@@@@@@@@@@.     ..:::::::::::::.............::--==+@@@@@@@@@@@@@@@@@@@+       
         =@+--@@@@@@@@@@@@@@*     ...::::::::::::...........::::--==+@@@@@@@@@@@@@@@@@@@@%:  ...
         -@..%@@@@@@@@@@@@@@@-    ....:::::::::::..........:::::--==*@@@@@@@@@@@@@@@@@@@@@@+. ..
          +-@@@@@@@@@@@@@@@@@%.   ......::::::::.........:::::---==-#@@@@@@@@@@@@@@@@@@@@@@@#...
          :@@@@@@@@@@@@@@@@@@@*   .........::........  ..:::::---===@@@@@@@@@@@@@@@@@@@@@@@@@* .
         -@@@@@@@@@@@@@@@@@@@@@-    ................   ..:::::---==+@@@@@@@@@@@@@@@@@@@@@@@@@%..
        =@@@@@@@@@@@@@@@@@@@@@@%.     ..............   .....::::---=%@@@@@@@@@@@@@@@@@@@@@@@@@-.
       +@@@@@@@@@@@@@@@@@@@@@@@@+        ..........    ......::::---%@@@@@@@@@@@@@@@@@@@@@@@@@+.
      +@@@@@@@@@@@@@@@@@@@@@@@@@@            .         ........::::-%@@@@@@@@@@@@@@@@@@@@@@@@@+:
     :@@@@@@@@@@@@@@@@@@@@@@@@@@@.                     .........:::.=@@@@@@@@@@@@@@@@@@@@@%%%*::
     +@@@@@@@@@@@@@@@@@@@@@@@@@@@:                      ..........:.-@@@@@@@@@@@@@@@@@@@@+-:::::
     :-==-+@@@@@@@@@@@@@@@@@@@%=-                            ........::=@@@%%@@@@@#+++++-:----::
           =+++*@@@@@@@@+==++=                                  ........%@@..@@@+.....:::---::::
               :@@%:.%@%                                              . #@@. +@@+ ...:::::::::::
