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