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