+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++   
+                                                                                                                                                     !!!!!!!!!!!!!!!!!!            ++ +
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#                                         #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!           r   r              ++ +
+++      r                          ;                                         ,                                                     ~                                                ++ +
+++                                                                                                                               ~ $ ~                                              ++ +
+++                                                                                                                              ~$~$~$                     v1                       ++ +
+++                   ~~~~                                                                     #  #                              $$$$$$                &           >3               ++ +
+++                   $$$$                                                         ~~~~~      +##+  p1  &&&                <2   ######                #wwwwwwwwwwwwwwww#            ++ +
+++                $$$$             ___g  ## ### g ###                       #####  v1 j;;      ###  <3                ;,,;;,    >4          +wwwwwwwwwwwwwwww+            ++ +
+++##@ ## #  ____ #  #### #  #####wwwwwwwwww++#+++wwwwwwwww##################wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww#####^^^^^^^^^^^^^^^^^^^^^^^^^^####++++++++++++++++++###############+   
+++r  @+wwwwwwwwwwwwwwwwwwwwww+ ;;+++++++++++++++++++++++++++;; ,,; ; ; ,, +wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww+ ;, +++++++++++++++++++++++++++; ;               R  ;  ,, ;;,,  + +
+++  @  +++wwwwwwwwwwwwwwwwwww+    +!!!!!!!!!!!!!!!!!!!!!!!!!+                  +wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww+         R    D  R       R                                        + +
+++    @+++++++++++++++++++++++          R                        D             +wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww+                     D                 ##                         + +
+++  @  +     R       R                                                       ++++++++++++++++++++++++++++++++++                                     ##r;###                      + +
+++    @                                             ##                          +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!+                                   ##(,  (;,######################*##+
+++                                 ####          []                    J       R        R         J          R                                 ###;,      r ;;  j ,,   ; ;;,,;   + +
+++                             #  [, )  -------       #####                       \         \\          \\\            s     \      \       ###[ s      #      G     g      #   G + +
+####^########################### [                      ( , ]#####################------------------------------###########################################+WWWWWWWWW#WWWWWWWW#+^^^^^^^+   
+  ;  ; ,  ,;;  , ;             ]                             [,     ; , ;;   ,   ]                              ( ;   ,   ,,,   ;;;;   ,,,,   , ,    ;;   ;++++++++++++++++++++        +
+                                                                                                                                                                                       +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++   
