@@@@@@@@   @@@  @@@  @@@@@@@@  @@@@@@@@       @@@  @@@  @@@@@@@@  @@@@@@@
@@@@@@@@@@  @@@  @@@  @@@@@@@@  @@@@@@@@       @@@@ @@@  @@@@@@@@  @@@@@@@
@@!   @@@@  @@!  !@@       @@!  @@!            @@!@!@@@  @@!         @@!  
!@!  @!@!@  !@!  @!!      !@!   !@!            !@!!@!@!  !@!         !@!  
@!@ @! !@!   !@@!@!      @!!    @!!!:!         @!@ !!@!  @!!!:!      @!!  
!@!!!  !!!    @!!!      !!!     !!!!!:         !@!  !!!  !!!!!:      !!!  
!!:!   !!!   !: :!!    !!:      !!:            !!:  !!!  !!:         !!:  
:!:    !:!  :!:  !:!  :!:       :!:       :!:  :!:  !:!  :!:         :!:  
::::::: ::   ::  :::   ::        ::       :::   ::   ::   :: ::::     ::  
 : : :  :    :   ::   : :        :        :::  ::    :   : :: ::      :