+-----.......-------+++++++++OOOOOOOOOOO+++++---........---++++++++++++----.............-----++++OOOOO#####OOOOOOOOOOO+++++++++++++OOOOO+++++--------+++OOO######OOO++++-------++++++++++---..........---+++OOOOO####OOOOOOOOO++++---..........--+++OOOOOO
---..........------+++++++++++OOOOOOOOO+++++------...-----++++++++++----.............-----+++++OOOOOOO##############OOOOO+++++++++OOOOOOOO+++--------+++OOO######OOOO++++++++++++++++++----.....  .....---+++OOOOOO###OOOOOOOOOO++---.....  ....--+++OOOOO
............----+++++++++++++++++++++++++++-------------++++++++++---.....    .....----+++++OOOOOOOOOOOOOOOOOO########OOOOOO+++++OOOOOOOOO++++-------+++OOOO#####OOOOO+++++++++++++++------....    ....----+++OOOOOOOOOOOOO#OOOO+++--....    ...--++OOOOOO
..........----+++++++++++++++++++++++++++-------------++++++++++---....      ....---++++OOOOOOOOOOOOOOOOOOOOOOOOO#####OOOOOO+++++OOOOOOOOO++++-------+++OOOOOOOOOOOOOOOO+++++++++++-------.....    ....----++++++OOOOOOOOOOOOOOOO++---...   ...--+++OOOOOO
.........---++++OOOO+++++---------------------------+++++++++++---...      .....--++++OOOOOOOOOOOOO+++++++++++OOOOOOOOOOOOO++++++++OOOOOOO++++-------+++OOOOOOOOOOOOOOOOOOO++++++++-------....... ......----++++++++++++OOOOOOOO+++---........--+++OOOOOOO
.......---+++OOOOOOOO++++-------------------------++++++++++++---..       ....---++OOOOOOOOOOOOO++++----------+++OOOOOOO+++++++++++++OOO+++++-------++++OOOOOOOOOO+++++++++++++++++--------............-----++++++++++++++++OOO+++++----....---++OOOO####O
-...-----++OOOO####OOO+++------------------------++++++++++++---..        ..---+++OOOO###OOOO+++++---........---++++++++++++------++++++++++--------+++++OOOOO++++++++++++++++++++++---------.........-----+++++----------++++++++++----------++OOO#####OO
--------+++OO#######OOO++++---------+++++++++++++++++++++++++--...       ...--+++OOOOO##OOOO+++----.....  .....---+++++++-----------++++++-----------+++++++++++++------++++++++++++++++++---------------++++++++----------+++++++++--------+++OOOO#####OO
-------+++OOO#########OOO++++++++++++++++++++++++++++++++++---...        ...---+++OOOOOOOO+++----....      ....----+++----------------++--------------+++++++++----------++++++OOOOOOOOOO+++++++-----+++++OOO+++++--------------------------+++OOOOO##OOOO
+++++++++OOO############OOOOOOOOOOOOOOOOOO++++++++++++++-----...          ..----+++OOOOO++++---....        ...----++++------......--------------...----------------------++++OOOOOOOOOOOOOOOOO++++++++OOOOOOOOOO+++----....------------------+++OOOOOOOOO+
++++++++OOOOO##############OOOOOOOOOOOOOOO++++++++++-------....           ...----++++++++++---...         ...----+++++-----........--------------.....------------------++++OOOO############OOOOOOOOOOOOO####OOOO++----..................-----+++++OOOOO++
++++OOOOOOOOOO#####################OOOOOOO+++++-----------....             ...-----+++++++---....        ...---+++++++----.........-----++++------..........---------++++++OOO################OOOOOOOO########OOO+++---....................-----++++++++++
+OOOOOOOOOOOOOOOOOOO################OOOOO++++-------------.....           .....-----++++++----....      ...---++++++++----.........---+++++++++----...........------++++++OOOO##############OOOOOOOOOO#######OOOO++++---.........   .......---------++++++
OOOOOOOO+++++++++++OOOOOOOOOO######OOOOO++++---------------.....         ......-----++++++++---...........----++++++++---.........---++++OOOO++++----..........----++++++OOOOO#########OOOOOOOOOOOOOOOOOOOOOOOOOO+++++----.......    ......---------------
OOOOOO+++++--------++++++OOOOOOOOOOOOOOO+++-------------------..............-------+++++++++++---........----++++++++----........---+++OOOOOOOOO+++----........----+++++++OOOOOOOOOOOOOOO++++++++++++OOOOOOOOOO+++++++++----..............----------------
OOOO+++++-----...------+++++++OOOOOOOOO++++--------------++------........--------++++OOOOOOO+++-----.....-----+++++----.........---+++OOO#####OOO+++----........----++++++++OOOOOOO++++++++------+++++++++++++++++++++++++----..........------------------
OO+++++----...........------++++OOOOOOOO++++---------+++++++++--------------+++++++OOOOOOOOOO+++-----......----------...........---+++OO########OO++++----........-------+++++++++++++------------------------++++++++++++++-----....-----+++++++---------
+++++-----......  .........---+++++OOOO++++--------+++++++++++++----------+++++++OOOOOOOOOOO++++----............................----++OOO#######OOO++++----........--------++++++++------------------------------++++++++++++-----------+++++++++++----...
++++-----.....         ......---++++++++++---------+++++OOOO+++++---------++++++OOOOOOOOOOO++++----....        ......      .....-----++OOO#######OOO++++----......-------------------------------------........-----+++++++++++-------++++++OOO++++----...
++------.......           ....----++++++----------+++++OOOOOO+++-----------+++++OOOOOOOOOO++++----....                   ........-----++OOOO#####OOOO+++----.....--------------------------------------...........----+++++++++++----+++++++OOOO++++---...
----------.......         ....----++++------------++++OOOOOO++++----....----++++++OOOOOO++++-----....                ...........-------+++OOOOOOOOOOO+++-----..-------++++++---------------+++++++++----.............---+++++++++++++++++++++OOOO+++---...
---...--------......    .....-----+++-------------++++OOOOO++++---........----+++++++++++++-----.....             ......----------------+++OOOOOOOOO+++-----..------+++++++++------------+++++OOOO++++---.....     ....---++++++++++----++++++OO+++++---..
......-----------..........----+++++++-----------+++++OOOO++++--....    ...----++++++++++++------......        .....-----+++++-----------++++OOOOOO+++----.....----++++++++++----------++++OOOOOOOOOO+++---...       ...---++++++++--------+++++++++++---.
.....----++++++-------.-----+++++++++++---------+++++OOOO++++---..       ...---+++++++++++++-------..............----++++++++++++--------++++++++++++----.......----++++++++-----------+++OOO######OOO+++--...        ...--++++++++---------++++++++++++--
.....---++++++++++--------++++OOOOOOO+++++---++++++OOOOOO++++--...       ...---+++++OOOO++++++---------......-----++++OOOOOOOOO++++------++++++++++++---.........----+++++--------------++OOO#######OOO++---..        ...--++++++++----------++++OOOOO++++
 ....---++++++++++++----++++OOOOOOOOOOO+++++++++OOOOOOOOOO+++---...     ...---++++OOOOOOOOOO+++++++++-----------++++OOOO####OOOO+++++++++++++++++++++---...........----------........----+++OOO#####OOO++---..        ..---++++++++++-------++++OOOOOOOOO+
 ...---++++OOOO++++++++++++OOOOOOOOOOOOOOO+++++OOOOOOOOOOOO+++---..........---++++OOOOOOOOOOOOOOOOOO+++++++++++++OOOO########OOOO+++++++++++++OOO+++++---...........--------............---+++OOOOOOOO++---...        ..---++++++++++++++++++++OOOOOOOOOOO
