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