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