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