++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--+-+-----------+++----------------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-+-----------+++----------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-----------+++----------------+++++--+++++++++++++++++++++++-+-----------+++----------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+++----------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------+++----------------+++++--+++++++++++++++++++++++-------+++----------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----+++----------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------+++++--++++++++++++++++++++++++----------------+++++--+++++++++++++++++++++++----------------+++++--+++++++++++++++++++++++---------------+++++--+++++++++++++++++++++++--------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+++++--+++++++++++++++++++++++----------+++++--+++++++++++++++++++++++---------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+-+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--+++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------+-++++++++-+--++++++++--+++--++++-+++++++------------------------------------------------------------------------------------------++++++++-+--++++++++--+++--++++-+++++++------------------------------------------------------------------------------------------------------------------------------------------------------+++++-+--++++++++--+++--++++-+++++++-------------------------------------------------------------------------------------+++-+--++++++++--+++--++++-+++++++-------------------------++-+--++++++++--+++--++++-+++++++------------------------------------------------------------------------------------------------------------------------------------------+--++++++++--+++--++++-+++++++--------------------------------------------------------------------------------++++++++--+++--++++-+++++++-------------------------++++++++--+++--++++-+++++++-------------------------+++++++--+++--++++-+++++++-------------------------++++++--+++--++++-+++++++-------------------------+++++--+++--++++-+++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--++++-+++++++-------------------------+++--++++-+++++++--------------------------------------------------------------------------------------------------------------------------------------------------++++-+++++++-------------------------++++-+++++++-------------------------+++-+++++++--------------------------+-+++++++-------------------------+-+++++++--------------------------+++++++-------------------------+++++++-------------------------++++++-------------------------+++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-+-----------+++----------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-----------+++----------------+++++--+++++++++++++++++++++++-+-----------+++----------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+++----------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------+++----------------+++++--+++++++++++++++++++++++-------+++----------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----+++----------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------+++++--++++++++++++++++++++++++----------------+++++--+++++++++++++++++++++++----------------+++++--+++++++++++++++++++++++---------------+++++--+++++++++++++++++++++++--------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+++++--+++++++++++++++++++++++----------+++++--+++++++++++++++++++++++---------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+-+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--+++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------++++++++-+--++++++++--+++--++++-+++++++------------------------------------------------------------------------------------------------------------------------------------------------------+++++-+--++++++++--+++--++++-+++++++-------------------------------------------------------------------------------------+++-+--++++++++--+++--++++-+++++++-------------------------++-+--++++++++--+++--++++-+++++++------------------------------------------------------------------------------------------------------------------------------------------+--++++++++--+++--++++-+++++++--------------------------------------------------------------------------------++++++++--+++--++++-+++++++-------------------------++++++++--+++--++++-+++++++-------------------------+++++++--+++--++++-+++++++-------------------------++++++--+++--++++-+++++++-------------------------+++++--+++--++++-+++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--++++-+++++++-------------------------+++--++++-+++++++--------------------------------------------------------------------------------------------------------------------------------------------------++++-+++++++-------------------------++++-+++++++-------------------------+++-+++++++--------------------------+-+++++++-------------------------+-+++++++--------------------------+++++++-------------------------+++++++-------------------------++++++-------------------------+++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--+--------+++----------------+++++--+++++++++++++++++++++++-+-----------+++----------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+++----------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------+++----------------+++++--+++++++++++++++++++++++-------+++----------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----+++----------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------+++++--++++++++++++++++++++++++----------------+++++--+++++++++++++++++++++++----------------+++++--+++++++++++++++++++++++---------------+++++--+++++++++++++++++++++++--------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+++++--+++++++++++++++++++++++----------+++++--+++++++++++++++++++++++---------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+-+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--+++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------------------------------------------------------------------+-+++-+--++++++++--+++--++++-+++++++-------------------------------------------------------------------------------------+++-+--++++++++--+++--++++-+++++++-------------------------++-+--++++++++--+++--++++-+++++++------------------------------------------------------------------------------------------------------------------------------------------+--++++++++--+++--++++-+++++++--------------------------------------------------------------------------------++++++++--+++--++++-+++++++-------------------------++++++++--+++--++++-+++++++-------------------------+++++++--+++--++++-+++++++-------------------------++++++--+++--++++-+++++++-------------------------+++++--+++--++++-+++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--++++-+++++++-------------------------+++--++++-+++++++--------------------------------------------------------------------------------------------------------------------------------------------------++++-+++++++-------------------------++++-+++++++-------------------------+++-+++++++--------------------------+-+++++++-------------------------+-+++++++--------------------------+++++++-------------------------+++++++-------------------------++++++-------------------------+++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++----------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------++----------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------+++----------------+++++--+++++++++++++++++++++++-------+++----------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----+++----------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------+++++--++++++++++++++++++++++++----------------+++++--+++++++++++++++++++++++----------------+++++--+++++++++++++++++++++++---------------+++++--+++++++++++++++++++++++--------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+++++--+++++++++++++++++++++++----------+++++--+++++++++++++++++++++++---------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+-+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--+++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+++----------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------++++---------------+++++--+++++++++++++++++++++++-+-----++++---------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++---------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------+++++--++++++++++++++++++++++++----------------+++++--+++++++++++++++++++++++----------------+++++--+++++++++++++++++++++++---------------+++++--+++++++++++++++++++++++--------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+++++--+++++++++++++++++++++++----------+++++--+++++++++++++++++++++++---------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+-+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--+++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------+++-+--++++++++--+++--++++-+++++++-------------------------++-+--++++++++--+++--++++-+++++++------------------------------------------------------------------------------------------------------------------------------------------+--++++++++--+++--++++-+++++++--------------------------------------------------------------------------------++++++++--+++--++++-+++++++-------------------------++++++++--+++--++++-+++++++-------------------------+++++++--+++--++++-+++++++-------------------------++++++--+++--++++-+++++++-------------------------+++++--+++--++++-+++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--++++-+++++++-------------------------+++--++++-+++++++--------------------------------------------------------------------------------------------------------------------------------------------------++++-+++++++-------------------------++++-+++++++-------------------------+++-+++++++--------------------------+-+++++++-------------------------+-+++++++--------------------------+++++++-------------------------+++++++-------------------------++++++-------------------------+++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-----+++++--------------+++++--+++++++++++++++++++++++-+-----+++++--------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----+++++--------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------+++++--++++++++++++++++++++++++----------------+++++--+++++++++++++++++++++++----------------+++++--+++++++++++++++++++++++---------------+++++--+++++++++++++++++++++++--------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+++++--+++++++++++++++++++++++----------+++++--+++++++++++++++++++++++---------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+-+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--+++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+---+++++++--+++--++++-+++++++------------------------------------------------------------------------------------------------------------------------------------------++-+++++++++-+++--++++-+++++++--------------------------------------------------------------------------------+++++++++-+++--++++-+++++++-------------------------+++++++++-+++--++++-+++++++-------------------------+++++++--+++--++++-+++++++-------------------------++++++--+++--++++-+++++++-------------------------+++++--+++--++++-+++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--++++-+++++++-------------------------+++--++++-+++++++--------------------------------------------------------------------------------------------------------------------------------------------------++++-+++++++-------------------------++++-+++++++-------------------------+++-+++++++--------------------------+-+++++++-------------------------+-+++++++--------------------------+++++++-------------------------+++++++-------------------------++++++-------------------------+++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++-+++++++++++++--++++-+++++++--------------------------------------------------------------------------------+++++++++++++--++++-+++++++-------------------------+++++++++++++--++++-+++++++-------------------------+++++++--+++--++++-+++++++-------------------------++++++--+++--++++-+++++++-------------------------+++++--+++--++++-+++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--++++-+++++++-------------------------+++--++++-+++++++--------------------------------------------------------------------------------------------------------------------------------------------------++++-+++++++-------------------------++++-+++++++-------------------------+++-+++++++--------------------------+-+++++++-------------------------+-+++++++--------------------------+++++++-------------------------+++++++-------------------------++++++-------------------------+++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----+++++--------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----+++++--------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------++++--++++++++++++++++++++++++-----------------++++--+++++++++++++++++++++++-----------------++++--+++++++++++++++++++++++---------------+++++--+++++++++++++++++++++++--------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+++++--+++++++++++++++++++++++----------+++++--+++++++++++++++++++++++---------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+-+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--+++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----+++----------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------+++--++++++++++++++++++++++++------------------+++--+++++++++++++++++++++++------------------+++--+++++++++++++++++++++++---------------+++++--+++++++++++++++++++++++--------------+++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+++++--+++++++++++++++++++++++----------+++++--+++++++++++++++++++++++---------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+-+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--+++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------+++++++++-+++--++++-+++++++-------------------------+++++++++++++--++++-+++++++--------------------------++++++--+++---+++-+++++++-------------------------++++++--+++---+++-+++++++-------------------------+++++--+++---+++-+++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--++++-+++++++-------------------------+++--++++-+++++++--------------------------------------------------------------------------------------------------------------------------------------------------++++-+++++++-------------------------++++-+++++++-------------------------+++-+++++++--------------------------+-+++++++-------------------------+-+++++++--------------------------+++++++-------------------------+++++++-------------------------++++++-------------------------+++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------++--+++++++++++++++++++++++--------------------++--+++++++++++++++++++++++-------------------++--+++++++++++++++++++++++---------------+++++--+++++++++++++++++++++++--------------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------+++++--+++++++++++++++++++++++----------+++++--+++++++++++++++++++++++---------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+-+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--+++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++-+++++++---------------------------+++++--+++---+-+-+++++++-------------------------++++++--+++---+-+-+++++++-------------------------+++++--+++---+-+-+++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--++++-+++++++-------------------------+++--++++-+++++++--------------------------------------------------------------------------------------------------------------------------------------------------++++-+++++++-------------------------++++-+++++++-------------------------+++-+++++++--------------------------+-+++++++-------------------------+-+++++++--------------------------+++++++-------------------------+++++++-------------------------++++++-------------------------+++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++--+++-----+-+++++++--------------------------+++++--+++-----+-+++++++-------------------------+++++--+++-----+-+++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--++++-+++++++-------------------------+++--++++-+++++++--------------------------------------------------------------------------------------------------------------------------------------------------++++-+++++++-------------------------++++-+++++++-------------------------+++-+++++++--------------------------+-+++++++-------------------------+-+++++++--------------------------+++++++-------------------------+++++++-------------------------++++++-------------------------+++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++--+++---+++-+++++++-------------------------+++++--+++---+++-+++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--++++-++++++++-++---------------------+++--++++-++++++++-++---------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++---------------------++++++++++++++++---------------------+++-+++++++--------------------------+-+++++++-------------------------+-+++++++--------------------------+++++++-------------------------++++++++-++---------------------++++++-------------------------+++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------++---------------------++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++--+++-----+-+++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--++++++++++++++++---------------------+++--++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++---------------------++++++++++++++++---------------------+++-+++++++--------------------------+-+++++++-------------------------+-+++++++--------------------------+++++++-------------------------+++++++++++---------------------++++++-------------------------+++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------++---------------------++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--++++++++++++++++---------------------+++--++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++---------------------++++++++++++++++---------------------+++-+++++++--------------------------+-+++++++-------------------------+-+++++++---------------------------++++++-------------------------+++++++++++---------------------++++++-------------------------+++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------++---------------------++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++--+++++++++++++++++++++++-------------------++--+++++++++++++++++++++++-------------++++++++++++++++++++++++++++++++------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------+++++++++++++++++++++++++++++++++-------++++++++++++++++++++++++++++++++-------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+-+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--+++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------+++--+++++++++++++++++++++++-----+-------++++++++++++++++++++++++++++++++----+-------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------+++++++++++++++++++++++++++++++++-------++++++++++++++++++++++++++++++++-------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+-+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--+++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----+-------++++++++++++++++++++++++++++++++----+-------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------+++++++++++++++++++++++++++++++++-------++++++++++++++++++++++++++++++++-------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+-+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++--+++++++++++++++++++++++++--++++++++++++++++++++++++--+++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---++-------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------+++++++++++++++++++++++++++++++++-------++++++++++++++++++++++++++++++++-------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+-+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++--+----+++++++++++++++++++++--+----++++++++++++++++++++--+----+++++++++++++++++++-------++++++++++++++++++-------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----++++++++++++++++++---+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------+++++++++++++++++++++++++++++++++-------++++++++++++++++++++++++++++++++-------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+-+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++-++++++++++++++++++++++++-+++--+----+++++++++++++++++++++--+----++++++++++++++++++++--+----+++++++++++++++++++-------++++++++++++++++++-------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----++++++++++++++++++---+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++---------------------++++++++++++++++---------------------+++-++++-----------------------------+-+-++----------------------------+-+-++-------------------------------++----------------------------+++++++++++----------------------++----------------------------++--------------------------------------------------------------------------------------------------------------------------------------------------------------------++---------------------++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++---------------------++++++++++++++++---------------------+++-++++-----------------------------+-+-++----------------------------+-+-++-------------------------------++----------------------------++++++++-++----------------------++----------------------------++--------------------------------------------------------------------------------------------------------------------------------------------------------------------++---------------------++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++--+++++++++++++++++++++++---------+++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+-+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++-+++---------+++++++++++++++++++---------++++++++++++++++++---------+++++++++++++++++---------++++++++++++++++---------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+-+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++-+++---------+++++++++++++++++++---------++++++++++++++++++---------+++++++++++++++++---------++++++++++++++++---------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-+-+++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++--+++++++++++++++++++++++--++---------+++++++++++++++++++---------++++++++++++++++++---------+++++++++++++++++---------++++++++++++++++---------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------+++----------------------------------+---------------------------------+------------------------------------------------------------------+++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-+----------------------------------+---------------------------------+------------------------------------------------------------------+++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------+------------------------------------------------------------------++++++++++++++++++++++++++++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++-----++--------------++-+--+++---------------------------------------------------------++++++----------------+++---------------+++--------------+++--------------++--------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++---------------------------------++++++++++++++++++++++++++++++++-++----------------------------+++-------------------------------------------------------------------------------------------------------------------------------------------------------------------++--+++++++------------++-++++++++-------------------------------------------------------++++++++------------+++++++------------++++++------------+++++------------++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++-+-----------------------------++--------------------------------------------------------------------------------------------------------------------------------------------------------------------++---++++++------------++-++++++++-------------------------------------------------------++++++++------------+++++++------------++++++------------+++++------------++++------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++-------------------------+++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------++-++++++++------------++-++++++++-------------------------------------------------------++++++++------------+++++++------------++++++------------+++++------------++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------++----------------------------------------------------------------++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++++-------+-----+++++++++------+-----++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----+++++++++-----+++++++++----+++++++++---+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++++-------+-----+++++++++-----++-----++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----+++++++++-----+++++++++----+++++++++---++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+----++++++++++++++++++++---------+++++++++++++++++---------++++++++++++++++---------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----+++++++++++++++++---+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+++++++++++++++-----------+++++++++++++++----------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------++++++++++++++++---++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+++++++++++++++----------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++-------------------------------------------------------++++++++------------+++++++------------++++++------------+++++------------++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++--------------+++---------------+++--------------+++--------------++---------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--++++++++++-----++++++++++--++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----+++++++++-----+++++++++----+++++++++---+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++--------------+++--------------++--------------------------------------------------------------------------------------------------------------------------------------+++--------------+-----------------------------------------------------------------------+--------++--------+--------------------------------------------------------------------------------------------------------------------++-------+++-------++--------------------------------------------------------------------------------------------------++++------++++------+++------------------------------------------------+++++++++--++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---+++++++++++++++++++++++++++++++++++++++-+-++++++-+++++-++++++++++++++++++++++++++++++++++++++++++++++++++----++++---++++--+++++++++++++++++++++++------+++---------------------------------------------------------------------------------------------------------------------------+-+++++-++++++++++++++++++++--++++++++++++++++++++++++++++-++++++---------------+++-