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