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