x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x x245x