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