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