.......::::::::::::)..           .......................(::::::........
      .:::::;;;;;;;;):::::::.... .           .......:::::::::::::<......
          <  >>>                   ,.
  .::..  ;   I;L\  /L\.  ..::..   /iL.           |         ..::::::::::::..
        ;    II;L\/LLLL;         / I;L\    \     |     / /\_
             II;..LLLLLL\    _._/ I;:.L\     \   |   / _/J; \
      :     IIIIi;..LLLLL\__/   IIII:..L\____  \###/  /JJI:  \
    ,;     ILIi;;;:...:LLL;\      IIIII;.LLLLL\#####/JJ II;   \
   ;     I LLii;;;.:.. :LLL;\     III;;;::LLLLL\###/JJ IIII;   \_.
  :     IIILiii;;::.... :LLL;|      ;;I;;::.:LLLLLL:;IJ IIIII;:   \__.
           IIIII IIii;;::;..;\          ;;:::...LLLL;IJIII;;    :::   \
:    ;    IIIIIIIIIii;;::.;..      _==|      ;..  :;IJIII;:::    ::    \
    ;    ::::::::::::;;::..;  _==|   )__)  |                            \
 '  '"  "  ""'""'""  ""'"  '"    )_)  )___) ))  ""''"   ""'"  "'" "'"'"'  "'""
        '""   ""^^       ^~   )___) )____))_)   ~~         ""^^^""  '  "  "~"
' ^^            ^        _    )____)_____))__)\      ~^~~^           ^^"
     '^^          ^~      \---__|____/|___|___-\\--        "~"~         "~"
   ''    '^          ~"~   \   oo oo oo oo     /      ~"      '~       ""~"
        ____   ^^^"~   ~~^^^^^^^^^^^^^^^^^^^^^^    ^~^            ^~^^^
      /  o   \     ""'"  __          __ "'"''     '   ''~     ~""~"`    ""''
    < ____     \"'"    /    \   "' /    \       _          _    "~    _
          |     |     |  __  |    |  __  |    /   \      /   \       / |
    '''   |_____|  '  |__||__| '' |__||__| ' |_____| '' |_____| ""  /_/
         '''     ~^^^^      '"""^^'''''^        '''''''""        '''''^^""
   ''          '^^           ~^^~          ~^ '      ~~      '  ^   ^^^^^^^^