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