      ###   ######    ######  ########       #######   ######    ######  #######  #######    ######  
      ###  ########  #######  ########      ########  ########  #######  #######  ########  ######## 
      ##+  ##+  ###  +##      ##+           +##       ##+  ###  +##        ##+    ##+  ###  ##+  ### 
      +#+  +#+  #+#  +#+      +#+           +#+       +#+  #+#  +#+        +#+    +#+  #+#  +#+  #+# 
      ++#  #+#  +#+  ++##++   #+++.+        +#+       #+#+#+#+  ++##++     #++    #+#++#+   #+#  +#+ 
      +++  +#+  +++   ++#+++  +++++.        +++       +++#++++   ++#+++    +++    ++#+#+    +#+  +++ 
      ++.  ++.  +++      +.+  ++.           .++       ++.  +++      +.+    ++.    ++. .++   ++.  +++ 
 ++.  .+.  .+.  +.+      +.+  .+.           .+.       .+.  +.+      +.+    .+.    .+.  +.+  .+.  +.+ 
 ... . ..  ..... ..  .... ..   .. ....       ... ...  ..   ...  .... ..     ..    ..   ...  ..... .. 
  . ...     . .  .   .. . .   . .. ..        .. .. .   .   . .  .. . .      .      .   . .   . .  .  
