..,,,,,,,,,,,,,,,,..
                        ..,,;;;;;;;;;;;;;;;;;;;;;;;;;;,,.
                    .,::::;;;;aaaaaaaaaaaaaaaaaaaaaaaaaaa;;,,.
                .,;;,:::a@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a,
              ,;;;;.,a@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a
           ,;;;;%;.,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a,
        ,;%;;;;%%;,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
     ,;;%%;;;;;%%;;@@@@@@@@@@@@@@'%v%v%v%v%v%v%v%v%v%v%v%v`@@@@@@@@@
   ,;;%%;;;;:;;;%;;@@@@@@@@@'%vvvvvvvvvnnnnnnnnnnnnnnnnvvvvvv%`@@@@'
  ,;%%;;;;;:;;;;;;;;@@@@@'%vvva@@@@@@@@avvnnnnnnnnnnvva@@@@@@@OOov,
 ,;%;;;;;;:::;;;;;;;@@'OO%vva@@@@@@@@@@@@vvnnnnnnnnvv@@@@@@@@@@@Oov
 ;%;;;;;;;:::;;;;;;;;'oO%vvn@@%nvvvvvvvv%nnnnnnnnnnnnn%vvvvvvnn%@Ov
 ;;;;;;;;;:::;;;;;;::;oO%vvnnnn>>nn.   `nnnnnnnnnnnn>>nn.   `nnnvv'
 ;;;;;;;;;:::;;;;;;::;oO%vvnnvvmmmmmmmmmmvvvnnnnnn;%mmmmmmmmmmmmvv,
 ;;;;;;;;;:::;;;;;;::;oO%vvmmmmmmmmmmmmmmmmmvvnnnv;%mmmmmmmmmmmmmmmv,
 ;;;;;;;;;;:;;;;;;::;;oO%vmmmmnnnnnnnnnnnnmmvvnnnvmm;%vvnnnnnnnnnmmmv
  `;%;;;;;;;:;;;;::;;o@@%vvmmnnnnnnnnnnnvnnnnnnnnnnmmm;%vvvnnnnnnmmmv
   `;;%%;;;;;:;;;::;.oO@@%vmmnnnnnnnnnvv%;nnnnnnnnnmmm;%vvvnnnnnnmmv'
     `;;;%%;;;:;;;::;.o@@%vvnnnnnnnnnnnvv%;nnnnnnnmm;%vvvnnnnnnnv%'@a.
      a`;;;%%;;:;;;::;.o@@%vvvvvvvvvvvvvaa@@@@@@@@@@@@aa%%vvvvv%%@@@@o.
     .@@o`;;;%;;;;;;::;,o@@@%vvvvvvva@@@@@@@@@@@@@@@@@@@@@avvvva@@@@@%O,
    .@@@@@Oo`;;;;;;;;::;o@@@@@@@@@@@@@@@@@@@@"""""""@@@@@@@@@@@@@@@@@OO@a
  .@@@@@@@@@OOo`;;;;;;:;o@@@@@@@@@@@@@@@@"           "@@@@@@@@@@@@@@oOO@@@,
 .@@@@o@@@@@@@OOo`;;;;:;o,@@@@@@@@@@%vvvvvvvvvvvvvvvvvv%%@@@@@@@@@oOOO@@@@@,
 @@@@o@@@@@@@@@OOo ;::;'oOOooooooooOOOo%vvvvvvvvvvvvvv%oOOooooooooOOO@@@O@@@,
 @@@oO@@@@@@@@@OO a@@@@@a,oOOOOOOOOOOOOOOoooooooooooooOOOOOOOOOOOOOO@@@@Oo@@@
 @@@oO@@@@@@@OO a@@@@@@@@Oo,oO@@@@@@@@@@OOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@Oo@@@
 @@@oO@@@@@@OO @@@@@@@@@@@OO,oO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Oo@@@
 @@@@o@@@@@@OO @@@@@@@@@@OOO,oO@@@@@@@@@O@@@@@@@@@@@@@@@@@@@@@o@@@@@@@@@O@@@@
 @@@@@o@@@@@OOo @@@@@@@OOOO'oOO@@@@@@@@Oo@@@@@@@@@@@@O@@@@@@@@Oo@@@@@@@@@@@@a
 `@@@@@@@O@@@OOOo`OOOOOOO'oOO@@@@@@@@@O@@@@@@@@@@@@@@@O@@@@@@@@Oo@@@@@@@@@@@@
  `@@@@@OO@@@@@OOOooooooooOO@@@@@@@@@@@@@@@@@@@@@@@@@@Oo@@@@@@@Oo@@@@@@oO@@@@
    `@@@OO@@@@@@@@@@@@@@@@@@@O@@@@@@@@@@@@@@@@@@@@@@@@Oo@@@@@@@O@@@@@@@oO@@@'
      `@@`O@@@@@@@@@@@@@@@@@@@Oo@@@@@@@@@@@@@@@@@@@@@@Oo@@@@@@@@@@@@@@@O@@@'
        `@ @@@@@@@@@@@@@@@@@@@OOo@@@@@@@@@@@@@@@@@@@@@O@@@@@@@@@@@@@@@'@@'
           `@@@@@@@@@@@@@@@@@@OOo@@@@@@@@@@@@@@@@@@@@O@@@@@@@@@@@@@@@ a'
               `@@@@@@@@@@@@@@OOo@@@@@@@@@@@@@@@@@@@@@@@@Oo@@@@@@@@'
                  `@@@@@@@@@@@Oo@@@@@@@@@@@@@@@@@@@@@@@@@Oo@@@@'
                      `@@@@@@Oo@@@@O@@@@@@@@@@@@@@@@@@@'o@@'
                          `@@@@@@@@oO@@@@@@@@@@@@@@@@@ a'
                              `@@@@@oO@@@@@@@@@@@@@@' '
                                '@@@o'`@@@@@@@@'
                                 @'   .@@@@'
                                     @@'
                                   @'
    .      .     II |  \)  .      .         .              .     /\     .
 .      .      .II  |                   .          .    .        \ \.
   .       .     II |   , hristmas  .        __       .      /\_,'  /~|  .
 .      .     .   ~~~--'                    {::;,~;  __  ,-. \  /~._)::
    .      .     .       .      .      . (\_/`:_';;._;:: ::|  ; `;;;;; .
 .     .     ___..----._      .     .    `-.__  `-._;;;;-'::_.' ,;;;,'   .
     .    ,-'           `-._     .      .     `-.__ `:_::::`.__,;:::;-, .
   .    ,'           _______`; .     .       .     `--.`._::::::::_:-' . .
 .    ,'  ____--#############|   .       .        .    `-.`::::::'  .   .
     | ./|###################|      .         .          | ::::::     .
 ,###\/  |######-----~~~~~~~~:   .      .         .    _.--'    :_.--.___
 |####|   |   .....     .... :||.    .        .      .'  \\\     _      _>
 `####'  |:: ;;;;;;;   ;;;;;;:::|.      .   .        ; 0   \\\_--;`~~--~
        ||:;    __       __   :|||.  .    .        _,'  _-~_ \\ ~;       .
.  .   ||:;    '  `   _ '  `  ::|||     .      _.-'\\\-~_-~   \\.'  .  .
 .    ||:;        _,,(_),,_    :||'  .      . (_)   \\\~  __.--';     .
     ||::::     ,|||||||||||.   ::||   .  .     `--','\\'~     .'  .      .
.   |:::::::_  ,|||||   |||||,   :|'    .      .   `--' `.     ;       .
   ||;;;:::::::;|||||___|||||':::::||      .             :     :    .     .
   `|;;::::::::::::::::::::::::::::::|  .       .    .   ;     :      .
 .    ,|;;|::::::|||||||||::::::||||||       .    .     ,'      :  .      .
     |;;;||||::::::|||||::::::::::|||'---.___          ,'       :       .
     |;;;;||||||::::::|||::::::::::||__ :::::`---.____,'         :  .     .
.    `|;;;;||||||::::::|||:::::::|||'  `-._":::::::: ,'           :--._
  .    _,|;;;|||||||||:::|::::::||''       `.":::::,'           _::::::`.
.    ,' |;;;;;;;;|||||::::::::||;;           `-.::;            |#########|
  .  |      `|;;;;|||||;;;;:;;;'                ,'            |##########|
.   |         `||;;;;||;;;;|||'                _;-'\          /          |
    |         ||  `;;;;;;;;;;' ________    _.-'      \      /'            |
 . |          |      ````''_,-|::::::::`,-'   ___      \   (    ,'|       |
   |          |           /___/' _`---;'  _.-'   \       \  `--' ,'       |
  |          |       ___#####,--'   ,'  ,\;;;\   |`\|:    |     :'       ,'
  |          :__.---'   |####      ,'  :` `\::`\_| ;    _;      `.____.-'
 :                      |####      ;___:  / `.::;: `.__,'     ____--'  |
 ;                      |####     /____|  \. `.;;;|                     \
 `,                _____|####__             ; `~~~~|                     |
  `._____,--------'     ~~~~~  `-._________,'       |_____________________\
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
|@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|
|@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|
|@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|
|@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|
|@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|
[[[[[[]]]]] [[[[[]]]]] [[[[[]]]]] [[[[[]]]]] [[[[[]]]]] [[[[[]]]]] [[[[]]]]
[[[[[[]]]]] [[[[[]]]]] [[[[[]]]]] [[[[[]]]]] [[[[[]]]]] [[[[[]]]]] [[[[]]]]
~~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~
]]]]] [[[[[]]]]] [[[[[]]]]] [[[[[]]]]] [[[[[]]]]] [[[[[]]]]] [[[[[]]]]] [[[
]]]]] [[TARGON]] [[[[[]]]]] [[[[[]]]]] [[[[[]]]]] [[[[[]]]]] [[[[[]]]]] [[[
~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~
                      ,--.__.---.                                ___
                     |'         `-.__        .##.       ___.----'%%%`.
                    [aaaaaa(_____    `---.__ ####     ;'%%%%%%%%%%%%%::
                    [@@@@@@@@@@@@]`----.___.'`##'   _;%%%%%%%%%%%%%%%%||
              ,----.~~Ww Ww~~~:::::     ____    _.-'%%%%%%%%%%%%%%%%%%%|
            .'  (~~  |(.)(.)  ; c);.___((,- `.-'%%%%%__.----- %%%%%%%%%|
            |    ~)   )/ ;  ' ;;~:::; _.--~)  \%%%.-'     ,  |:.%%%%%%%%|
           @@@@@@@@  (_.'\__  ;;;::: ())%/-,__/@@@|~~~---;   |||%%%%%%%%|
           @@@@@@@  {Ww/\wwW};;;::::  ~~' [@@@@@@@|      `.  ||'%%%%%%%%%,
          /      /  ;;;;;;;;;;;;::;'       ~:~~~~~        '  ::|%%%%%%%%'
        .'      / _/;::::::::::::;  ::      `._               ;`%%%%%%%|
      .'       ;,'  `:::;;;;;;'                `-.__         ,'  ~~`%%%;
     |         ;     `'aaaaaaa     ::               `---.___,'      ~~'|
     |        |        @@@a@@@                                       ::||
     `._      |        @@@a@@@           ::                         :::||
        `--._ :        @@@a@@@              :                       :::||
             `:;.       @@@a@@@                                    :::||
      ________ :        @@@a@@@@                          aaaaaaaaaaa@|
     [[_______] \@@@@@|IIIIIIIII|@@@@@@@@@@@@@@@@@@@@@@@@/XXXXXXXXXXX/
      :[__][_]   \XXXX|I   ____I|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/a
      :[_____]    \XXX|I   ~~~~I|XXXXXXXXXXXXXXXXXXXXXXXXXXXX@@@@@@@@@@
      :[__][_]     @@@|IIIIIIIII|@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      :[_____]     @@@@@@@/\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a
      :[__][_]      ~~~~\___ :::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ _  ::||~
      :[_____]              \____ :::                      _,':::: /'
      :[__][_]                   \___:::     ,------------' :::::/'
      :[_____]                       \ ::   `-.         ;  ::::|||
      :[__][_]                      .-'    :::;         `-_______/
      :[_____]                      `---'`----'            #######
      :[__][_]                      ##########             #######
      :[_____]                       ########            #######
      :[__][_]                        ######              #####
      :[_____]                /##############|             ######
  ____:[__][_]_______________|###############|______________\####]________
// \\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 ~~ \\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 ~~~~\\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 ~~~~~\\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 ~~~~~~\\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 ~~~~~~ \\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                              .
                             ( )
   ,X:  ,XXXXX,     ',        :V:.
   XX   XX' 'XX       ':      :VV:.               ////
   XX   XX   XX        :.    ,VVVV:              // ''
   XX. .XX   XX   .    ::  ,V/()VV:,.  .II--    //.   .,.
   'XXXXX'  :X'    ':, :: .VVVVVVVVVVVVVIIVVV:,//.  ,VVVV,
           .,::      ':::::VVVVVVVVVVVVVIIVVVVV:,.,V:'  ''
      .,:XXXXXX        ::' ':VVV:''':VVVIIVVVVVVVVV'
   .:XX:'' XX         .:'            VVVIIVVV'VVV'
   XX'     XX     .,,:'              ==========
   ':XX:,. XX                        VVVIIVVVVV
      '':XXXXXX                     ,VVVIIVVV:'
           ''::                    ,VVVVIIVVV
   XXXXXXXXXXXX                    VVVVVIIVVV,,
    ':XX:,.                        VVVVVIIVVVVVV,
       'XXX:.                      VVVVVIIVVVVVVV,
       ,XXX:'                      'VVVVIIVVVVVVVV
    ,:XX:'                            'VII  'VVVV'//////.
   XXXXXXXXXXXX                         II   VVV:,    '''
   :,        ,:                         II   VVVVVVVVVV:.
    XX,    ,XX                          II            ':'
     'XX..XX'                 .         II
       XXXX          .       ( )        II
     ,XX''XX,         ,       :V:.      II
    XX'    'XX     .  ':      :VV:.     II        ////
   :'        ':     ',,:     ,VVVV:     II       // ''
   .              .,  ':,  ,V/()+V:,.  .II,,    //.   .,.
   XX,              ',,::  VVVVVVVVVVVVVIIVVV:,//.  ,VVVV,
    'XX,             ':::::VVVV+VVVVVVVVIIVVVVV:,.,V:'  ''
      XXXXXXXXX        ::' ':V+V:''':VVVIIVVVVVVVVV'
    ,XX'              .:'            VVVIIVVV'VVV'
   XX'           ..,,:'      +       ==========
   '         .:              +       VVVIIVVVVV
   ,XXXXX,  ,XX                     ,VVVIIVVV:'
   XX' 'XX XX'              +      ,VVVVIIVVV
   XX   XXXX                +      VVVVVIIVVV,,
   XX   XX'                        VVVVVIIVVVVVV,
   XXXXXXXXXXXX            +       VVVVVIIVVVVVVV,
             .:            +       'VVVVIIVVVVVVVV
   ,XXXXX,  ,XX                       'VII  'VVVV'//////.
   XX' 'XX XX'            +             II   VVV:,    '''
   XX   XXXX              +             II   VVVVVVVVVV:.
   XX   XX'                             II            ':'
   XXXXXXXXXXXX          +              II
                         +              II ,:WW,.
   XX   XX   XX                         II      ''WW,
   XX   XX   XX         +     WWWW     //       .:WW/WW.
   XXXXXXXXXXXX        +      WWWW:,. II      .:WW/  'WW,
                       +      WWWWWWWWWIW:,. :WW/     'WW
   XXXXXXXXXXXX       +       WWWWWWWWWWWWWWWW/        WW
    'XXX:,           ..       WWWWWWWWWWWWWW:'         WW
      'XXX:.        (  )      'WWWWWWWWWWWWWW,         WW
      ,XXX:'       (   )        'WWWWWWWWWWWWW         WW
    ,XXX:'          :DDD.         'WWWWWWWWWWW         WW
   XXXXXXXXXXXX     'DDDD.    .,,. WWWWWWWWWWW         WW
                   ,,DDDDD .,:DDDDDWWWWWWWWWWW         WW
         .,()  S ,SS.DDDDD'DDDDDDDDWWWWWWWWWWW         WW
       .CCC(), S,SSSDDDDDD'DDDDDDDDWWWWWWWWWWW         WW
      .CCCC()S'SSS' DDDDDD'DDDDDDDDWWWWWWWWWWW:,,,,,,,:WW
      CCCCC()SS-SS  'DDDD'DDDDDDD.:WWWWWWWWWWWWWWWWWWWWWW
      CC'   .,:XXXXXXXXXXXX,DDD.:WWWWWWWWWWWWWW:'    ':WW
      ()  ,XXXXXXXXXXXXXXXXXX.:WWWWWWWWWWWWWWW'        WW
      ,  ,XXXXXXXXXXXXXXXXXXWWWWWWWWWWWWWWWWWW         WW
      :X'XXXXXXXXXXXXXXXXXXXWWWWWWWWWWWWWWWWWV
      :X'XXXXXXXXXXXXXXXXXXXWWWWWWWWWWWWWWWWV
      :X'XXXXXXXXXXXXXXXXXXXWWWWWWWWWWWWWWV'
      :X'XXXXXXXXXXXXXXXXXXXWWWWWWWWWWWV:'
      :X'XXXXXXXXXXXXXXXXXXXWWWWWV'
      '  XXXXXXXXXXXXXXXXXXXWWWW'
         XXXXXXXXXXXXXXXXXXXWWWW
          'XXXXXXXXXXXXXXXXXWWWW
            'XXXXXXXXXXXXX'
              'XXXXXXXXX'
                 '''''