******************************************************************************************~
******************************************************************************************~
******************************************************************************************~
******************************************************************************************~
******************************************************************************************~
******************************************************************************************~
-******bb****^^********************f**********{*******************************************~
*******^?**++*********i#(*****************#***#*****#**#**********************************~
*******w**************W**************************^*^***+******b#*#b***********************~
******************************************+***+****+*******************b*#b#*b************~
**********************D*D**##*******F**F***F************F****w****************************~
***************************W*********************^*^**+****D*H*********E******************~
***********************************************F****+F************************************~
*******B****B**************D*D**+j*****************************I**************************~
****(s*************F*****#***********************************##**********D**D*************~
****a*************w******************o*******************o***********************bbb******~
v*****************v*************D*D************mmmm******mmmm*************************>***~
6*****************9*****************9********9********9********3*****************9********~
******C*****C**************C*****C********************************C*****C*****C***********~
******************************************************************************************~