...--+++OOOOOOOOOOOO++++++OOOOOOO###OOOOOOOO++OOOOOOOOOOOOOO++++---.......-----++++OOOOOO##########OOOOOOOOOOOOOOOO##########OOO+++++++++++++OOOOOOO+++----.........--------.......  .....---++++OO++++---...         ..---+++++++++++++++++++OOOOOOOOOOOO
..--+++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++OOOOOOOOOO++++-----...------++++OOOOO##############OOOOOOOOOO###########OOO++++----++++++OOOOOOOO++++----.....-----------......      ...---+++++++----...         ...--+++++OOOOOOOOOO+++OOOOOOOOOOOOO
.--+++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++OOOOOO+++++-------------+++++OOOOO##############OOOOOOO###########OOO+++--------+++++OOOOOOOO++++---------------------.....     ....----++++----...           ..---+++OOOOOOOOOOOOOO+++++++++++++
---+++OOOOOOOOOOOOOOOOOOO++++++++OOOOOOOO+++++---------++++OOOOOO++++--------------+++++OOOOOO#########OOOOOOOOOOO#######OOOO+++----------+++++OOOOOOOO+++++----------+++++++-----..... .....------------...           ..---+++OOOO###OOOOOO++++++------++
--++++OOOOOOOOOOOOOOOOOO++++++++++++++++++++----......---++++OOOO++++++--------------+++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++------------++++++++OOO++++++---------+++++++++++----........-----++++-----...          ..---+++OOO#####OOOO++++----....---
--++++++++++++OOOOOOOOO++++------++++++++++---..........---+++++++++++++-----------------+++++++++++++++++++++++++++OOOO+++++++-------------+++++++++++++++----------++++++OO++++++-----------+++++++++----...        ...---++OOO######OOOO+++--..... ....
----++++--++++++++OOO+++++---------++++++++---...     ....---++++++++++++++----++++-------------++++++++++-------+++++++++++++++++------------------++----------------++++++OOOOO+++++++-++++++++++++++++----...     ...---+++OOO######OOO+++--...       .
--------------++++++++++++--------++++++++++---...     ....-----+++++++++++++++++++++++------------------------------++++++++++++++++++++++--------------...........-----+++++OOOOOO+++++++++OOOOOOOOOO++++---........---++++OOO######OOO++----..        .
+--------.-----++++++++++++-----+++++OOOOO+++---...     .....------+++++++OOOOOOOOOOO++++----------------..........----++++OOOOOOOOOOOOO++++----.......................----++++OOOOOOOOOOOOOOOOOOOOOOOOOO++++----------++++OOOO#####OOOO++----....     ...
+++----.....----+++++++++++++++++++OOOOOOOOO+++--................----++++OOOO######OOOO+++++-----------.............---+++OOOO#########OOO+++--.....             ........---+++OOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++OOOOO#####OOOO+++---.............-
O+++----.....----+++++OO+++++++++OOOOOOOOOOOO+++---................---+++OOO##########OOOO+++++-+-----.....      ...---++OOO############OOO++---...              .........---+++OOOOO#OOOOOOOO+++++OOOOOOOOOOOOOOOOOOOOOOOO####OOOOO+++----.........------
OO+++----....----+++++OOOO++++++OOOOOOOOOOOOO++++----...............---+++OO###########OOOO+++++++----....       ...--+++OOO############OOO+++--...           .............---++OOOOOOOOOOO++++++++++++OOOOOOOOOOOOOOOOOOO###OOOOO+++----.....-------+++++
OOOO++------------++++OOOO+++++OOOOOOOOOOOOOO+++++---------...........---++OOO##########OOOOO++++++---....     ....---++OOOO###########OOOO+++---.....    .................---+++OOOOOOOO+++---------++++OOOOOO########OOOOOOOO++++----.....-----+++++OOOO
##OOO++-----------+++++++++++++++OOOOOOOOOO+++++++++++--------..........--+++OOOOOO####OOOOOO++++++---...........---+++OOOOOOOOOOOOOOOOOOOO+++++----.........----------...----+++++OOOO+++---.......---++++OOOO#######OOOOOOO+++----.......----+++OOOOOOOO
##OOO+++------------++++++++++++++++++++++++++++++++++++++++---..........---+++++OOOOOOOOOOO++++++---..........----+++OOOOOOOOOO+++++++++++++++++++------------++++++----------++++++++++--...     ...---+++OOOO###OOOOO++++++---.........---+++OOOO###OOO
#OOOO+++------------------------+++++++++++-------+++++++++++---....  .....----++++++OOOO++++++-----..........---++++OOOOOOOO+++++----+++++++++++++++------+++++++++++--------++++++++++--...        ..---+++OOOOOOOOO++++-----..........---+++OOOO####OOO
OOOOO+++----------------------------++++----------++++++OO+++++--...........-----++++++++++-------............---+++++OOOOO++++---------+++++++++++++++-++++++++++++++++----++++++++++++--...        ..---++++OOOOOOO++++-----..........---+++OOOOO#OOOOO+
OOOOO+++++---------------------------------------++++OOOOOOOOO++---........------++++++------.........   .....----+++++++++++------------+++++++++++++++++++++++++++++++++++++++++++++++--...        ...---++++OOOOO++++-------......----+++OOOOOOOOOOO+++
+OOOOO+++++++----------------------------------++++OOOOO###OOOO+++-----..-------++++------.....................------+++--------....------++++++++++++----++++++++++++++++++OOOOOOOO++++---..         ..---+++++OOO+++++--------------++++OOOOOO##OOOO+++-
++++OOO++++++++++++++++++++-------------------++++OOOO#######OOO++++----------++++++-----......................--------------......-------++++++++----------+++++++++++++OOOOOOOOOOOO+++---..         ..---+++++OOO++++++-------++++++++OOOOOO###OOOOO++--
++++++OOO+++++++++++++++++++++--------------++++OOOO#########OOOO+++++------++++++++----........................-------...........-------+++++------------------++++++++OOOOO#####OOOO+++--..         ..---+++++OOO+++++++++++++++++OOOOOOOOOOOOOOOOO+++--
-++++++++OOOOOOOOOO++++++++++++-----------+++++OOOO#######OOOOOOO+++++++++++++++++++----.........-------------------.............----++++++++-----------------------++++OOOO#######OOO+++--...       ...---+++++OOOO++++++++++++OOOOOOOOOOOOOOOOOOOO++++--
--+++++++++OOOOOOOO++++++++++++-----------++++OOOOOOOOOOOOOOOO++++++++---+++++++++++----.......----+++++++++--------............----++++++++++-----------------------++++OO########OOO+++--...       ..---+++++OOOO++++++++++++OOOOOOOOOOOOOOO+++++++++++-
------+++++++++++++++++++++++--------------+++OOOOOOOOOOO++++++++-----------+++++++------...-----++++OOOOO+++++-------..........---++++++++++++-----------------------+++OO########OOO++---..       ...---++++OOOO++++++++++++++OOOOOOO+++++++++++++++++++
----------+++++++++++-----------........----++++OOOOOO+++++-----------------------------..------+++OOOOOOOOOO+++++++----........---+++++++++++++++++++++++------------+++OO#######OOO+++--...       ...--++++++++++++++------++++++++++++++-------++++++++
---.....-------------------........ ......----+++++++++++--------..........................----++++OOOO###OOOOOO++++++---.......----++++++++++++++++++++++++----------+++OOO######OOO++---...      ...--++++++++++++------------++++++++------------++++++
-.............-------.........           ....----++++++++--------................... .......---+++OOOO########OOOOOO++----......----++++OOOOOOOOOO+++OO+++++++--------+++OOOO####OOOO+++---.........---++++OO+++++----.......-----++++++--------------++++
.......  ...................               ....----+++++++--------......                 ....---++OOO###########OOOO+++--.......----+++OOOOOOOOOOOOOOOO+++++++++-----+++++OOOOOOOOOOO+++----......---++++OOOO++++---..........----+++++++----------------+
-.....      ................                ...-----+++++++++-------.....                 ...---+++OO###########OOOO++---.......----++OOOO#####OOOOOOO++++++++++++++++++++++OOOOOOOOO++++-----------+++OOOOOO+++---..........----++++++++++---------------
--.......  ........-----....               ....----+++++++++++++------.....                ..---+++OO##########OOOO++---........---+++OOO#######OOOO+++++++++++++++++++++++++++OOOOOO+++++-------+++++OOOOOO+++--............--++++OOOOO+++++-------------
------..........----------...            .....----+++++++++++++++++------.......           ...---++OO#########OOO+++--....   ...---+++OO########OOO+++++++++++++++++++++--+++++++++++++++++----+++++++OOOO+++---...........---+++OOOOOOOO+++++------.....-
++++-----...-------+++++----...        ....-----+++++++++++++++++++++++-------.....        ...---++OO########OOO+++--...      ..---+++OO########OOO++--------++++++++++-------++++++++++++-----+++++++++++++---..........---+++OOOO###OOOO++++-----.......
+++++++---------++++++++++--....    ....-----++++++++++++++++++++++++++++++++-----....   ....---+++OO########OO+++--...       ...--+++OO########OO+++---------++++++++-----------++++++++--------+++++++++---....    ...---+++OOO#####OOOO+++-----.......-
OOOO++++++---+++++++++++++---.........---+++++++++++++++++--------++++++++++++++---.........---+++OOO#######OOO++---..        ...--+++OO########OO+++---------++++++++--------------------------------------....    ....--+++OOOO####OOOO++-----......----
OOOOO+++++++++++++OOOOO++++-----...----+++OOOOOOOOOOO++++----------+++++++++++++----.......---+++OOO#######OOO++---...        ..---+++OOO######OOO+++-------+++++++++++-----------------...........-------.....    ....--+++OOOO#####OOO+++----.....----++
OOOOO++++++++++OOOOOOOOOOO++++-------+++OOOO######OOOO++++---------+++++++++++++-----....----+++OOO#######OOO++---.....    .....---++++OOOOOOOOOO+++++----+++++++++++++++--------..........    ......................---+++OOO########OO+++---.....----+++
+++++++++++++OOOOOOOOOOOOOO+++++++++++OOOO##########OOO++++-------+++++++++++++------...----+++OOOO#####OOO+++---............-----+++++++++++++++++++++++++++++++++++++++++-----.......             ................---+++OOO#########OO+++----..-----++OO
++++++++++++OOOOOOO###OOOOOOO+++++++++OOOO###########OOO+++++++++++++++++++++-------....----++OOOOO###OOOO+++---.......--------+++++++++--------+++++++++++++++OOOOOO+++++++----.....                 ...........----++++OOOO#########OOO++----------+++OO
-------+++++OOOOOOOOOOOOOOOOOO++++++++OOOOO##########OOOO+++++++++++++++++--------......----+++OOOOOOOOOO+++---....-----+++++++++++++---------------+++++++++OOOOOOO++O++++++----.....               ........-------+++++OOOO##########OO+++---------+++OO
....----++++OOOOOOOOOOOOOOOO+++++++++++++OOOOO#######OOOOO+++++++++++++++--------........----+++OOOOOOO++++----..----++++OOOOOO+++++---..........---+++++++OOOO+++++++++++++++----.......................-------++++++++++OOOO#########OOO+++---------++++
  ...---++++OOOOOOOOOO+++++++++++------+++++OOOOOOOOOOOOO++++++++++++++++---------........----++++++++++++----------++OOOOOOOOOO++++--...      ...---++++++O+++++++++++++++++++---------------.........-----++++++++++++++++OOOO#######OOO+++-----------++
   ...--++++OOOOOOO+++++++++---------------+++++OOOOOOO++++++++++++++++++++++------.........----+++++++++---------+++OOO#####OOO+++---..        ..---++++++++++++++---++++++++++---------+----------------+++++++++++++---++++OOOO####OOOO+++-----...-----
   ..---++++OOOOO++++----------..........-----+++++++++++-----------+++++++++++++----.........-----++++++++++++++++OOOO######OOO++---...        ..---++++++++++------------+++++++++++++++++++-----------+++++++++++---------+++OOOOOOOO+++----.........--
  ...---+++++++++++---.......................-----------------------+++++++++++++----...........--------++++++++OOOOO########OO++---...        ...---+++++++-----.......------++++++++++OO++++++--------++++++++++------------++++OOOO++++---.............
