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