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