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