------------------------------------------------------------------------------------+++-++-++++++++-++--+++++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++-++++++++-++--+++++++++--++++---+++++-++++++++-------------------------------+-++++++++-++--+++++++++--++++---+++++-++++++++------------------------------------------------------------------------------------------------------------++++++++-++--+++++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------++++++-++--+++++++++--++++---+++++-++++++++--------------------------------------------------------------------------------------------------------++++-++--+++++++++--++++---+++++-++++++++-------------------------------+++-++--+++++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++--+++++++++--++++---+++++-++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++--++++---+++++-++++++++-------------------------------+++++++++--++++---+++++-++++++++-------------------------------++++++++--++++---+++++-++++++++-------------------------------+++++++--++++---+++++-++++++++-------------------------------++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++--++++---+++++-++++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++---+++++-++++++++-------------------------------++++---+++++-++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++-++++++++--------------------------------+++++-++++++++-------------------------------+++++-++++++++-------------------------------++++-++++++++-------------------------------+++-++++++++----------------------------------++++++++-------------------------------+-++++++++--------------------------------++++++++-------------------------------++++++++-------------------------------+++++++-------------------------------++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--+---+--+----------++-+-------------------++++++--++++++++++++++++++++++++++++++--+---+--+----------++-+-------------------++++++--+++++++++++++++++++++++++++++--+---+--+----------++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---+--+----------++-+-------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--+----------++-+-------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+----------++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------++-+-------------------++++++--+++++++++++++++++++++++++++++---------++-+-------------------++++++--+++++++++++++++++++++++++++++--------++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------++-+-------------------++++++--+++++++++++++++++++++++++++++-----++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-------------------++++++--+++++++++++++++++++++++++++++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------++++++--++++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++------------++++++--+++++++++++++++++++++++++++++-----------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+-++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++-++++++++-++--+++++++++--++++---+++++-++++++++-------------------------------+-++++++++-++--+++++++++--++++---+++++-++++++++------------------------------------------------------------------------------------------------------------++++++++-++--+++++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------++++++-++--+++++++++--++++---+++++-++++++++--------------------------------------------------------------------------------------------------------++++-++--+++++++++--++++---+++++-++++++++-------------------------------+++-++--+++++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++--+++++++++--++++---+++++-++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++--++++---+++++-++++++++-------------------------------+++++++++--++++---+++++-++++++++-------------------------------++++++++--++++---+++++-++++++++-------------------------------+++++++--++++---+++++-++++++++-------------------------------++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++--++++---+++++-++++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++---+++++-++++++++-------------------------------++++---+++++-++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++-++++++++--------------------------------+++++-++++++++-------------------------------+++++-++++++++-------------------------------++++-++++++++-------------------------------+++-++++++++----------------------------------++++++++-------------------------------+-++++++++--------------------------------++++++++-------------------------------++++++++-------------------------------+++++++-------------------------------++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--+---+--+----------++-+-------------------++++++--+++++++++++++++++++++++++++++--+---+--+----------++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---+--+----------++-+-------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--+----------++-+-------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+----------++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------++-+-------------------++++++--+++++++++++++++++++++++++++++---------++-+-------------------++++++--+++++++++++++++++++++++++++++--------++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------++-+-------------------++++++--+++++++++++++++++++++++++++++-----++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-------------------++++++--+++++++++++++++++++++++++++++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------++++++--++++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++------------++++++--+++++++++++++++++++++++++++++-----------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+-++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------+--+----------++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---+--+----------++-+-------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--+----------++-+-------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+----------++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------++-+-------------------++++++--+++++++++++++++++++++++++++++---------++-+-------------------++++++--+++++++++++++++++++++++++++++--------++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------++-+-------------------++++++--+++++++++++++++++++++++++++++-----++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-------------------++++++--+++++++++++++++++++++++++++++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------++++++--++++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++------------++++++--+++++++++++++++++++++++++++++-----------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+-++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---+--+----------++-+-------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--++---------++-+-------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+----------++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------++-+-------------------++++++--+++++++++++++++++++++++++++++---------++-+-------------------++++++--+++++++++++++++++++++++++++++--------++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------++-+-------------------++++++--+++++++++++++++++++++++++++++-----++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-------------------++++++--+++++++++++++++++++++++++++++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------++++++--++++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++------------++++++--+++++++++++++++++++++++++++++-----------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+-++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-++++++-++--+++++++++--++++---+++++-++++++++------------------------------------------------------------------------------------------------------------++++++++-++--+++++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------++++++-++--+++++++++--++++---+++++-++++++++--------------------------------------------------------------------------------------------------------++++-++--+++++++++--++++---+++++-++++++++-------------------------------+++-++--+++++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++--+++++++++--++++---+++++-++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++--++++---+++++-++++++++-------------------------------+++++++++--++++---+++++-++++++++-------------------------------++++++++--++++---+++++-++++++++-------------------------------+++++++--++++---+++++-++++++++-------------------------------++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++--++++---+++++-++++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++---+++++-++++++++-------------------------------++++---+++++-++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++-++++++++--------------------------------+++++-++++++++-------------------------------+++++-++++++++-------------------------------++++-++++++++-------------------------------+++-++++++++----------------------------------++++++++-------------------------------+-++++++++--------------------------------++++++++-------------------------------++++++++-------------------------------+++++++-------------------------------++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++--+++++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------++++++-++--+++++++++--++++---+++++-++++++++--------------------------------------------------------------------------------------------------------++++-++--+++++++++--++++---+++++-++++++++-------------------------------+++-++--+++++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++--+++++++++--++++---+++++-++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++--++++---+++++-++++++++-------------------------------+++++++++--++++---+++++-++++++++-------------------------------++++++++--++++---+++++-++++++++-------------------------------+++++++--++++---+++++-++++++++-------------------------------++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++--++++---+++++-++++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++---+++++-++++++++-------------------------------++++---+++++-++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++-++++++++--------------------------------+++++-++++++++-------------------------------+++++-++++++++-------------------------------++++-++++++++-------------------------------+++-++++++++----------------------------------++++++++-------------------------------+-++++++++--------------------------------++++++++-------------------------------++++++++-------------------------------+++++++-------------------------------++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--+++--------++-+-------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------++-+-------------------++++++--+++++++++++++++++++++++++++++---------++-+-------------------++++++--+++++++++++++++++++++++++++++--------++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------++-+-------------------++++++--+++++++++++++++++++++++++++++-----++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-------------------++++++--+++++++++++++++++++++++++++++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------++++++--++++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++------------++++++--+++++++++++++++++++++++++++++-----------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+-++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------++-+++-++---++++++++--++++---+++++-++++++++---------------------------------------------------------------------------------------------------------+++-++---++++++++--++++---+++++-++++++++-------------------------------+++-++---++++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++--+++++++++--++++---+++++-++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++--++++---+++++-++++++++-------------------------------+++++++++--++++---+++++-++++++++-------------------------------++++++++--++++---+++++-++++++++-------------------------------+++++++--++++---+++++-++++++++-------------------------------++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++--++++---+++++-++++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++---+++++-++++++++-------------------------------++++---+++++-++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++-++++++++--------------------------------+++++-++++++++-------------------------------+++++-++++++++-------------------------------++++-++++++++-------------------------------+++-++++++++----------------------------------++++++++-------------------------------+-++++++++--------------------------------++++++++-------------------------------++++++++-------------------------------+++++++-------------------------------++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------+-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+-+-------------------++++++--+++++++++++++++++++++++++++++---------++-+-------------------++++++--+++++++++++++++++++++++++++++--------++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------++-+-------------------++++++--+++++++++++++++++++++++++++++-----++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-------------------++++++--+++++++++++++++++++++++++++++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------++++++--++++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++------------++++++--+++++++++++++++++++++++++++++-----------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+-++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------+++-++---++++++++--++++---+++++-++++++++-------------------------------+++-++---++++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++-+++++++++++-++++---+++++-++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++-++++---+++++-++++++++-------------------------------++++++++++-++++---+++++-++++++++-------------------------------++++++++--++++---+++++-++++++++-------------------------------+++++++--++++---+++++-++++++++-------------------------------++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++--++++---+++++-++++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++---+++++-++++++++-------------------------------++++---+++++-++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++-++++++++--------------------------------+++++-++++++++-------------------------------+++++-++++++++-------------------------------++++-++++++++-------------------------------+++-++++++++----------------------------------++++++++-------------------------------+-++++++++--------------------------------++++++++-------------------------------++++++++-------------------------------+++++++-------------------------------++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------++-+-------------------++++++--+++++++++++++++++++++++++++++---+-----++-+++-----------------++++++--+++++++++++++++++++++++++++++--+-----++-+++-----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++-+++-----------------++++++--+++++++++++++++++++++++++++++-----++-+++-----------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-------------------++++++--+++++++++++++++++++++++++++++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------++++++--++++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++------------++++++--+++++++++++++++++++++++++++++-----------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+-++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++--+++++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++-++++++++++++++++---+++++-++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++---+++++-++++++++-------------------------------+++++++++++++++---+++++-++++++++-------------------------------++++++++--++++---+++++-++++++++-------------------------------+++++++--++++---+++++-++++++++-------------------------------++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++--++++---+++++-++++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++---+++++-++++++++-------------------------------++++---+++++-++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++-++++++++--------------------------------+++++-++++++++-------------------------------+++++-++++++++-------------------------------++++-++++++++-------------------------------+++-++++++++----------------------------------++++++++-------------------------------+-++++++++--------------------------------++++++++-------------------------------++++++++-------------------------------+++++++-------------------------------++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++--+++++-++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++--+++++-++++++++-------------------------------++++++++++++++++--+++++-++++++++-------------------------------++++++++--++++---+++++-++++++++--------------------------------++++++--++++---+++++-++++++++-------------------------------++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++--++++---+++++-++++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++---+++++-++++++++-------------------------------++++---+++++-++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++-++++++++--------------------------------+++++-++++++++-------------------------------+++++-++++++++-------------------------------++++-++++++++-------------------------------+++-++++++++----------------------------------++++++++-------------------------------+-++++++++--------------------------------++++++++-------------------------------++++++++-------------------------------+++++++-------------------------------++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--+-----++-+++-----------------++++++--+++++++++++++++++++++++++++++--+-----++-+++-----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++-+++-----------------++++++--+++++++++++++++++++++++++++++-----++-+++-----------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-------------------++++++--+++++++++++++++++++++++++++++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------++++++--++++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++------------++++++--+++++++++++++++++++++++++++++-----------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+-++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-----++-+++-----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++-+++-----------------++++++--+++++++++++++++++++++++++++++-----++-+++-----------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+---------------------++++--+++++++++++++++++++++++++++++-----------------------++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------++++--++++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++------------++++++--+++++++++++++++++++++++++++++-----------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+-++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++-+++---+-------------++++++--+++++++++++++++++++++++++++++-----++-+-+-----------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------+++--+++++++++++++++++++++++++++++------------------------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------+++--++++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++------------++++++--+++++++++++++++++++++++++++++-----------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+-++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------------------------------------------------------------------------++++++++++++++++---+++++-++++++++-------------------------------++++++++++-++++---+++++-++++++++-------------------------------++++++++--++++----++++-++++++++--------------------------------++-+++--++++----++++-++++++++-------------------------------++++++--++++----++++-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++--++++----++++-++++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++---+++++-++++++++-------------------------------++++---+++++-++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++-++++++++--------------------------------+++++-++++++++-------------------------------+++++-++++++++-------------------------------++++-++++++++-------------------------------+++-++++++++----------------------------------++++++++-------------------------------+-++++++++--------------------------------++++++++-------------------------------++++++++-------------------------------+++++++-------------------------------++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++-+-------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------++--+++++++++++++++++++++++++++++-------------------------++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------++--++++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++------------++++++--+++++++++++++++++++++++++++++-----------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+-++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------+--+++++++++++++++++++++++++++++--------------------------+--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------+--++++++++++++++++++++++++++++++-----------------++++++--+++++++++++++++++++++++++++++-----------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------++++++--+++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++------------++++++--+++++++++++++++++++++++++++++-----------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+-++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++---+++++-++++++++-------------------------------++++-+++--++++-----+-+-++++++++--------------------------------++-+++--++++-----+-+-++++++++-------------------------------++-+++--++++-----+-+-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++--++++-----+-+-++++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++---+++++-++++++++-------------------------------++++---+++++-++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++-++++++++--------------------------------+++++-++++++++-------------------------------+++++-++++++++-------------------------------++++-++++++++-------------------------------+++-++++++++----------------------------------++++++++-------------------------------+-++++++++--------------------------------++++++++-------------------------------++++++++-------------------------------+++++++-------------------------------++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-++-+++--++++-----+-+-++++++++--------------------------------++-+++--++++-----+-+-++++++++-------------------------------++-+++--++++-----+-+-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++--++++-----+-+-++++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++---+++++-++++++++-------------------------------++++---+++++-++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++-++++++++--------------------------------+++++-++++++++-------------------------------+++++-++++++++-------------------------------++++-++++++++-------------------------------+++-++++++++----------------------------------++++++++-------------------------------+-++++++++--------------------------------++++++++-------------------------------++++++++-------------------------------+++++++-------------------------------++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++-+++--++++-----+-+-++++++++-------------------------------++-+++--++++-----+-+-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++--++++-----+-+-++++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++---+++++-++++++++++++---------------------------++++---+++++-++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-+++++-++++++++++++----------------------------+++++-++++++++++++---------------------------+++++-++++++++++++---------------------------++++-++++++++-------------------------------+++-++++++++----------------------------------++++++++-------------------------------+-++++++++--------------------------------++++++++-------------------------------++++++++++++---------------------------+++++++-------------------------------++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++---------------------------++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++--++++---+++++-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++--++++---+++++-++++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++---+++++-++++++++++++---------------------------++++-+-+++++-++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-+++++-++++++++++++----------------------------+++++-++++++++++++---------------------------+++++-++++++++++++---------------------------++++-++++++++-------------------------------+++-++++++++----------------------------------++++++++-------------------------------+-++++++++--------------------------------++++++++-------------------------------++++++++++++---------------------------+++++++-------------------------------++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++---------------------------++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--++++-----+++-++++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++-++++++++++++++++++++---------------------------+++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++---------------------------+++++++++++++++++++---------------------------++++++++++++++++++---------------------------++++-++++++++-------------------------------+++-++++++++----------------------------------++++++++-------------------------------+-++++++++--------------------------------++++++++-------------------------------++++++++++++---------------------------+++++++-------------------------------++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++---------------------------++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------+++--++++++++++++++++++++++++++++++---+-----------+++++++++++++++++++++++++++++++++++++++---------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------+++++++++++++++++++++++++++++++++++++++-----------++++++++++++++++++++++++++++++++++++++++---------+++++++++++++++++++++++++++++++++++++++---------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+-++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------+++++--++++++++++++++++++++++++++++++---+-+---------+++++++++++++++++++++++++++++++++++++++---+-+---------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------+++++++++++++++++++++++++++++++++++++++-+---------++++++++++++++++++++++++++++++++++++++++---------+++++++++++++++++++++++++++++++++++++++---------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+-++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++---------------------------+++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++---------------------------+++++++++++++++++++---------------------------++++++++++++++++++---------------------------++++-++++++++-------------------------------+++-++++++++-----------------------------------+++++++-------------------------------+-++++++++--------------------------------++++++++-------------------------------++++++++++++---------------------------+++++++-------------------------------++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++---------------------------++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---+-+---------+++++++++++++++++++++++++++++++++++++++---+-+---------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------+++++++++++++++++++++++++++++++++++++++-+---------++++++++++++++++++++++++++++++++++++++++---------+++++++++++++++++++++++++++++++++++++++---------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+-++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++---+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------+++--+-----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------+++++++++++++++++++++++++++++++++++++++------------+++++++++++++++++++++++++++++++++++++++---------+++++++++++++++++++++++++++++++++++++++---------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+-++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-----+++++++++++++++++++++++-+++--+-----++++++++++++++++++++++++++--+-----+++++++++++++++++++++++++--+-----++++++++++++++++++++++++--------+++++++++++++++++++++++--------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----+++++++++++++++++++++++----++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------+-+++++++++++++++++++++++++++++++++++++++-+---------++++++++++++++++++++++++++++++++++++++++-------+-+++++++++++++++++++++++++++++++++++++++---------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+-++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-----+++++++++++++++++++++++-+++--+-----++++++++++++++++++++++++++--+-----+++++++++++++++++++++++++--+-----++++++++++++++++++++++++--------+++++++++++++++++++++++--------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----+++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++---------------------------+++++++++++++++++++---------------------------++++++++++++++++++----------------------------+++-+-++-----------------------------------+++-+-++----------------------------------------++-----------------------------------+-+-++------------------------------------+-++-----------------------------------++++++++++++----------------------------++-----------------------------------++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++---------------------------++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-+++++-++++++++++++----------------------------+++++-++++++++++++---------------------------+++++-++++++++++++----------------------------+-+-+-++-----------------------------------+++-+-++----------------------------------------++-----------------------------------+-+-++------------------------------------+-++-----------------------------------++++++++++++----------------------------++-----------------------------------++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++---------------------------++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-+++----------+++++++++++++++++++++------------++++++--+++++++++++++++++++++++++++++-----------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+-++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++-+++----------+++++++++++++++++++++-+++----------++++++++++++++++++++++++----------+++++++++++++++++++++++----------++++++++++++++++++++++----------+++++++++++++++++++++----------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------+++++++++++++++++++++------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----+-+-+++++++++++++++++++++++++++++++++++++++---------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+-++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++----------+++++++++++++++++++++-+++----------++++++++++++++++++++++++----------+++++++++++++++++++++++----------++++++++++++++++++++++----------+++++++++++++++++++++----------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------+++++++++++++++++++++------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------+++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+-++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++---++----------+++++++++++++++++++++--++----------++++++++++++++++++++++++----------+++++++++++++++++++++++----------++++++++++++++++++++++----------+++++++++++++++++++++----------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------+++++++++++++++++++++------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++----+----------+++++++++++++++++++++--++----------++++++++++++++++++++++++----------+++++++++++++++++++++++----------++++++++++++++++++++++----------+++++++++++++++++++++----------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------+++++++++++++++++++++------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++-++++++++-++----------------------------+++++-++++++++++++----------------------------+------------------------------------------+++-------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++----------------------------+-----------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++----------------------------+------------------------------------------++--------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++----------------------------+-----------------------------------------------------------------------------------++------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++-----------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++-+-++-----------------------------------------------------------------------------+-+-++------------------------------------+-++-----------------------------------+++++++++++++++++++++++++++++++++++++++-++-----------------------------------++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--+--+++++-----------------++------++++------------------------------------------------------------------------+++++++++-----------------++++++++-------------------+++++-----------------++++++-----------------+++++-----------------++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++--------------------------------------++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--+-++++++-----------------++------++++------------------------------------------------------------------------+++++++++-----------------++++++++-------------------+++++-----------------++++++-----------------+++++-----------------++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++-++++++++-+++--++++++++++---------------++++++++++++++++++++++++++++++++++++++++++++++-------------------------------++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--++++++++++---------------++--++++++++++----------------------------------------------------------------------+++++++++++---------------++++++++++---------------+++++++++---------------++++++++---------------+++++++---------------++++++-----------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------+++++++++++++++++++++++++++++++++++++++-+------------------------------------+++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--++++++++++---------------++--+-++++++++----------------------------------------------------------------------+++++++++++---------------++++++++++----------------++++++++---------------++++++++---------------+++++++---------------++++++-----------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++-++-----------------------------------++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--++++++++++---------------++--++++++++++----------------------------------------------------------------------+++++++++++---------------++++++++++---------------+++++++++---------------++++++++---------------+++++++---------------++++++-----------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++--------------------++-++-----------------------+---------------------++--------------------++--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------+++-------+++++++++++------+++-------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------++++++++++++-------+++++++++++-------+++++++++++------++++++++++++----+++++++++++----++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------+++-------+++++++++++------+++-------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------++++++++++++-------+++++++++++-------+++++++++++------++++++++++++----+++++++++++----++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++----------++++++++++++++++++++++++----------+++++++++++++++++++++++----------++++++++++++++++++++++----------+++++++++++++++++++++----------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------+++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-----+++++++++++++++++++++++++----------+++++++++++++++++++++------------++++++++++++++++++++-----------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------+-+++++++++++++++++-------------+-+++++++++++++++++------------+-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------+++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------+-+++++++++++++++++------------+-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----+++++++++++++++++++++++---++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------+++++++++++---------------++++++++++-----------------+++++-----------------++++++-----------------+++++-----------------++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++--------------+++++++++++---------------++++++++---------------++++++++---------------+++++++---------------++++++-----------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------++++++++++++-------+++++++++++-------+++++++++++-+----++++++++++++----+++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-------++++++++++++-------+++++++++++-------+++++++++++------++++++++++++----+++++++++++----++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++--------------------++--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++---------------+++++++---------------++++-------------------------------------------------------------------------------------------+--------------------------------------------+------------------------------------------------------------------------------------------+++-------------------+-------------------------------------------------------------------------------------------------------------------------------+++---------++++---------+++---------++---------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------++++---------++++---------+++---------++------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------+++++--------+++++--------++++--------+++---------------------------------------------------------------+-------+++++++++++-------+++++++++++++---+++++++++++++---++++++++++++---+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------++++++++++++++++++++++++++++-++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++-+++++++-+++++++++++++++++++++++++++++++++++---------------+++++++++++++++++++++++++++++++++++++++++++++++++++----+++++----+++++---+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++++--++++++--+++++++++++++++++++++++++++++++++++++++--------+++---------++----------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------++----++----+------------------+++++---+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++----+---------------------------------+-----++++++---+