/---------------------\           /----------------<---------------------------------------------------------------------\      
                      |                     |           |         /---------------------------\                                                |      
              /-------+---------------------+-----------+---------+---------------------------+------\                                         |      
   /----------+-------+---------------------+---\      /+---------+---------------------------+------+------\                                  |      
 /-+----------+-------+---------------------+---+------++---------+-------------------------\ |      |      |                                  |      
 | |          |       |  /------------------+---+------++---------+-----\                   | | /----+------+---------------------------\      |      
 | |   /------+-------+--+------------------+---+-\    ||         |     |              /----+-+-+----+------+----------------\          |      |      
 | |   |      | /-----+--+------------------+---+-+----++---------+-----+--------------+----+-+-+----+---\  |                |          |      |      
 | |   |      | |    /+--+--------------\   |   | |    ||    /----+-----+--------------+----+-+-+----+---+--+----------------+---------\|      |      
 | |   |      | |    ||  |              |   |   | |    ||    |    |     |              |    | | |    |   |  |                |         ||      |      
 | |   |      | |    ||  |      /-------+---+-\ | |    ||    |    |     |              |    | | |    |   |  |        /-------+---------++------+---\  
 | |   |      | |    ||  |      |       |   | | | |    ||    |    |     |     /--------+----+-+-+----+---+\ |        |       |         ||      |   |  
 | |   |      | |    ||  |      |       |   | | | |    ||    |/---+-----+\    |        |    | | |    |   || |        |       |         ||      |   |  
 | |   |    /-+-+----++--+------+-------+---+-+-+-+----++----++---+-----++--->+--------+----+-+-+----+---++-+-----\  |       |         ||      |   |  
 | |   |    | | |   /++--+------+-------+---+-+-+-+----++----++---+-----++----+--------+----+-+-+----+---++-+-----+--+-------+-\       ||      |   |  
 | |  /+----+-+-+---+++--+------+-------+---+-+-+-+----++-\  ||   |     ||    |        |    | | |    |   || |     |  |       | |       ||      |   |  
 | |  ||    | | |   |||  |      |       |   | | | |    || | /++---+-----++----+--------+----+-+-+-\  |   || |     |  |       | |       ||      |   |  
 | |  ||    |/+-+---+++--+------+-------+---+-+-+-+----++-+-+++---+\  /-++----+--\     |    | | | |  |   || |     |  |       | |/------++--\   |   |  
 | |  ||    ||| |/--+++--+------+-------+---+-+-+-+----++\| |||   ||  | ||    |  | /---+----+-+-+-+--+---++-+----\|  |       | ||      ||  |   |   |  
 | |  ||    ||| ||  |||  |/-----+-------+---+-+-+-+----++++-+++---++--+-++----+--+-+---+----+-+-+-+--+---++-+----++--+-------+-++---\  ||  |   |   |  
 | |  ||    ||| ||  |\+--++-----+-------/   | | | |    |||| |||   v|  | ||    |  | |   |    | | | |  |/--++-+----++--+-------+-++---+--++--+---+--\|  
