****************** ***** ******** ******* ********
** *** **** *** ****** **** **** *** * ******** ****** **** * ***** ***** ******* ******
********
****** *** ****** ** **** ** **** *** ****** ***** ******* **** * ********************************************************************************
** **** ****** ********* *** ******* ** **** ***** ***** *** *** **** *** **** * ***** ***** *******
****** *** *******
** *** **** *** ****** **** **** *** * ******** ****** **** * ***** ***** ******* ******
********
****** *** ****** ** **** ** **** *** ****** ***** ******* **** * ********************************************************************************
** **** ****** ********* *** ******* ** **** ***** ***** *** *** **** *** **** * ***** ***** *******
****** *** *******