.....---+++++++++---....  ....             ........-----------------+++++++++++++----...............-----++++OOOOO##########OO+++--...        ...----++++----.....    ....----+++++OOOOOOOOO++++++------+++++++------.....----++++++++++---.....   ......-
.....---++++++++---...                         ...........---------+++++++++++++-----.................---++++OOO############OO++--....       ...----++-----....         ...---+++OOOOOOOOOOO+++++++------++------.........----+++++++++---...      .....--
.....---+++++++----...      .......                .......------++++++++++++-----------................---+++OOO###########OOO++--.....  ......----++-----...           ...--+++OOOOOOOOOO+++++++++++---------............---++++++++++--....     ....----
....-----++++++----....  ................           .....-----+++++++++++++----------------.............---++OOOO#########OOO+++--..........-----++++----...           ...--+++OOOOOOOOO+++++++++++++++------....    ....---+++++++++++---..........-----+
--.------++++++-----.......------------..................----++++++O+++++++---------------------........----+++OOOOOOOOOOOOOO+++----.....-----+++++++---...        .....---++OOOOOOOOO++++++------++++++----...      ....--++++OOOOOO+++---.......-----+++
---------++++++++-----------+++++++++++-------...........---+++++OOOOOO++++--------+++++++++++----........----++++++OOOOOOOOOO+++-----------+++++++++---...      ....----+++OOOOOOOOO++++---------+++++++---..        ..---+++OOOOOOOOO+++----------++++++
--------+++++++++++-------++++OOOOOOO+++++++-----........----++++OOOOOOO+++++++++++++++OOO++++++----........------++++++OOOOOOO++++------++++++++++++---...    ....---++++OOOO###OOOO+++----------+++++++---...       ..---+++OOOOOOOOOO+++++---++++++++++
...-----+++++++++++++++++++OOOOOOOOOOOOOO++++++----.......----+++OOOOOOOOOOOO+++++OOOOOOOOOOO++++----...........------++++OOOOOOO++++++++++++++++++++---.........---+++++OOOO####OOO+++---------+++++++++++--...     ...---+++OOOO####OOOOO+++++++++++++++
.....----++++++++++++++OOOOOO###########OOOOOO++----.......---+++OOOOO#####OOOOOOOOOOOOOOOOO+++++----................---+++OOOOOOOOO++++++++++++++++----.........---++++OOOOOOOOOOO+++----------+++OOOOOOO++---.........---+++OOO########OOOOOOOOOOO++++++
......-----++++++OOOOOOOOO#####@@@@@@######OOOO++---.......---+++OOO################OOOOOOO++++++-----.....         ...--++OOOO##OOOOOO++++++++++++------.......----++++OOOOOOOOO+++----...----+++OOOOOOOOO+++---.....----+++OOOO###############OOOOOO+++-
   .....----+++++OOOOOO#######@@@@@@@@@#####OOO++---.......---+++OO#####@@@#########OOOOO++++++--------.....         ..--++OOOO####OOOO+++++------------------------++++++OOOO+++++---.....---+++OOOO####OOOO++----------+++OOOOO###################OOO+++
   ......----++++OOOOOO#######@@@@@@@@@#####OOO++--........---++OOO#####@@@########OOO+++++--------------.....       ..---++OOO####OOO++++---------------------------++++++++++++----.....----+++OOOO#####OOO++++-------++++OOOOOO###################OOO++
   ......-----++++OOOOOOOO################OOO+++--........---+++OOO#############OOOO++++--------------------.....   ...---++OOOOOOOOO+++----.....----------------------++++++++------....----+++OOOOOOOOOOOOO++++------+++++OOOOOOOOOOOOOOOOOO########OOO+
 ......-------+++++++OOOOOOOOOOO#######OOOOO++---.........---+++OOO########OOOOOO++++--------------++++++++-----......---++++OOOOOO+++---.........---+++++++-----------+++++++--------------++++OOOOOOOOOOO+++++--------+++++OOOOOO+++++++++OOOO#######OOO
....----------++++++++++++++++OOOOOOOOOOO++++--...     ...---+++OOOOO#OOOOOO++++++----......-----+++++OOOO+++++----------++++++++++++--....   ....---+++++++++---------++++++++-----------+++++OOOOOO++++++++------------++++++++++++++--++++++OOO######OO
..----++++++++++++++++------+++++++++++++++---...       ..---+++OOOOOOOOO++++-------.......----+++++OOOOOOOOOO++++++++++++++++++++----...      ...---+++++++++++------++++++++++++-----++++++OOOOO++++++-------........-----+++++------------+++OOO#####OO
----++++++++++++++++-----------+++++++++++----...       ...---++++++++++++----...........----++++OOOOOOOOOOOOOOO++++++++++++++------...        ..---++++++++++++++++++++OOOOO+++++++++++++OOOOOOO+++++-----..............---------------------+++OOOOOOOOO
--++++OOOOOOOOO+++++------------++++++++++----....     ....-----+++++-----.............----++++OOOOOOOOOOOOOOOOOOOO++++++++-----.....         ...--+++OOOOOOOOO++++++OOOOOOOOOOO+++++++++OOOOOOOOO+++---......        ....----------------------+++OOOOOO+
+++++OOOOOOOOOOO++++-----------+++++++++++------............---------......        ...---++++OOOOOOOOOOOOOOOOOOOOOOOOO+++++---.....           ..---++OOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++OOOOOOOOOO+++--.....           ...------+++---------------++++++++
+++++OOOOOOOOOOOO++++---------+++++++++++++++----------................           ...---+++OOOOOOOOOOOOO+++++++OOOOOOO++++---....            ...--+++OOOOOOOOOOOOOOOOOO####OOOOO+++++++++OOOOOOOOOO++---....           ...----++++++++++------------------
--++++OOOOOOOOOOO+++++-----++++++++++++++++++++++++++-------.......              ...--++++OOOOOOOOO+++++++++++++++OOOO++++---....          ....---+++OOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++OOOOO##OOOO++---...           ..----++++OOOOO++++----------------
----++++OOOOOOOOO+++++++++++++++++++++++++++++++OOOO+++++----.....            ....---+++OOOOOOOOO+++-----------+++++OO+++++---................----+++OOOOOOOOOOO++++OOOOOOOOO++++++---++++OOO#####OOO++---...         ...---+++OOOOOOOOO+++-----..........
..----++++OOOOOO++++++++++++++++++++++++++++++OOOOOOOOOO+++----...        .....----+++OOOOOOOOO+++---.........---+++++++++++----....---------------++++OOOOO+++++++++++OOOO+++++--------++OOO######OOO++---...        ..---+++OOO######OOO++----..........
.....---++++++++++++++---++++++++++-------++++OOOO####OOO+++----...........-----+++OOOOOOOOOO++++--...      ...--+++++++++++++----------------------++++++++++++-----+++++++++----------++OOO#######OOO++---..        ..---++OOO########OO+++---.........-
 ....---++++++++++----------+++-------------+++OOO#####OOO+++----........----+++++OOOOOOOOOOO+++--...        ..---+++++OO++++++++++++++++-------------+++++++----------+++++-----------+++OOO########OO++---..        ...--+++OO#######OOO++----.......---
 .....----+++++------.....-------------------+++OOOOOOOOOO+++----.......----+++++OOOOOOOOOOO++++---..        ...---+++++OOOOOO+++++OO+++++----......--------------------++++++-------++++OOO########OO++---...         ..---+++OOOOOOOOOO++----.......----
......-----------.................------------++++OOOOOOO++++----.......----++++++OOOOOOOOOO++++----...     ....----+++++OOOOOOOOOOOOOO+++---...........---------------++++++++++++++++OOOO#######OOO++---....         ...----+++++++++++----........----+
....----------.....         .......------------++++++++++++-----........-----++++++++OOOOOO+++++++---.............----+++OOOOOOOOOOOOOO+++--....     ........--------+++++++++++++++OOOOOO#######OOO++---.....       ......----------------..........---++
-----------......            .....---------------++++++++------..........-------++++++++++++++++++++-----..........----+++OOOOO#####OOO+++--...       ........------++++++++OOOOOOOOOOOOO#####OOOO+++---........................----.................---++