.     .
                       .          .                    .  /\   .
        .                                       *         `'
                  *         ,,, ,,,                       .           .
                          ,'   '   `'',,,             .         .
             .          .'               `'',,,
                     .,'                 --.;:.:
       .-,        .-;       ,/.   /\         ::.\         .---.
       `-'       ;::'          .  \/    .   ::::.`-.    .'     \      *
      .        ,:':;,...;_ _'.''-.___    \.::;::|8:.|,e/    .   b
              .;' '  :::|,'./|    ---\,,::\:|8|e|88:\8' _
    .         |      ,;/.//|:|     |`\\ \;;-|8888888|'.8e'--.         .
         .   ,|  ,,;;///./':(||    ` `||||:\88888888||8'     \
             |:.::;//.|'//|||`|    |  `\\||\::`8888888'_      \
    /\       |:::///.|;|..---';.  `----.\|).|.|..`888|8e=--.   |     ,-,
    \/       ||:|/.|:,'|',===;.-   ====-.:\.||.\\.'888'     \  U     `-'
        .    |||/.:||(.-=';.| \\|   `..`"|\;..|....\88ee     \      .
              \<|..'.|.\ ___'       ._'_,\\|'\|.|.|\88b'\     b
              .'|:|;.|||`  '           ' |'|.\'.|..|.qp  |
    .         | |.(:.|.`                 ';':.)|.|.| .._ U
              ` |.`.,`|.\       b       /|:.|.|.,(..\..:;-      .      .
        *       /\.||..|.`      _      '||:.:.`.|...|...-.
   .           ' |.`..).,|\    `-`    /|:(|:.):||..|.|. .:`_
                 |..).|.|..`..      .':|:||:.|.')`.\.\ .\--.      *
                 /..'|'.| |||  ._.'.||;|:;|:.|/||:` \`,..\._           .
      .   .     '('|:|`..'_;|    .:.|=---.;/|| |||  \-oo.|__
                .' / |`|.'-='-------`"'::.| '|  |`. \8oooooo\
              .'.   .'|'|_   __,--'...;:--'  |  `.  .8bod888o|  .   /\
         *   .'. '  | :::|`-' __.---' _++-'  '    ' \88e8888o|      `'
 .           ;-'   ,,:::|---'     ___+++-       :   \8888888o`.
            ,8'  ,:::::'|_o-o----'_++++-   :    :. \.8888888oo|    .
       .   ,8/  ,:::' .|`88 _.--.++++-    ::: . ::\o88888888oo|
    .     ,88/     . . |.`8'__.-',-'      :::  .::\o88888888bo`.
          |8o/  :.  . .| `|\    /,          ::. :\o8888888888oo|     *
          |8o/  :   :. |/ | \   /,       .  :: .\o88888888888oo|        .
         ,888o/    :. .|  |     /, __   . . :: |o888888888888bo`.  .
         |8888o/: :  .|...|    .--' -'     . :|o88888888888888oo|
    .   ,88888o/ :  . |...|/..|::=---,  : .  |o888888888888888oo|
        |88888o/   . .|...|.. |:',__   :   .|o8888888888888888bo`.    .
        |888888o/   . |...|. |:::__ '  :: .|o888888X88888888888oo|
       ,88888888o|   .|b..|. |::,--'  .:::|88888888X88888888888oo|
  .    |8888X888o/   .d8b----'::|    . .::|88888888188888888888bo`.
       |888818888o|  |8p':::|::8| .:: .  |8888888889888888888888oo|    .
       |8888388888o| |8|::::::e8|.`::.  |.8888888889888888888888oo|
      ,888880888888o||8|88888888| .::,||'o8888888885888888888888bo`.
      |88888m8888888o88|888888888| .|ooo88888888888$8888888888888oo|
      |88888i8888888888|8G8S8T8d88bd88888888888888818888888888888oo|
      |88888n8888888888|888888d88888888888888888881d8888888888888oo`.
      |888888U888888888|8'....`8'q8888888888888888$88888888888888goo|
      |888888t88888888|d8/.....|.|88888888888888882888888888888888so|
       888888e88888888|8'/.....|.|88888888888888882888888888888888t;'
       `88888S88888888|//......|.|8888888888888888X888888888888888b'
         `888888888888|//......|.|8888888888888888X88888888888888'
           `8888888888|//......|.|8888888888888888X88888888888'
               `888888|//......|.|88888888888888888888888'
                     `|//......|.|88888888888888'