    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
016**********************************************************************************
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
032**********************************************************************************
    * !  * ! !*! ! *    *    * !  *!!  *   !*!   *!  !*    *    *    *    *    *    *
    * !  * ! !*!!!!*    *!  !*! ! * !  *  ! * !  * !! * !  *    *    *    *   !*    *
    * !  *    *! ! *    *  ! * ! !*!   *  ! * !  *!!!!*!!! *    *!!!!*    *  ! *    *
    *    *    *!!!!*    * !  *! ! *    *  ! * !  * !! * !  * !  *    *    * !  *    *
    * !  *    *! ! *    *!  !* ! !*    *   !*!   *!  !*    *!   *    *!   *!   *    *
048**********************************************************************************
 !! *  ! * !! * !! *  !!*!!!!* !! *!!!!* !! * !! *    *    *    *  !!*!!  * !! *    *
!  !* !! *!  !*!  !* ! !*!   *!   *   !*!  !*!  !*  ! *  ! *    * !! * !! *   !*    *
!  !*  ! *  ! *  ! *!  !*!!! *!!! *  ! * !! * !!!*    *    *    *!!  *  !!*  ! *    *
!  !*  ! * !  *!  !*!!!!*   !*!  !*  ! *!  !*   !*  ! *  ! *    * !! * !! *    *    *
 !! * !!!*!!!!* !! *   !*!!! * !! *  ! * !! * !! *    * !  *    *  !!*!!  *  ! *    *
064**********************************************************************************
 !! * !! *!!! * !!!*!!! *!!!!*!!!!* !!!*!  !* !!!*!!!!*!  !*!   *!  !*!  !* !! *    *
!  !*!  !*!  !*!   *!  !*!   *!   *!   *!  !*  ! *   !*! ! *!   *!!!!*!  !*!  !*    *
! !!*!!!!*!!! *!   *!  !*!!!!*!!! *! !!*!!!!*  ! *   !*!!  *!   *!  !*!! !*!  !*    *
!   *!  !*!  !*!   *!  !*!   *!   *!  !*!  !*  ! *!  !*! ! *!   *!  !*! !!*!  !*    *
 !!!*!  !*!!! * !!!*!!! *!!!!*!   * !! *!  !* !!!* !! *!  !*!!!!*!  !*!  !* !! *    *
080**********************************************************************************
!!! * !! *!!! * !!!*!!!!*!  !*!  !*!  !*!  !*!  !*!!!!*    *    *    *    *    *    *
!  !*!  !*!  !*!   *! ! *!  !*!  !*!  !*!  !*!  !*   !*    *    *    *    *    *    *
!!! *!  !*!!! * !! *  ! *!  !*!  !*!  !* !! * !!!* !! *    *    *    *    *    *    *
!   *! !!*!  !*   !*  ! *!  !* !! *!!!!*!  !*   !*!   *    *    *    *    *    *    *
!   * !!!*!  !*!!! *  ! * !! * !! *!  !*!  !*!!! *!!!!*    *    *    *    *    *    *
096**********************************************************************************
    *    *!   *    *   !*    * !! * !! *!   *    *    *!   * !  *    *    *    *    *
    *    *!   *    *   !*    *!  !*!  !*!   *    *    *!   * !  *    *    *    *    *
    * !!!*!!! * !!!* !!!*!!!!*!!  *!!!!*!!! * !! *  ! *!  !* !  *!!!!*!! !* !! *    *
    *!  !*!  !*!   *!  !*!!  *!   *   !*!  !*  ! *! ! *!!! * !  *!!!!*! !!*!  !*    *
    * !!!*!!! * !!!* !!!*!!!!*!   *!!!!*!  !*  ! * !  *!  !* !! *!  !*!  !* !! *    *
112**********************************************************************************
    * !! *    *    * !  *    *    *    *    *    *    *    *    *    *    *    *    *
    *!  !*!   * !!!*!!! *    *    *    *    *!  !*!!!!*    *    *    *    *    *    *
!!! * !!!*!!! *!   * !  *!  !*!  !*!  !*!  !* !! *  ! *    *    *    *    *    *    *
!!! *   !*!   *   !* ! !*!  !*!  !*! !!* !! *  ! * !  *    *    *    *    *    *    *
!   *  !!*!   *!!! *  ! *!!! * !! *!!!!*!  !*!!  *!!!!*    *    *    *    *    *    *
128**********************************************************************************
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
144**********************************************************************************
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
160**********************************************************************************
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
176**********************************************************************************
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
192**********************************************************************************
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
208**********************************************************************************
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
224**********************************************************************************
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
240**********************************************************************************
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *
