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