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