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