                                                                                                                                                                            +----------------------------------------------------------------+            
                                                                +------------------------------------------+                                                                |                                                                |            
                                  +-----------------------------+------------------------------------------+--------------------------------------------------+             |                                                                |            
                                  |                             |          +-------------------------------+--------------------------------------------------+-------------+---------------------------------------------+                  |            
                                  |                             |          |                               |                                                  |             |                                             |                  |            
                                  |                             |          |                        +------+--------------------------------------------------+-------------+-------+                                     |                  |            
                              +---+-------------------+     +---+----------+------------------------+------+--------------------------------------------------+-------------+-------+-----------+                         |                  |            
                              |   |                   |     |   |          |                        |      |                                                  |             |       |           |                         |                  |            
                              |   |                   |     |   |          |                        |      |                                                  |             |       |           |                         |                  |            
                              |   |                   |     |   |          |                        |      |                                                  |             |       |           |                         |                  |            
                              |   |                   |     |   |          |                        |      |                                                  |             |       |           |                         |                  |            
                              |   |                   |     |   |          |                        |      |                              +-------------------+-------------+-------+-----------+-------------------------+------------+     |            
                              |   |                   |     |   |          |                        |      |                              |                   |             |       |           |                         |            |     |            
                              |   |                   |     |   |          |                        |      |                              |                   |             |       |           |+------------------------+---------+  |     |            
                              |   |                   |     |   |          |                        |      |                              |                   |             |       |           ||                        |         |  |     |            
                              |   |                   |     |   |          |                        |      |                              |                   |             |       |           ||                        |         |  |     |            
                              |   |                   |     |   |          |                        |      |                              |                   |             |       |           ||                        |         |  |     |            
                              |   |                   |     |   |          |                        |      |                              |                   |             |       |           ||                        |         |  |     |            
                              |   |                   |     |   |          |                        |      |                              +-------------------+-------------+-------+-----------++------------------------+---------+--+     |            
                              |   |                   |     |   |          |                        |      |                                                  |             |       |           ||                        |         |        |            
                              |   |                   |     |   |          |                        |      |                                                  |             |       |           ||                        |         |        |            
                              |   |                   |     |   |          |                        |      |                                                  |             |       |           ||                        |         |        |            
                              |   |                   |     |   |          |                        |      |                                                  |             |       |           ||                        |         |        |            
                              |   |                   |     |   |          |                        |      |                                                  |             |       |           ||                        |         |        |            
                              |   |                   |     |   |          |                        |      |                                                  |             |       |           ||                        |         |        |            
                              |   |                   |     |   | +--------+------------------------+------+------+                                           |             |       |           ||                        |         |        |            
                              |   |                   |     |   | |        |                        |      |      |                                           |             |       |           ||                        |         |        |            
                              |   |                   |     |   +-+--------+------------------------+------+      |                                           |             |       |           ||                        |         |        |            
                              |   |                   |     |     |        |                        |             |                                           |             |       |           ||                        |         |        |            
                              |   |                   |     |     |        |                        |             |                                           |             |       |           ||                        |         |        |            
                              |   |                   |     |     |        |                        |             |                                           |             |       |           ||                        |         |        |            
                              |   |                   |     |     |        |                        |             |                                           |             |       |           ||                        |         |        |            
                              |   |                   |     |     |        |                        |             |                                           |             |       |           ||                        |         |        |            
                              |   |                   |     |     |        |                        |             |                                           |             |       |           ||                        |         |        |            
                              |   |                   |     |     |        |                        |             |                                           |             |       |           ||                        |         |        |            
                              |   |                   |     |     |        |                        |             |                                           |             |       |           ||                        |         |        |            
                              |   |                   |     |     |        |                        |             |                                           |             |       |           ||                        |         |        |            
                              |   |                   |     |     |        |                        |             |                                           |             |       |  +--------++------------------------+         |        |            
                              |   |                   |     |     |        |                        |             |                                           |             |       |  |        ||                        |         |        |            
                              |   |                   |     |     |        |                        |             |                                           |             |       |  |        ||                        |         |        |            
                              |   |                   |     |     |        |                        |             |                                           |             |       |  |        ||                        |         |        |            
                              |   |                   |     +-----+--------+------------------------+-------------+-------------------------------------------+-------------+-------+--+--------+|                    +---+----+----+--+-----+            
                              |   |                   |           |        |                        |             |                                           |             |       |  |         |                    |   |    |    |  |     |            
                              |   |                   |           |        |                        |             |                                           |             |       |  |         |                    |   |    |    |  |     |            
                              |   |                   |           |        |                        |             |                                           |             |       |  |         |                    |   |    |    |  |     |            
                              |   |                   |           |        |                        |             |                                           |             |       |  |         |                    |   |    |    |  |     |            
                              |   |                   |           |        |                        |             |                                           |             |       |  |         |                    |   |    |    |  |     |            
                              |   |                   |           |        |                        |             |                                           |             |       |  |         |                    |   |    |    |  |     |            
                              |   |                   |           |        |                        |             |                                           |             |       |  |         |                    |   |    |    |  |     |            
                              |   |+-+----------+-----+--------+  |        |                        |             |                                           |             |       |  |         |                    |   |    |    |  |     |            
                              |   || |          |     |        |  |        |                        |             |                                           |             |       |  |         |                    |   |    |    |  |     |            
                              |   || |          |     |        |  |        |                        |             |                                           |             |       |  |         |                    |   |    |    |  |     |            
                              |   || |          |     |        |  |        |                        |             |                                           |             |       |  |         |                    |   |    |    |  |     +---------+  
                              |   || |          |     |        |  |        |                        |             |                                           |             |       |  |         |                    |   |    |    |  |     |         |  
                              |   || |          |     |        |  |        |                        |             |                                           |             |       |  |         |                    |   |    |    |  |     |         |  
                              |   || |          |     |        |  |        |                        |             |                                           |             |       |  |         |                    |   |    |    |  |     |         |  
                              |   || |          |     |        |  |        |                        |             |                                           |             |       |  |         |                    |   |    |    |  |     |         |  
                              |   || |          |     |        |  |        |                        |             |                                           |             |       |  |         |                    |   |    |    |  |     |         |  
                    +---------+---++-+----------+-----+--------+--+--------+------------------------+-------------+---------+                                 |             |       |  |         |                    |   |    |    |  |     |         |  
                    |         |   || |          |     |        |+-+--------+------------------------+-------------+---------+-----------------------+         |             |       |  |         |                    |   |    |    |  |     |         |  
         +----------+---------+---++-+----------+-----++       || |        |                        |             |         |                       |         |             |       |  |         |                    |   |    |    |  |     |         |  
         |          |         |   || |          |     ||       || |        |                        |             |         |                       |         |             |       |  |         |  +-----------------+---+----+----+--+-----+---+     |  
         |          |         |   || |          |     ||       || |        |                        |             |         |                       |         |             |       |  |         |  |                 |   |    |    |  |     |   |     |  
         |          |         |   || |          |     ||       || |        |                        |             |         |                       |         |             |       |  |         |  |                 |   |    |    |  |     |   |     |  
         |          |         |   || |          |     ||       || |        |                        |             |         |                       |         |             |       |  |         |  |                 |   |    |    |  |     |   |     |  
         |          +---------+---++-+----------+-----++-------++-+--------+------------------------+-------------+---------+                       |         |             |       |  |         |  |                 |   |    |    |  |     |   |     |  
         |                    |   || |          |     ||       || |        |                        |             |                                 |         |             |       |  |         |  |                 |   |    |    |  |     |   |     |  
         |                    |   || |          |     ||       || |        |                        |       +-----+---------------------------------+---------+-------------+-------+--+---------+--+----+            |   |    |    |  |     |   |     |  
         |                    |   || |          |     ||       || |        |                        |       |     |                                 |         |             |       |  |         |  |    |            |   |    |    |  |     |   |     |  
         |                    |   || |          |     ||       || |        |                        |       |     |                                 |         |             |       |  |         |  |    |            |   |    |    |  |     |   |     |  
         |                    |   || |          |     ||       || |        |                        |       |     |                                 |         |             |       |  |         |  |    |            |   |    |    |  |     |   |     |  
         |                    |   || |          |     ||       || |        |                        |       |     |                                 |         |             |       |  |         |  |    |            |   |    |    |  |     |   |     |  
         |                    |   || |          |     ||       || |        |                        |       |     |                                 |         |             |       |  |         |  |    |            |   |    |    |  |     |   |     |  
         |                    |   |+-+----------+-----++-------+| |        |                        |       |     |                                 |         |       +-----+-------+--+----+----+--+----+------------+---+    |    |  |     |   |     |  
         |                    |   |  |          |     ||        | |        |                        |       |     |              +------------------++        |       |     |       |       |    |  |    |            |   |    |    |  |     |   |     |  
     +---+--------------------+---+--+----------+-----++--------+-+--------+------------------------+-------+-----+--------------+------------------++--------+-------+-----+-------+-------+----+--+--+ |            |   |    |    |  |     |   |     |  
     |   |                    |   |  |          |     ||        | |        |                        |       |     |              |                  ||        |       |     |       |       |    |  |  | |            |   |    |    |  |     +---+-----+  
     |   |                    |   |  |          |     ||        | |        |                        |       |     |              |                  ||        |       |     |       |       |    |  |  | |            |   |    |    |  |     |   +-------+
     |   |                    |   |  |  +-+     |     ||        | |        |   +--------------------+-+-----+-----+--------------+----+-------------++--------+-------+-----+-------+-------+----+--+--+-+------------+---+----+---+|  |     |   |       |
     |   |                    |   |  |  | |     |     ||        | |        |   |                    +-+-----+-----+--------------+----+-------------++--------+-------+-----+-------+       |    |  |  | |            |   |    |   ||  |     |   |       |
     |   |                    |   |  |  | |     |     ||        | |        |   |                      |     |     |              |    |   +---------++--------+-------+-----+---------------+----+--+  | |            |   |    |   ||  |     |   |       |
     |   |                    |   |  |  | |     |     ||        | |        |   |                      |     |     |              |    |   |         ||        |       |     |               |    |  |  | |            |   |    |   ||  |     |   |       |
     |   |+-------------------+---+--++ | |     |     ||        | |        | +-+------------------+   |     |     |              |    |   |         ||        |       |     |               |    |  |  | |            |   |    |   ||  |     |   |       |
     |   ||                   |   +--++-+-+-----+-----++--------+-+--------+-+-+------------------+---+-----+-----+--------------+----+---+---------++--------+       |     |               |    |  |  | |            |   |    |   ||  |     |   |       |
     |   ||                   |      || | |     |     ||        | |        | | |                  |   |     |     |              |    |   |         ||                |     |               |    |  |  | |            |   |    |   ||  |     |   |       |
     |   ||                   |      || | |     |     ||        | |        | | |                  |   |     |     |              |    |   |         ||                |     |               |    |  |  | |            |   |    |   ||  |     |   |       |
     |   ||                   |      || | |     |     ||        | |        | | |                  |   |     |     |              |    |   |         ||                |     |               |    |  |  | |            |   |    |   ||  |     |   |       |
     |   ||                   |      || | |     |     ||        | |        | | +------------------+---+-----+-----+--------------+----+   |         ||                |     |               |    |  |  | |            |   |    |   ||  |     |   |       |
     |   ||                   |      || | |     |     ||        | |        | |                    |   |     |     |              |        |         ||                |     |               |    |  |  | |            |   |    |   ||  |     |   |       |
     |   ||                   |      || | |     |     ||        | |        | |                    |   |     |     |              |        |         ||                |     |               |    |  |  | |            |   |    |   ||  |     |   |       |
     |   ||                   |      || | |     |     ||        | |        | |                    |   |     |     |              |        |         ||                |     |               |    |  |  | |            |   |    |   ||  |     |   |       |
     |   ||                   |      || | |     |     ||        | |        | |                    |   +-----+-----+--------------+----+   |         ||                |     |               |    |  |  | |            |   |    |   ||  |     |   |       |
     |   ||                   |      || | |     |     ||        | |        | |                    |   |     |     |              |    |   |         ||                |     |               |    |  |  | |            |   |    |   ||  |     |   |       |
     |   ||                   |      || | |     |     ||        | |        | |                    |   |     |     |              |    |   |         ||                |     |               |    |  |  | |            |   |    |   ||  |     |   |       |
     |   ||                   |      || | |     |     ||        | |        | |                    |   |     |     |              |    |   |         ||                |     |               |    |  |  | |            |   |    |   ||  |     |   |       |
     +---++-------------------+------++-+-+-----+-----++--------+-+--------+-+--------------------+---+-----+-----+--------------+----+---+---------++----------------+-----+---------------+----+--+--+ |            |   |    |   ||  |     |   |       |
         ||                   |      || | |     |     ||        | |        | |                    |   |     |     |              |    |   |         ||                |     |               |    |  |    |            |   |    |   ||  |     |   |       |
         ||                   |      || | |     |     ||        | |        | |                    |   |     |     |              |    |   |         ||                |     |               |    |  |    |            |   |    |   ||  |     |   |       |
         ||                   |      || | |     |     ||        | |        | |                    |   |     |     |              |    |   |         ||                |     |               |    |  |    |            |   |    |   ||  |     |   |       |
         ||                   |      || | |     |     ||        | |        | |                    |   |     |     |              |    |   |   +-----++----------------+-----+---------------+----+--+----+            |   |    |   ||  |     |   |       |
         ||                   |      || | |     |     ||        | |        | |                    |   |     |     |              |    |   |   |     ||                |     |               |    |  |    |            |   |    |   ||  |     |   |       |
         ||                   |      || | |     |     ||        | |        | |                    |   |+----+-----+--------------+----+---+---+-----++----------------+-----+---------------+----+--+----+--+         |   |    |   ||  |     |   |       |
         ||                   |      || | |     |     ||        | |        | |                    |   ||    |     |              |   ++---+---+-----++----------------+-----+---------------+----+--+----+--+---------+---+----+---+|  |     |   |       |
         ||                   |      || | |     |     ||        | |        | |                    |   ||    |     |              |   ||   |   |     ||                |     |               |    |  |    |  |         |   |    |   ||  |     |   |       |
         ||                   |      || | |     |     ||        | |        | |                    |   ||    |     |              |   ||   |   |     ||                |     |               |    |  +----+--+---------+---+----+---++--+-----+---+       |
         ||                   |      || | |     |     ||        | |        | |                    |   ||    |     |              |   ||   |   |     ||                |     |               |    |  |    |  |         |   |    |   ||  |     |   |       |
         ||                   |      || | |     |     ||        | |        | |                    |   ||    |     |              |   ||   |   |     ||                |     |               |    |  |    |  |         |   |    |   ||  |     |   |       |
         ||                   |      || | |     |     ||  ++    | |        | |                    |   ||    |     |              |   ||   |   |     ||                |     |               |    |  |    |  |         |   |    |   ||  |     |   |       |
         ||                   |      || | |     |     ||  ||    | |        | |                    |   ||    |     |              |   ||   |   |     ||                | +---+---------------+----+--+---+|  |         |   |    |   ||  |     |   |       |
         ||  +----------------+------++-+-+-----+-----++--++----+-+--------+-+--------------------+---++----+-----+--------------+---++---+---+-----++----------------+-+---+---------------+----+--+--+||  |         |   |    |   ||  |     |   |       |
         ||  |                |      || +-+     |     ||  ||    | |        | |                    |   ||    |     |              |   ||   |   |     ||                | |   |               |    |  |  |||  |         |   |    |   ||  |     |   |       |
         ||  |                |      ||         |     ||  ||    | |        |++--------+           |   ||    |     |              |   ||   |   |     ||                | |   |               |    |  |  |||  |         |   |    |   ||  |     |   |       |
         ||  |                |      ||         |     ||  ||    | |        |||        |           |   ||    |     |              |   ||   |   |     ||                | |   |+--------------+----+--+--++++ |         |   |    |   ||  |     |   |       |
         ||  |                |      ||         |     ||  ||    | |        |||        |           |   ||    |     |              |   ||   |   |     ||                | |   ||              |    |  |  |||| |         |   |    |   ||  |     |   |       |
         ||  |                |      ||         |     ||  ||    | |        |||        |           |   ||    |     |              |   ||   |   |     ||                | |   ||              |    |  |  |||| |         |   |    |   ||  |     |   |       |
         ||  |                |      ||         |     ||  ||    | |        |||        |           |   ||    |     |              |   ||   |   |     ||                | |   ||              |    |  |  |||| |         |   |    |   ||  |     |   |       |
         ||  |                |      ||         |     ||  ||    | |        |||        |           |   ||    |     |              |   ||   |   |     ||                | |   ||              |    |  |  |||| |         |   |    |   ||  |     |   |       |
         ||  |                |      ||         |     ||  ||    +-+--------+++--------+-----------+---++----+-----+--------------+---++---+---+-----+|                | |   ||              |    |  |  |||| |         |   |    |   ||  |     |   |       |
         ||  |                |      ||         |     ||  ||      |        |||        |           |   ||    |     |              |   ||   |   |      |                | |   ||              |    |  |  |||| |         |   |    |   ||  |     |   |       |
         ||  |                |      ||         |     ||  ||      |        |||        |           |   ++----+-----+--------+-----+---++---+---+------+----------------+-+---++--------------+----+--+--++++-+---------+---+----+---++--+----+|   |       |
         ||  |                |      ||         |     ||  ||      |        |||        |           |   ||    |     |        |     |   |    |   |      |                | |   ||              |    |  |  |||| |         |   |    |   ||  |    ||   |       |
         ||  |                |      ||         |     ||  ||      |        |||        |           |   ||    |     |        |     |   |    |+--+------+----------------+-+---++--------------+----+--+--++++-+         |   |    |   ||  |    ||   |       |
         ||  |                |      ||         |     ||  ||      |        |||        |           |   ||    |     |        |     |   |    ||  |      |+---------------+-+---++--------------+----+--+--++++-+---------+---+----+---++--+----++---+--+    |
         ||  |          +-----++     ||         |     ||  ||      |        |||        |           |   ||    |     |        |     |   |    ||  |      ||               | |   ||              |    |  |  |||| |         |   |        ||  |    ||   |  |    |
         ||  +----------+-----++-----++-----+---+-----++--++------+--------+++--------+-----------+---++----+-----+--------+-----+---+----++--+------++---------------+-+---++---+----------+----+--+--+||| |         |   |        ||  |    ||   |  |    |
         ||             |     ||     ||     |   |     ||  ||      |        |||        |           |   ||    |     |        |     |   |    ||  |      ||               | |   ||   |          |    |  |   ||| |         |   |        ||  |    ||   |  |    |
         ||             |     ||     ||     |   |     ||  ||      |        |||        |     +-----+---++----+-----+--------+-----+---+----++--+--+   ||               | |   ||   |          |    |  |   ||| |         |   |        ||  |    ||   |  |    |
         ||             |     ||     ||     |   |     ||  ||      |   +----+++--------+-----+-----+---++----+-----+--------+-----+---+----++--+--+---++---------------+-+---++---+----------+----+--+---+++-+---------+---+--------++--+----++---+--+-+  |
         ||             |     ||     ||     |   |     ||  ||      |   |    |||        |     |     |   ||    |     |        |     |   |    ||  |  |   ||               | |   ||   |          |    |  |   ||| |         |   |        ||  |    ||   |  | |  |
         ||             |     ||     ||     |   |     ||  ||      |   |    |||        |     |     |   ||    |     |        |     |   |    ||  |  |   ||               | |   ||   |          |    |  |   ||| |         |   |        ||  |    ||   |  | |  |
         ||             |     ||     ||     |   |     ||  ||      |   |    |||        |     |     |   ||    |     |        |     |   |    ||  |  |   ||               | |   ||   |          |    |  |   ||| |         |   |        ||  |    ||   |  | |  |
         ||             |     ||     ||     |   |     ||  ||      |   |    |||        |     |     |   ||    |     |        |     |   |    ||  |  |   ||               | |   ||   |          |    |  |   ||| |         |   |        ||  |    ||   |  | |  |
         ||             |     ||     ||     |   |     ||  ||      |   |    |||        |     |     |   ||    |     |        |     |   |    ||  |  |   ||               | |   ||   |          |    |  |   ||| |         |   |        ||  |    ||   |  | |  |
         ||             |     ||     ||     |   |     ||  ||      |   |    |||        |     |     +---++----+-----+--------+-----+---+----++--+--+---++---------+-----+-+---++---+----------+----+--+---+++-+---------+---+-------+||  |    ||   |  | |  |
         ||             |     ||     ||     |   |     ||  ||      |   |    |++--------+-----+-----+---++----+-----+--------+-----+---+----++--+--+---++---------+-----+-+---++---+----------+----+--+---+|| |         |   |       |||  |    ||   |  | |  |
         ||             |     ||     ||     |   |     ||  ||      |   |    |||        |     +-----+---++----+-----+--------+-----+---+----++--+--+   ||         |     | |   ||   |          |    |  |   ||| |         |   |       |||  |    ||   |  | |  |
         ||             |     ||     ||     |   |     ||  ||      |   |    |||        |           |   ||    |     |        |     |   |    ||  |      ||         |     | |   ||   |          |    |  |   ||| |         |   |       |||  |    ||   |  | |  |
         ||             |     ||     ||     |   |     ||  ||      |   |    +++--------+-----------+---++----+-----+--------+-----+---+----++--+------++---------+-----+-+---++---+----------+----+--+---+++-+---------+---+       |||  |    ||   |  | |  |
         ||             |     ||     ||     |   |     ||  ||      |   |     ++--+-----+-------+---+---++----+-----+--------+-----+---+----++--+------++---------+-----+-+---++-+ |        +-+----+--+---+++-+---------+---+       |||  |    ||   |  | |  |
         ||             |     ||     ||     |   |     ||  ||      |   |     ||  |     |       |   |   ||    |     |        |     |   |    ||  |      ||         |     | |   || | |        | |    |  |   ||| |         |   |       |||  |    ||   |  | |  |
         ||             |     ||     ||     |   |     ||  ||      |   |     ||  |     |     +-++--+---++----+-+---+--------+-----+---+----++--+------++---------+-----+-+---++-+-+--+     |++----+--+---+++-+---------+---+-------+++--+----++---++ | |  |
         ++-------------+-----++-----++-----+---+-----++  ||      +---+-----++--+-----+-----+-++--+---++----+-+---+--------+-----+---+----++--+------++---------+-----+-+---++-+-+--+-----+++----+--+---+++-+---------+---+-------+++--+----++---++-+-+  |
          |             |     ||     ||     |   |     |   ||                ||  |     |     | ||  |   ||    | |            |     |   |    ||  |      ||         |     | |   || | |  |     |||    |  |   ||| |         |   |       |||  |    ||   || |    |
          |             |     ||     ||     |   |     |   ||                ||  |     |     | ||  |   ||    | |            |     |   |    ||  |      ||         |     | |   || | |  |     |||    |  |   ||| |         |   |       |||  |    ||   || |    |
          |             |     ||     ||     |   |     |   ||                ||  |     |     | ||  |   ||    | |            |     |   |    ||  |      ||         |     +-+---++-+-+--+-----+++----+--+---+++-+---------+---+-------+++--+----++---++-+-+  |
          |             |     ||     ||     |   |     |   ||                ||  |     |     | ||  |   ||    +-+------------+-----+---+----+|  |      ||         |     | |   || | |  |     |||    |  |   ||| |         |   |       |||  |    ||   || | |  |
          |             |     ||     ||     |   |     |   ||                ||  |     |     | ||  |   ||    | |            |     |   |    ||  |      ||         |     | |   || | |  |     |||    |  |   ||| |         |   |       |||  |    ||   || | |  |
          |             |     ||     ||     |   |     |   ||                ||  |     |     | ||  |   ||    | |            |     |   |    ||  |      ||         |     | |   || | |  |     |||    |  |   ||| |         |   |       |||  |    ||   ++-+-+--+
          |             |     ||     ||     |   |     |   ||                ||  |     |     | ||  |   ||    | |            |     |   |    ||  |      ||         |     | |   || | |  |     |||    |  |   ||| |         |   |       |||  |    ||    | | |   
          |             |     ||     ||     |   |     |   ||                ||  |     |     | ||  |   ||    | |            |     |   |    ||  |      ||         |     | |   || | |  |     |||    |  |   ||| |         |   |       |||  |    ||    | | |   
          |             |     ||     ||     |   |     |   ||                ||  |     |     | ||  |   ||    | |            |     |   |    ||  |      ||         |     | |   || | |  |    ++++----+--+---+++-+---------+---+----+  |||  |    ||    | | |   
          |             |     ||     ||     |   |     |   ||                ||  |     |     | ||  |   ||    | |            |     |   |    ||  |      ||         |     | |   || | |  |    ||||    |  |   ||| |         |   |    |  |||  |    ||    | | |   
          |             |     ||     ||     |   |     |   ||                ||  |     |     | ||  |   ||    +-+------------+-----+---+----++--+------++---------+-----+-+---++-+-+--+----++++----+--+---++| |         |   |    |  |||  |    ||    | | |   
          |             |     ||     ||     |   |     |   ||                ||  |     |     | ||  |   ||    | |            |     |   |    ||  |      ||         |     | |   || | |  |    ||||    |  |   ||| |         |   |    |  |||  |    ||    | | |   
          |             |     ||     ||     |   |     |   ||                ||  |     |     | ||  |   ||    | |            |     |   |    ||  |      ||         |     | |   || | |  |    ||||    |  |   ||| |         |   |    |  |||  |    ||  +-+-+ |   
          |             |     ||     ||     |   |     |   ||                ||  |     |     | ||  |   ||    | |            |     |   |    ||  |      ||         |     | |   || | |  |    ||||    |  |   ||| |         |   |    |  |||  |    ||  | | | |   
          |             |     ||     ||     |   |     |   ||                ||  |     |     | ||  |   ||    | |            |     |   |    ||  |      ||         |     | |   || | |  |    ||||    |  |   ||| |         |   |    |  |||  |    ||  | | | |   
          |             |     ||     ||     |   |     |   ||                ||  |     |     | ||  |   ||    | |            |     |   |    ||  |      ||         |     | |   || | |  |    ||||    |  |   ||| |         |   |    |  |||  |    ||  | | | |   
          |             |     ||     ||     |   |     |   ||                ||  |     |     | ||  |   ||    | |            |     |   |    ||  |      ||         |     | |   || | |  |    ||||    |  |   ||| |         |   |    |  |||  |    ||  | | |++   
          |             |     ||     ||     |   |     |   ||                ||  |     |     | ||  |   ||    | |            |     |   |    ||  +------++---------+-----+-+---++-+-+--+----++++----+--+---++| |         |   |    |  |||  |    ||  | | |||   
          |             |     ||     ||     |   |     |   ||                ||  | +---+-----+-++--+---++----+-+------------+-----+---+----++---------++---------+-----+-+---++-+-+--+----++++----+--+---+-+-+---------+---++   |  |||  |    ||  | | |||   
          |            ++-----++-+   ++-----+---+     |   ||                ||  | |   |     | |   |   ||    | |            |     |   |    ||         ||         |     | |   || | |       ||||    |  |   | | |         +---++---+--+++--+    ||  | | |||   
          |            ||     || |    |     |         |   ||                ||  | |   |     | |   |   ||    | |            |     |   |    ||         ||       +-+-----+-+---++-+-+-----+ ||||    |  |   | | |             ||   |  |||       ||  | | |||   
          |            ||     || |    |     |         |   ||                ||  | |   |     | |   |   ||    | |            |     |   |    ||         ||       | |     | |   || | |     | ||||    |  |   | | |             ||   |  |||       ||  | | |||   
          |            ||     || |    |     |         |   ||                ||  | |   |     | |   |   ||    | |            |     |   |    ||         ||       | |     | |   || | |     | ||||    |  |   | | |             ||   |  |||       ||  | | |||   
          |            ++-----++-+    |     |         |   ||                ||  | |   |     | |   |   ||    | |            |     |   |    ++---------++-------+-+-----+-+---++-+-+-----+-++++----+--+   | | |             ||   |  |||       ||  | | |||   
          |             |     ||      |     |         |   ||                ||  | |   |     | |   |   ||    | |            |     |   |    ||         ||       | |     | |   || |++----+| ||||    |      | | |             ||   |  |||       ||  | | |||   
          |             |     ||      |     |         |   ||                ||  | |   |     | |   |   ||    | |            |     |   |    ||         ||    +--+-+-----+-+---++-+++----++-++++----+------+-+ |             ||   |  |||       ||  | | |||   
          |             |     ||      |     |         |   ||                ||  | +---+-----+-+---+---++----+-+------------+-----+---+----++---------++----+--+-+-----+-+---++-+++----++-++++----+------+-+-+-------------++   |  |||       ||  | | |||   
          |             |     ||      |     |         |   ||                ||  |     |     | |   |   ||    | |            |     |   |    ||         ||    |  | |     | |   || |||    || |+++----+------+-+-+---+         |    |  |||       ||  | | |||   
          |             |     ||      |     |         |   ||                ||  |     |     | |   |   ||    | |            |     |   |    ||         ||    |  | |     | |   || |||    || ||||    |      | | |   |         |    |  |||       ||  | | |||   
          |             |     ||      |     |         |   ||                ||  |     |     | |   |   ||    | |            |     |   |    ||         ||    |  | |     | |   || |++----+|+++++----+----+ | | |   |         |    |  |||       ||  | | |||   
          +-------------+-----++------+     |         |   ||                ||  |     |     | |   |   ||    | |            |     |   |    ||         ||    |  | |     | |   || | |     ||||||    |    | | | |   |         |    |  |||       ||  | | ||+--+
                        |     ||            |         |   ||                ||  |     |     | |   |   ||    | |            |     |   |    ||         ||    |  | |     | |   || | |     ||||||    |    | | | |   |         |    |  |||       ||  | | |||  |
                        +-----++            |         |   ||                ||  |     |     | |   |   ||    | |            |     |   |    ||         ||    |  | |     | |   || | |     ||||||    |    | | | |   |         |    |  |||       ||  | | |||  |
                              |             |         |   ||                ++--+-----+-----+-+---+---++----+-+------------+-----+---+----++---------++----+--+-+-----+-+---++-+-+-----++++++----+----+-+ | |   |         |    |  |||       ||  | | |||  |
                              |             |         |   ||                ||  |     |     | |   |   ||    | |            |     |   |    ||         ||    |  | |     | |   || | |     |+++++----+----+ | | |   |         |    |  |||       ||  | | |||  |
                              |             |         |   ||                ||  |     |     | |   |   ||    | |            |     |   |    ||      +--++----+--+-++   ++-+---++-+-+-----+-++++-+--+------+ | |   |         |    |  |||       ||  | | |||  |
                              |             |         |   ||                ||  |     |     | |   |   ||    | |            |     |   |    ||      |  ||    |  | ||   ||     || | |     | |||| |  |        | |   |         |    |  |||       ||  | | |||  |
                              |             |         |   ||                ||  |     |     | |   |   ||    | |            |     |   |    ||      |  ||    |  +-++---++-----++-+-+-----+-++++-+--+--------+ |   |         |    |  |||       ||  | | |||  |
                              |             |         |   ||                ||  |     |     | |   |+--++----+-+------------+-----+---+----++------+--++----+----++---++-----+--+-+-------++++-+--+--------+-+---+---------+-+  |  |||       ||  | | |||  |
                              |             |         |   ||                ||  |     |     | |   ||  ||    | |            |     |   |    ||      |  ||    |    ||   ||     |  | |       |||| |  |        | |   |         | |  |  |||       ||  | | |||  |
                              |             |         |   ||                ||  |     |     | |   ||  ||    | |            |     |   |    ||      |  ||    |    ||   ||     |  | |       |||| |  |        | |   |         | |  |  |||       ||  | | |||  |
                              |             |         |   ||                ||  |     |     | |   ||  ||    | |            |     |   |    ||      |  ||    |    ||   ||     |  | |       |||| |  |        | |   |         |++--+--+++-------++  +-+-+||  |
                              |             |         |   ||                ||  |     |     | |   ||  ||    | |            |     |   |    ||      |  ||    |    ||   ||     |  | |       |||| |  |        | |   |         |||  |  |||       ||    | |||  |
                              |             |         |   ||                ||  |     |     | |   ||  ||    | |            |     |   |    ||      |  ||    |    ||   ||     |  | |       |||| |  |        | |   |         |||  |  |||       ||    | |||  |
                              |             |         |   ||                |+--+-----+-----+-+---+|  ||    | |            |     |   |    ||      |  ||    |    ||   ||     |  | |       ++++-+--+--------+-+---+---------+++--+  |||       ||    | |||  |
                              |             |         |   ||                |   |     |     | |   ||  ||    | |            |     |   |    ||      |  ||    |    ||   |+-----+--+-+--------+++ |  |        | |   |         |||     |||       ||    | |||  |
                              |             |         |   ||                |   |     |     | |   ||  ||    | |            |     |   |    ||      |  ||    |    ||   ||     |  | |        ||  |  |        | |   |         |||     |||       ||    | |||  |
                              |             |         |   ||                |   |     |     | |   ||  ||    +-+------------+-----++--+----++------+--++----+----+|   ||     |  | |        ||  |  |        | |   |         |||     |||       ||    | |||  |
                              |             |         |   ||            +---+---+-----+-----+-+--+||  ||      |            |     ||  |     |      |  ||    |    ||   ||     |  | |        ||  |  |        | | +-+---------+++--+  |||       ||    | |||  |
                   +----------+-------------+---------+---++------------+---+---+-----+-----+-+--+++--++------+------------+-----++--+-----+-----+|  ||    |    ||   ||     |  | |        ||  |  |        | | | |         |||  |  ||+-------++-+  | |||  |
                   |          |             |         |   ++            |   |   |     |     | |  |||  ||      |            |     ||  |     |     ||  ||    |    ||   ||     |  | |    +---++--+--+------+ | | | +--+      |||  |  |||       || |  | |||  |
                   |          |             |         |                 |   |   |     |     | |  |||  ||      |            |     ||  |     |     ||  ||    |    ||   ||     |  | |    |   ||  |  |      | | | | |  |      |||  |  |||       || |  | |||  |
                   |          |             |         |                 |   |   |     |     | |  |||  ||      |            |     ||  |     |     ||  ||    |    ||   ||     |  | |    |   ||  |  |      | | | | +--+      |||  |  |||       || |  | |||  |
                   |          |             |         |                 |   |   |     |     | |  |||  ||      |            |     ||  |     |     ||  ||    |    ||   ||     |  | |    |   ++--+--+------+-+-+-+-+---------+||  |  |||       || |  | |||  |
                   |          |             |         |                 |   |   |     |     | |  |||  ||      |            |     ||  |     |     ||  ||    |    ||   ||     |  | |    |   ||  |  |      | | | +-+----------++--+  |||       || |  | |||  |
                   |          |             |         |                 |   |   |     |     | |  |||  ||      |            |     ||  |     |     ||  ||    |    ||   ||     |  | |    |   ||  |  |      | | |   |          ||     |||       || |  | |||  |
                   |          |             |         |                 |   |   |     |     | |  |||  ||      |            +-----++--+-----+-----++--++----+----++---++-----+--+-+----+---++--+--+------+-+-+---+----------++-----+++-------+| |  | |++  |
                   |          |             |         |                 |   |   |     |     | |  |||  ||      |                  ||  |     |     ||  ||    |    ||   ||     |  | |    |   ||  |  |      | | |   |          ||     |||        | |  | | |  |
                   |          +-------------+---------+                 |   +---+-----+     | |  |||  ||      |                  ||  |     |     ||  ||    |    ||   ||     |  | |    |   ||  |  |      | | |   |          ||     |||        | |  | | |  |
                   |                        |                           |   |   |           | |  |||  ||      |                  ||  |     |     ||  ||    |    ||   ||     |  | |    |   ||  |  |      | | |   |          ||     |||        | |  | | |  |
                   |                        |                           |   |   |           | |  |||  ||      |                  ||  |     |     ||  ||    |    ||   ||     |  | |    |   ||  |  |      | | |   |          ||     |||        | |  | | |  |
                   |                        |                           |   |   |           | |  |++--++------+------------------++--+-----+-----++--++----+----++---++-----+--+-+----+---++--+--+------+-+-+---+----------++-----+||        | |  | | |  |
                   |                        |                           |   |   |           | |  | |  ||      |                  ||  |           ||  ||    |    ||   ||     |  | |    |   ||  |  |      | | |   |          ||      ||        | |  | | |  |
                   |                        |                           |   |   |           | |  | |  ||      |                  ||  |           ||  ||    |    ||   ||     |  | |    |   ||  |  |      | | |   |          ||      ||        | |  | | |  |
                   |                        |                           |   |   |           | |  | |  ||      |                  ||  |           ||  ||    |    ||   ||     |  | |    |   ||  |  |      | | |   |          ||      ||        | |  | | |  |
                   +----------------------+-+---------------------------+---+---+-----------+-+--+-+--++------+------------------++--+-----------++--++----+----++---++-----+--+-+----+---++--+--+------+-+-+---+          ||      ||        | |  | | |  |
                                          | |                           |   |   |           | |  | |  ||      |                  ||  |            |  ||    |    ||   ||     |  | |    |   ||  |  |      | | |   |          ||      ||        | |  | | |  |
                                          | |                           |   |   +-----------+-+  | |  ||      |                  ||  |            |  ||    |    ++---++     |  | |    |   ||  |  |      | | |   |          ||      ||        | |  | | |  |
                                          | |                           |   |               |    | |  ||      |                  ||  |            |  ||    |    ||   ||     |  | |    |   ||  |  |      +-+-+---+----------++      ||        | |  | | |  |
                                          | |                           |   |               |    | |  ||      |                  ||  |            |  ||    |    ||   ||     |  | |    |   ||  |  |      | | |   |          ||      ||        | |  | | |  |
             +----------------------------+-+---------------------------+---+---------------+----+-+--++------+------------------+++ |            |  ||    |    ||   ||     |  | |    |   ||  |  |      | | |   |          ||      |++-------+-+  | | |  |
             |                            | |                           |   |               |    | |  ||      |                  ||| |            |  ||    |    ||   |+-----+--+-+----+---++--+--+------+-+-+---+----------++------+++-------+----+-+-+  |
             |                            | |                           |   |               |    | |  ||      |                  ||| +------------+--++----+----++---+------+--+-+----+---+---+--+------+-+-+---+----------++------+++-------+------+ |  |
             |                            | |                         +-+---+-----------+   |    | |  ||      |                  |||                 |     |    |    |      |  +-+----+---+---+--+------+-+-+---+----------++------+++-------+--------+--+
             |     +----------------------+-+-------------------------+-+---+-----------+---+----+-+--++------+------------------+++-----------------+-----+----+    |      |  | |    |   |   |  |      | | |   |          ||      |||       |        |  |
             |     |                      | |                         | |   |           |   |    | |  ++------+------------------+++-----------------+-----+----+----+------+--+-+----+---+---+--+------+-+-+---+----------++------+||       |        |  |
             |     |                      | |                         | |   |           |   |    | |   |      |                  |||                 |     |    |    |      |  | |    |   |   |  |      +-+-+---+----------++       ||       |        |  |
             +-----+----------------------+-+-------------------------+-+---+-----------+---+----+-+---+------+------------------+++                 |     |    |    |      |  | |    |   |   |  |      | | |   |          ||       ||       |        |  |
                   |                      | |                         | |   |           |   |    | |   |      |                  ||                  |     |    |    |      |  | |    |   |   |  |      | | |   |          ||       ||       |        |  |
                   |                      | |                         | |   |           |   |    | |   |      |                  ||                  |     |    |    |      |  | |    |   |   |  |      | | |   |          ||       ||       |        |  |
                   |                      | |                         | |   |           |   |    | |   |      |                  ||                  |     |    |    |      |  | |    |   |   |  +------+-+-+---+----------++-------++-------+        |  |
                   |                      | |                         | |   |           |   |    | |   |      |                  ||                  |     +----+----+------+--+-+----+---+---+---------+-+ |   |          ||                |        |  |
                   |                      | |+------------------------+-+---+-----------+---+----+-+---+------+------------------++------------------+----------+----+------+--+-+----+---+---+---------+---+-+ |          ||                |        |  |
                   |                      | ||                        +-+---+-----------+   |    | |   |      |                  ||                  |          |    |      |  +-+----+---+---+---------+---+-+-+----------++----------------+--------+--+
                   |                      | ||                          |   |               |    | |   |      |                  ||                  |          |    |      +--+-+----+---+---+---------+---+-+-+----------++----------------+        |  |
                   |                      | ||                 +--------+---+---------------+----+-+---+------+------------------++------------------+----------+----+---------+-+----+---+---+---------+---+-+-+---+      ||                |        |  |
                   |                      | ||                 |        |   |               |    | |   |      |                  ||                  |          |    |         | |    |   |   |         |   | | |   |      ||                |        |  |
                   |                      | ||                 |        |   |               +----+-+---+------+                  ||                  |          |    |         | |    |   |   |         |   | | |   |      ||                |        |  |
                   |                      | ||                 |        |   |                    | |   |                         |+------------------+----------+    |         | |    |   |   |         |   | | |   |      ++----------------+        |  |
                   |                      +-++-----------------+--------+---+--------------------+-+---+-------------------------+-------------------+----------+----+---------+-+----+---+---+---------+---+-+-+   |       |                         |  |
                   |                        ||                 |            +----------------------+---+-------------------------+-------------------+----------+----+---------+ |    |   |   |         |   | | |   |       |                         |  |
                   |                        ||                 |                                   +---+-------------------------+-------------------+----------+----+-----------+----+---+---+---------+---+-+-+---+-+-----+-------------------------+--+
                   |                        ||                 |                                       |                         |                   |          |    |           |    +---+---+---------+---+-+-+--++-+                               |  |
                   |      +-----------------++-----------------+---------------------------------------+-------------------------+-------------------+----------+----+-----------+----+---+---++--------+---+ | |  || |                               |  |
                   |      |                 ||                 |                                                                 +-------------------+          |               ++----+---+--+ |        |     | |  || |                               |  |
                   |      |                 |+-----------------+---------+---+----------------------------------------------------------------------------------+-------+       ||    +---+--+-+--------+     | |  || |                               |  |
                   |      |                 |+-----------------+---------+---+----------------------------------------------------------------------------------+-------+-------++----+---+--+-+--------------+-+  || |                               |  |
                   |      +-----------------++-----------------+---------+---+----------------------------------------------------------------------------------+-------+-------++----+------+-+                   || |                               |  |
                   |                        ||                 |         |   |                                                                                  |       |       ++----+------+---------------------+| |                               +--+
                   |                        ||                 |         |   |                                                                                  |       |        |    |                             | |                                  |
 +-----------------+------------------------++-----------------+---------+---+-------------------------------------------------------------------------+        |       |        |    |   +-------------------------+-+-----------------------------+----+
 +-----------------+------------------------++-----------------+---------+---+-----------------------+-----------------------------------------------+-+--------+-------+        |    |   |                         | |                             |     
                   |                        ||                 |             |                       |                                               |          |                |    |   |                         | |                             |     
                   |                        |+-----------------+-------------+                       |                                               |          |                |    +---+-------------------------+-+                             |     
                   |                        +------------------+-------------------------------------+-----------------------------------------------+----------+----------------+        |                         |                          +----+-+   
                   +-------------------------------------------+------------------------------------------------------------------------------------------------+                         |                         |                          |    | |   
                                                               +--------------------------------------------------------------------------------------------------------------------------+-------------------------+--------------------------+----+-+   
                                                                                                                                                                                                                                                          
