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