/+-+--++----+++-++--+-+--++-----+-----------+-+-+-+----++++-+++---++--+-++----+--+-+-\ \----+-+-+-+--++--++-+----++--+-------/ ||   |  ||  |   |  ||  
|| | /++----+++-++--+-+--++-----+-----------+-+-+-+----++++-+++---++--+-++---\|  | | |      | | | |  ||  || |    ||  |         ||   |  ||  |   |  ||  
|| | |||    ||| ||  | |  ||     |           | | | |/---++++-+++---++--+-++---++--+-+-+------+-+-+-+--++--++-+----++--+---------++--\|  ||  |   |  ||  
|| | |||/---+++-++--+-+--++-----+-----------+-+-+-++---++++-+++---++--+-++---++--+-+-+---\  | | | |  ||  || |    ||  |         ||  ||  ||  |   |  ||  
|| | ||||   ||| ||  | |  ||     |           | | | ||   |||| |||   ||  | ||/--++--+-+-+---+--+-+\| |  ||  || |    ||  |         ||  ||  ||  |   |  ||  
|| | ||||   ||| || /+-+--++-----+-----------+-+-+-++---++++-+++---++--+-+++--++--+-+-+---+--+-+++-+--++--++-+----++--+-------\ ||  ||  ||  |   |  ||  
|| | ||||   ||| \+-++-+--++-----+-----------+-+-+-++---++++-+++---++--+-+++--++--+-+-+---+--+-+++-+--++--/| |    ||  \-------+-++--++--++--+---+--+/  
|| | ||||   |||  |/++-+--++-----+-----------+-+-+-++---++++-+++---++--+-+++\ ||  | | |   |  | ||| |  ||   | |    ||          | ||  ||  ||  |   |  |   
|| | ||||   |||  |||| |  ||     |           | | | ||   |||| |||   ||  | |||| ||  | | |   |  | ||| |  ||   | |    ||          | ||  ||  ||  |   |  |   
|| |/++++---+++--++++-+--++---\ |           | | | ||   |||| |||   ||/-+-++++-++--+-+-+---+--+-+++-+--++---+-+----++----------+-++--++--++--+---+--+\  
|| ||||||   |||  |||| |  ||   | |           | | | ||   |||| |\+---+++-+-++++-++--+-+-+---+--+-+++-+--++---+-+----++----------+-++--++--/|  |   |  ||  
|| ||||||   |||  |||| |  ||   | |  /--------+-+-+-++---++++-+-+---+++-+-++++-++--+-+-+---+-\| ||| |  ||   | |    ||          | ||  ||   |  |   |  ||  
|| ||||||   |||  |||| | /++---+-+--+--------+-+-+-++---++++-+-+---+++-+-++++-++--+-+-+---+-++-+++-+--++-\ | |    || /--------+-++--++---+--+\  |  ||  
|| ||||||   |||  |||| | |||   | |  |   /----+-+-+-++---++++-+-+---+++-+-++++-++--+-+-+---+-++-+++-+--++-+-+-+----++-+--------+-++--++---+--++--+-\||  
|| ||||||   |||  |||| | |||   | |  |   |    | | | ||  /++++-+-+--\||| | |||| ||  |/+-+---+-++-+++-+--++-+-+-+----++-+--------+-++--++---+--++-\| |||  
|| ||||||   |||  |||| | |||  /+-+--+---+----+-+-+-++--+++++-+-+--++++-+-++++-++--+++-+---+-++-+++-+--++-+-+-+----++-+--\     | ||  ||   |  || || |||  
|| |||||| /-+++--++++-+-+++--++-+--+---+----+-+\| ||  ||||| | |  |||| | |||| ||  ||| |   | || ||| |  || | | |    || |  |   /-+-++--++---+\ || || |||  
|| |||||| | |||  |||| \-+++--++-+--+---+----/ ||| ||  ||||| | |  |||| | |||| ||  ||| |   | || ||| |  || | | |    || |  |   | | ||  ||   || || || |||  
|| ||||\+-+-+++--++++---+++--++-+--+---+>-----+++-/|  ||||| | |  |||\-+-++++-++--+++-+---+-++-+++-+--++-+-+-+----++-+--+---+-+-++--++---++-++-++-++/  
|| |||| | | |||  ||||   |||  || |  |   |/-----+++--+--+++++-+-+--+++--+-++++-++--+++-+---+-++-+++-+--++-+-+-+-\  || |  |   | | ||  ||   || || || ||   
|| |||| | | |||  |\++---+++--++-+--+---++-----+++--+--+++++-+-+--+++--+-+++//++--+++-+---+-++-+++-+--++-+-+-+-+--++-+--+---+\| ||  ||   || || || ||   
|| |||| | | |||  | |\---+++--++-+--+---++-----+++--+--+++++-+-+--+++--+>+++-+++--+++-+---+-++-+++-+--++-+-+-+-+--++-+--+---+++-/|  ||   || || || ||   
|| |||| | | |||  | |    |||  || |  | /-++-----+++--+--+++++-+-+--+++--+-+++-+++--+++-+---+-++-+++-+--++-+-+-+-+--++-+--+---+++--+--++-<-++-++-++\||   
|| |||\-+-+-+++--+-+----+++--++-+--+-+-++-----+++--+--++++/ | |  |||  | ||| |||  ||| |   | || ||| |  || |/+-+-+--++-+--+---+++--+--++---++-++-+++++\  
|| |||  | | |||  | |    |||  || |  | | ||     |||  |  ||||  \-+--+++--+-+++-+++--+++-+---+-++-+++-/  || ||| | |  || |  |   |||  |  ||   || || ||||||  
|| |||  | | |||  | |    |||  || |  | | ||/----+++--+--++++----+\ |||  | ||| |||  |||/+---+-++-+++----++-+++-+-+--++-+--+---+++--+--++--\|| || ||||||  
|| |||  | | |||  | |    |||  || |  |/+-+++----+++--+--++++----++-+++--+-+++-+++--+++++---+-++-+++----++-+++-+-+--++-+--+---+++-\|  ||  ||| || ||||||  
|| \++--+-+-+++--+-+----+++--++-+--+++-+++----++/  |  ||||    || |||  \-+++-+++--/||||   | || |||    || ||| | |  || |  |   ||| ||  ||  ||| || ||||||  
||  ||  | | |||  | |    |||  || |  ||| |||    ||   |  ||||    || |||    ||| ||\---++++---+-++-+++----++-++/ | |  || |  |   ||| ||  ||  ||| || ||||||  
||  ||  | | |||  | |    |||  || |  ||| |||    ||   |  ||||    \+-+++----+/| \+----++++---+-++-+++----++-++--+-+--++-+--+---+/| ||  ||  ||| || ||||||  
||  || /+-+-+++--+-+----+++--++-+--+++-+++----++---+--++++-----+-+++----+-+--+----++++---+\|| |||    || ||  | |  || \--+---+-+-++--++--+++-+/ ||||||  
||  || || | |||  | |   /+++--++-+--+++-+++----++---+--++++-----+-+++----+-+--+----++++---++++-+++----++-++--+-+--++--\ |   | | ||  ||  ||| |  ||||||  
||  || || | |||  | |   ||||  || |  ||| |||    ||   |  ||||     | |\+----+-+--+----++++---++++-/||    || ||  | |  ||  | |   | | ||  ||  ||| |  ||||||  
||  || || | |||  | |  /++++--++-+--+++-+++----++---+--++++-----+-+-+----+-+--+----++++---++++--++----++-++--+-+--++--+-+---+-+-++-\||  ||| |  ||||||  
||  || || | |||  | |  |||||  || |  ||| |||    ||   |  ||||     | | |    | |  |    ||||   |||| /++----++-++--+-+--++--+\|   |/+-++-+++\ ||| |  ||||||  
||  || || | |||  | |  |||||  || |  ||| |||    ||   |/-++++-----+-+-+----+-+--+----++++---++++-+++\   || ||  | |  ||  |||   ||| || |||| ||| |  ||||||  
||  || || | |||  | | /+++++--++-+--+++<+++----++---++-++++-----+-+-+----+-+--+----++++---++++-++++---++-++--+\|  ||  |||   ||| || |||| ||| |  ||||||  
||  || || | |||  | | ||||||  || |  |\+-+++----++---++-++++-----+-+-+----+-+--+----++++---++++-++++---++-++--+++--++--+++---+++-/| |||| ||| |  ||||||  
||  || || | |||  | | |||\++--++-+--+-+-+++----++---++-++++-----+-+-+----+-+--+----++++---++++-++++---++-/|  |||  ||  |||   |||  | |||| ||| |  |^||||  
||  || || | |||  | |/+++-++--++-+--+-+-+++----++---++-++++-----+-+-+----+-+--+----++++\  |||| ||||   |\--+--+++--++--+++---+++--+-++++-+++-+--++++/|  
||  || || | |||  | ||||| ||  || |  | | |||    ||   || ||||     | | |    | |  |    ||\++--++++-++++---+---+--+++--++--+++---+++--+-++++-/|| |  |||| |  
||  || || | |||  | ||||| ||  || |  | | |||    ||   || ||||     | | |    | |  |    || ||  |||| ||||   |   |  |||  ||  |||   |||  | ||||  || |  |||| |  
||  || || | \++--+-+++++-++--++-+--+-+-+++----++---++-++++-----+-+-+----+-+--+----++-++--++++-++++---+---+--+++--+/  |||   |||  | ||||  || |  |||| |  
||  || || |  ||  | ||||| ||  || |  | | |||    ||   || ||||     | | |    | |  |    || ||  |||| ||||   |   |  |||  |   |||   |||  | ||||  || |  |||| |  
||  ||/++-+--++--+-+++++-++--++-+--+-+-+++----++---++-++++-----+-+-+----+-+--+----++-++\ |||| ||||   |   |  |||  |   |||   |||  | ||||  || |  |||| |  
||  \++++-+--++--+-+++++-++--+/ |  | | ||| /--++---++-++++-----+-+-+----+-+--+----++-+++-++++-++++>--+---+--+++--+---+++---+++--+\||||  || |  |||| |  
||   |||| |  ||  | ||||| |\--+--+--+-+-+++-+--++---++-++++-----+-+-+----+-+--+----++-+++-++++-++++---+---+--+++--+---+++---+++--++++/|  || |  |||| |  
||   |||| |  ||  | ||||| |   |  |  | | ||\-+--++---++-++++-----/ | |    |/+--+----++-+++\|||| ||||   |/--+--+++--+---+++---+++--++++-+--++-+-\|||| |  
||   |||| |  ||  | ||||| |   |  |  | | ||  |/-++---++-++++-------+-+----+++--+----++-++++++++-++++---++--+--+++--+---+++---+++--++++-+--++\| ||||| |  
||   |||| |  ||  | ||||| | /-+--+--+-+-++--++-++---++-++++-------+-+----+++--+----++-++++++++-++++---++--+--+++\ |   |||   |||  |||| |  |||| ||||| |  
|\---++++-+--++--+-+++++-+-+-+--+--+-+-++--++-++---++-++++-------+-+----+++--+----++-+++++++/ ||||   ||  |  |||| |   |||   |||  |||| |  |||| ||||| |  
|    |||\-+--++--+-+++++-+-+-+--+--+-+-++--++-++---++-++++-------+-+----+++--+----++-++++/||  ||||   ||  |  |||| |   |||   |||  |||| |  |||| ||||| |  
|    |||/-+--++--+-+++++-+-+-+--+--+-+-++--++-++---++-++++-------+-+-\  |||  |    || |||| ||  ||||   ||  |  |||| |   |||   |||  |||| |  |||| ||||| |  
|    |||| |  ||  | ||||| | | |  |  | | ||  || ||   |\-++++-------+-+-+--+++--+----++-++++-++--+++/   ||  |  |||| |   |||   |||  \+++-+--+++/ ||||| |  
|    |||| |  ||  | ||||| | | |/-+--+-+-++--++-++---+--++++-------+-+-+--+++--+----++-++++-++--+++----++--+--++++\|   |||   |||   ||| |  |||  ||||| |  
|    |||| |  ||  | ||||| | | || |  | | ||  || || /-+--++++-------+-+-+--+++--+--\ || |||| ||  |||    ||  |  ||||||   |||   |||   ||| |  |||  ||||| |  
|    |||| |  ||  | ||||| \-+-++-+--+-+-++--++-++-+-+--++++-------+-+-+--/||  |  | || |||| ||  |||    ||  |  ||||||   |||   |||   ||| |  |||  ||||| |  
|    |||| |  ||  | |||||   | || |  | | ||  || || | |  |||| /-----+-+-+---++--+--+-++-++++-++--+++----++--+--++++++---+++---+++\  ||| |  |||  ||||| |  
|    |||| |  \+--+-+++++---+-++-+--+-+-++--++-++-+-+--++++-+-----+-/ |   ||  |  | || |||| ||  |||   /++--+--++++++\  |||   |||| /+++-+--+++\ ||||| |  
|    |||| \---+--+-+++++---+-++-+--+-+-++--++-+/ v |  |\++-+-----+---+---++--+--+-++-++++-++--+++---+++--+--/||||||  |||   |||| |||| |  |||| ||||| |  
|    ||||  /--+--+-+++++--\|/++-+--+-+-++--++-+--+-+--+-++-+-----+---+---++--+--+-++-++++-++--+++---+++--+\  ||||||  |||   |||| |||| |  |||| ||||| |  
|    ||||  |  | /+-+++++--+++++-+--+-+-++--++-+--+-+--+-++-+-----+---+---++-\|  | || |||| ||  |||   |||/-++--++++++-\|||   |||| |||| |  |||| ||||| |  
|    ||||  |  | || |||||  ||||| |  | | ||  || |  | |  | || |/----+---+---++-++--+-++-++++-++--+++---++++-++--++++++-++++\  |||| |||| |  |||| ||||| |  
\----++++--+--+-++-+++++--+++++-+--+-+-++--++-+--+-+--+-++-++----+---+---++-++--+-++-/||| ||  |||   |||| ||  |||||| |||||  |||| |||| |  |||| ||||| |  
    /++++--+--+-++-+++++\ |||\+-+--+-+-++--++-+--+-+--+-++-++----+---+---++-++--+-++--+++-++--+++---++++-++--++++++-+++/|  |||| |||| |  |||| ||||| |  
    |||||/-+--+-++-++++++-+++-+-+-\| \-++--++-+--+-+--+-++-++----+---+---++-++--+-++--+++-++--+++---++++-++--++++++-+++-+--++++-++++-+--++++-+++/| |  
    |||||| |  | || |||||| |\+-+<+-++---++--++-+--+-+--+-++-++----+---+---++-++--+-++--+++-++--+++---++++-++--++/||| ||| |  |||| |||| |  |||| ||| | |  
    |||||| |  | || |||||| | | \-+-++---++--++-+--+-+--+-++-++----+---+---++-++--+-++--+++-++--+++---++++-++--++-/|| ||| |  |||| |||| |  |||| ||| | |  
    |||||| |  | || |||||| | |   | ||   ||  || |  \-+--+-++-++----+---+---++-++--/ ||  ||| ||  |||   |||| ||  ||  || ||| |  |||| |||| |  |||| ||| | |  
    |||||| |  | || |||\++-+-+---+-++---++--++-+----+--+-++-++----+---+---++-++----++--+++-++--+++---++++-++--++--++-+++-+--++++-++/| |  |||| ||| | |  
    |||||| |  |/++-+++-++-+-+---+-++---++--++-+----+--+-++-++----+---+---++-++----++--+++-++\ |||   |||| ||  ||  || ||| |  |||| || | |  |||| ||| | |  
    |||||| |  |||| ||| || | |   | |\---++--++-+----+--+-++-++----+---+---++-++----++--+++-+/| |||   |||| ||  ||  || ||| |  |||| || | |  |||| ||| | |  
    |||||| |  |||| ||| || | |   | |    ||  \+-+----+--+-++-++----+---+---++-++----++--+++-+-+-+++---++++-++--++--++-+++-+--++++-+/ | |  |||| ||| | |  
    |||||| |  |||| ||| || | |   | |    ||/--+-+----+--+-++-++---\|   |   || ||    ||  ||| | | |||   |||| ||  ||  || ||| |  |||| |  | |  |||| ||| | |  
    |||||| |  |||| ||| || | |   | |    |||  | |    |  | || ||   ||   |   || ||    ||  ||| | | ||\---++++-++--++--++-+++-+--++++-+--+-+--/||| ||| | |  
    |||||| |  |||| ||| |^ | |   | |    |||  | |    |  | || ||   ||   |   || ||    ||  |||/+-+-++----++++-++--++--++-+++\|  |||| |  | |   ||| ||| | |  
  /-++++++-+--++++\||| || | |   | |    |||  | |    |  | || ||   ||   |   \+-++----++-<++/|| | ||    |||| ||  ||  || |||||  |||| |  | |   ||| ||| | |  
  | |||||| \--++++++++-++-/ |   | |    ||| /+-+----+--+-++-++---++---+---\| || /--++--++-++-+-++----++++-++--++--++-+++++--++++-+--+\|   ||| ||| | |  
  | ||||||    |||||||| ||   |   | |    ||| || |    |  | || ||   ||   |   || || |  ||  || || | \+----++++-++--++--++-++/||  |||| |  |||   ||| ||| | |  
  | ||||||    |||||||| ||   |   | | /--+++-++-+----+--+-++-++---++---+\  || || |  \+--++-++-+--+----++++-++--++--++-++-++--++++-+--+++---+++-+/| | |  
  | ||||||    |||||||| ||   |   | | |  ||| || |    | /+-++-++---++---++--++-++-+---+--++-++-+--+----++++-++--++--++-++-++--++++-+--+++---+++-+-+-+-+\ 
  | ||||||    |||||||| ||   |   | | |  ||| || |    | || \+-++---++---++--++-++-+---+--++-++-+--+----++++-++--++--++-++-++--++++-+--+++---+++-+-/ | || 
  | ||||||    \+++++++-++---+---+-+-+--+++-++-+----+-++--+-++---++---++--++-++-+---+--++-++-+--+----+/|| ||  ||  || || ||  |||| |  |||   ||| |   | || 
  | ||||||     ||||||| ||   |   | | |  ||| || |    | ||  | ||   ||   ||  || || |   |  || || |  |    | || ||  ||  || || ||  |||| |  |||   ||| |   | || 
  | ||||||     ||||||| ||   |   | | |  \++-++-+----+-++--+-++---++---++--++-++-+---+--++-++-+--+----+-++-++--++--++-++-++--++++-+--+++---+++-+---/ || 
  | \+++++-----+++++++-+/   |   \-+-+---++-++-/    | ||  | ||   ||   ||  || || |   \--++-++-+--+----+-++-++--++--/| || ||  |\++-+--++/   ||| |     || 
  |  |v|||/----+++++++-+----+--\  | |   || ||      \-++--+-++---++---++--++-++-+------++-++-+--+----+-++-++--++---+-++-++--+-++-+--/|    ||| |     || 
  |  ||||||    \++++++-+----+--+--+-+---++-++--------++--+-++---++---++--++-++-+------++-++-/  |    | || ||  ||   | || ||  | || |   |    ||| |     || 
  |  ||||||   /-++++++-+----+--+--+-+---++-++--------++--+-++---++---++--++-++-+------++-++----+----+-++\||  ||   | || ||  | || |   |    ||| |     || 
  |  ||||||   | |||||| |    |  |  | |   \+-++--------++--+-++---++---++--++-++-+------++-++----+----+-+++++--+/   | || ||  | || |   |    ||| |     || 
  |  ||||||   | |||||| \----+--+--+-+----+-++--------++--+-++---++---++--++-++-+------++-++----+----+-+++++--+----+-+/ ||  | || |   |    ||| |     || 
  \--++++++---+-++/|||      |  |  | |    | ||        ||  | ||   ||   ||  || || |   /--++-++----+----+-+++++--+----+-+--++\ | || |   |    ||| |     || 
     ||||||   | || |||      |  |  | |    | \+--------++--+-++---++---++--/| || |   |  || ||    |    | |||||  |    | |  ||| | || |   |    ||| |     || 
     \+++++---+-++-+++------+--+--+-+----+--+--------++--+-++---++---++---+-+/ \---+--++-++----+----+-+++++--+----+-+--+++-+-++-+---/    ||| |     || 
      ||||| /-+-++-+++------+--+--+-+----+--+--------++--+-++---++---++---+-+------+--++-++----+----+-+++++--+\   | |  ||| \-++-+--------/|| |     || 
      ||||| | | || |||      \--+--+-+----+--+--------++--+-++---++---++---+-+->----+--++-++----+----+-++++/  ||   | |  |||   || |         || |     || 
      ||||| | | || |||         |  | |    |  |        |\--+-++---+/   ||/--+-+------+--++-++----+---\| |\++---++---+-/  |||   || |         || |     || 
 /----+++++-+-+-++\|||         |  | |    \--+--------+---+-++---/    |||  | |      |  || ||    |   || | |\---++---+----+++---++-+---------++-+-----/| 
 |    ||||| | | ||||||         |  | |       |        |   | ||        |||  | |      |  || ||    |   || | |    ||   |    |||   || |         || |      | 
 |    ||||| | | |\++++---------+--+-+-------+--------+---/ ||        |||  | |      |  || ||    |   || | |    ||   |    |||   || |         || |      | 
 |    ||||| | | | ||||         |  | |       |        |     ||   /----+++--+-+------+--++-++----+---++-+-+----++---+----+++---++-+------\  || |      | 
 |    ||||| | | | ||||         |  | |       |        \-----++---+----+++--+-+------+--++-++----+---++-+-+----++---+----+++---++-+------+--++-+------/ 
 |    ||||| | | | ||||         |  | \-------+--------------++---+----+/|  | |      |  || ||    |   || | |    ||   |    ||| /-++-+------+-\|| |        
 |    ||||| | | | ||||         |  |         |              \+---+----+-+--+-+------+--++-++----+---++-+-+----++---+----+++-+-+/ |      | ||| |        
 |    ||||| | \-+-++++---------+--+---------+---------------+---+----+-+--+-+------+--++-++----+---++-+-/    ||   |    ||| | |  |      | ||| |        
 |    ||||| |   | |||\---------+--+---------+---------------+---+----+-+--+-+------+--++-++----+---++-+------/|   |    ||| | |  |      | ||| |        
 |/---+++++-+---+-+++-\        |  |     /---+---------------+---+----+-+--+-+------+--++-++----+---++-+-------+---+----+++-+-+--+------+\||| |        
 \+---+++++-+---+-/|| |        |  |     |   |               |/--+----+-+--+-+------+--++-++----+---++-+-----\ |   |    ||| | |  |      ||||| |        
  |   \++++-+---+--++-+--------+--+-----+---+---------------++--+----+-+--+-+------+--+/ ||    |   || |     | |   |    ||| | |  \------++++/ |        
  |    |||| |   |  || |        |  |     |   |               ||  |    | |  \-+------+--+--++----/   || |     | |   |    ||| | |         ||||  |        
  |    |||| |   |  || |        |  |     v   |               ||  |    | |    |      |  |  \+--------++-+-----+-+---+----/|| | |         ||||  |        
  |    ||\+-+---+--++-+--------+--/     |   |               ||  |    | |    |      |  |   |        |\-+-----+-+---/     || | |         ||||  |        
  |    || | |   |  \+-+--------+--------+---+---------------++--+----+-+----+------+--+---+--------+--+----<+-+---------++-+-/         ||||  |        
  |    || | |   |   \-+--------+--------+---+---------------++--+----+-+----+------+--/   |        |  |     | |         || \-----------++/|  |        
  |    \+-+-+---+-----+--------+--------+---+---------------++--+----+-+----+------+------/        |  |     | |         ||             || |  |        
  |     | | |   |     |        |        \---+---------------++--+----+-+----+------+---------------+--+-----+-+---------++-------------+/ |  |        
  |     | | |   |     |        |            |               ||  |    | |    |      |               |  |     | |         ||             |  |  |        
  |     | | \---+-----+--------+------------+---------------++--+----+-+----+------+---------------+--+-----+-/         ||             |  |  |        
  |     | |     \-----+--------+------------+---------------++--+----+-+----/      |               |  |     |           ||             |  |  |        
  |     | |           |        |            |    /----------++--+----+-+-----------+---------------+--+-----+-----------++----\        |  |  |        
  |     | |           |        |            |    |          \+--+----+-+-----------+---------------+--+-----+-----------/|    |        |  |  |        
  \-----+-+-----------/        |            |    |           \--+----+-+-----------+---------------+--+-----/            |    |        |  |  |        
        | |                    |            \----+--------------+----+-+-----------+---------------+--+------------------+----+--------+--/  |        
        | |                    |                 |              |    | |           \---------------+--+------------------/    |        |     |        
        \-+--------------------+-----------------+--------------+----/ |                           |  |                       |        |     |        
          |                    |                 |              |      \---------------------------/  |                       |        |     |        
          \--------------------/                 |              \-------------------------------------+-----------------------+--------/     |        
                                                 |                                                    \-----------------------+--------------/        
                                                 \----------------------------------------------------------------------------/